エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

2021/08/16週 気づきと振り返り また、くだらぬことで躓いてしまった

業務こなしての問題・気づき

c#

delegate

Javaのlambda式を覚えたあとだと、記述方法にものすごい違和感があるのだが、これが普通なのだろうか?

SendGrid

c#でSendGrid利用しているので、そのときにハマったことを書いてく

送信リクエストのレスポンスに403:Forbiddenが返ってくる

掲題の通り、送信リクエストを送ったら、レスポンスに403:Forbiddenが返ってきていた。

理由は、fromに登録ユーザ以外のメールアドレスを設定していたから、メール送信の権限なしと判断したというメッセージがレスポンスのボディ部に設定されて返って来ていた。

最初、ボディ部を見てなかったので、リクエスJSONの中身とか、APIキーの問題かと思って四苦八苦していた。
定時後だったので、ほとんど人がいないし、かなり焦っていたが、問題先送り戦術で、諦めて帰った。
翌朝、そういえば、ボディ部にエラー原因の内容のメッセージが出てくることを思い出して、ボディ部を見たら、"fromに登録ユーザ以外の~"という英語のメッセージが出ていたので、データを直してテストしたら、問題なくメールが送られた。。。

帰宅してから、どうやって解決しようか寝るまで悩んでたから、肩の荷が降りた。。。
解決したときは、午前中だったけど、もう帰ってもいいだろうくらいの仕事はしたと思うんだよね。
一日間を置くことで、冷静に考えられたor余計なことを忘れたのが良かったのかもしれない。
よく1日間を開けると、結構解決することがある。明日の俺を信じる気持ちが必要なのかも知れない。
ただし、土日明けだと、必要なことも忘れるので、問題の先送りで週マタギするのは危険だと思いました。

最初、SendGridの公式ドキュメント見た時、403:Forbiddenが帰ってきたときの原因欄が空欄で絶望しかけたけど、ちゃんとボディ部見れば解決できたので、ちゃんとしたサービスだと思いました。

業務以外の問題・気づき

Java

ThymeleafでJavaに埋め込み

バインドする方法は、調べてすぐ分かって、Listにも同じように適用したら沼にハマった。。。
なんか、ハッシュコードっぽいのが埋め込まれてるな~と気づいてからは、解決が早かった。
どうやら、オブジェクトは、getter/setterが必須らしい。。。
getterを付けたら表示された。
Javaのgetter/setterが必要になるのは、結構不便だと思うのだが、いるのかな?
入れ物のクラスとしてしか使わないので、特定のインタフェース実装したらgetter/setter不要になるとかして欲しい。
コード量が増えるだけで、可読性向上を阻害してると思うんだよね。。。
視力が低いから、なるべくコードは単純明快にして、目に優しい実装にしたい。

参考:ThymeleafでJavaScriptのちょっとした注意点をメモ - Mitsuyuki.Shiiba 参考:Spring Boot で Thymeleaf 使い方メモ - Qiita

フォントサイズ重要

MirageSQLでSQL実行してエンティティクラスにバインドさせた内容をHTMLのJavaScriptに埋め込んで色々処理しているのだが、特定のカラムの値が渡って来ないことに気づいた。
バインディング内容は間違っていないし、setterはなくてもバインドして値が入っているから、問題ないはずと思いながらSQLとエンティティクラスの内容を比較しながらにらめっこしてた。

そして、本当に抽出できているのか疑問になって、getter付けてみたり、SQL実行してカラムの内容を確認していたけど、問題ないよな~って思いながら台パン直前くらいまでストレス溜まったときに点から神託が下ってきた。「Mapで中身見ればいいんじゃね?」と。

エンティティクラスをMapに変えて中身を確認したら、全然違うSQLの実行結果が返ってきていることに気づき、実行しているSQLをよくよく見たら、指定しているファイルが違っていた。。。

実行するSQLを正しいものに直して実行したら、難なく表示されてしまった。。。
台パン直前までストレス溜めたのがアホらしかった。。。

解消したら、速攻でフォントサイズを変更した。
IntelliJで開発しているのだが、エディターとエディター以外でフォントサイズの指定箇所が違っているらしい。
とりあえず、異なっていると目の負担がデカそうだったので合わせて大きくしておいた。

参考:IntelliJのフォントをツールウィンドウも含めて見えやすいサイズまで拡大してみた - Qiita

開発環境作るときは、作業する前にフォントサイズを見やすい大きさに変えておくことは重要だと感じた。

テスト

ウォーターフォールで開発しているのだが、結合レベルのことを単体でやれって言われて、実施したけど、進捗があがらなかったら俺のせいにされるの、おかしくない?

実際やっていて、結合テストで出すべきバグが単体で出てきて、それを解決するために工数咲いてたら、単体が工数かかるの当たり前じゃんって思うのだが。。。

雑記

台パン

これ、在宅勤務のときしかできないなと感じた。
職場でやったら、明らかに空気悪くする。
前に、職場で台パンしてるやつ見たことあるけど、むちゃくちゃ空気悪かったわ。。。
とりあえず、そいつが離席したときに周囲の人と茶化して空気をきれいにしておいたけど、ああいう人間にはなりたくないとは思う。
たしかに、台パンするとストレスがある程度解消するけど、周囲の人達を不快にしてもいい理由にはならないと思うんだよね。

言っとくが、俺はネタとして台パンって書いてあるだけで、周りの空気は敏感に読んで、動作は自重してるからね?

料理

エビチリ

初めて作った。
エビは、すでにワタが取られているやつが格安だったので、それを使った。
市販されているものより辛めにできた。
レシビに砂糖を入れるとあったが、無視して入れなかったので、それが原因かも知れない。
辛いのは嫌いじゃないので、別に問題ではなかった。
米を少量しか炊いてなかったので、米不足感が否めなかった。。。

意外とかんたんにできるんだな~と思ったが、エビのワタを取る作業が一番大変なのかもしれない。