学習75日目:フォロー機能の実装完了。

今日の学習時間。

  • Day:75
  • Today:8h
  • Total:463h

学習内容について。

  • アプリ開発
    • フォロー機能
    • 新しいLinuxの教科書

サーブレットでフォロー判定。

私を悩ませてきたフォロー判定もようやく実装する運びとなりました。昨日の記事で大まかな実装方法をリストに載せましたが、新しい方法を思いついたのでそちらを優先させました。以下にメモしておきます。

indexOfを使った方法
  1. @NamedQueryで定義したJPQLをListに格納
    1. 日報を書いた従業員IDを求める
  2. 1と同様に@NamedQueryで定義したJPQLをListに格納
    1. ログイン中の従業員がフォローしている従業員IDを求める
  3. 拡張for文で1を回す
  4. indexOfメソッドで1の中に2が含まれていないかを数える
    1. もし含まれていたら1を返す
  5. request.setAttributeでセット
  6. JSPで取り出す
    1. (follow_count != 1)だとフォローしていない状態

実際やってみるとシンプルですね。しかし、1つのフォロー判定という機能を実装する中で様々な選択肢が生まれてきます。私はまだまだ初心者なのでその判断がもたらす結果について深くは語れませんが、どんなアルゴリズムを作るかによって如何様にもシステムを左右できるというのはとても面白いです。

ただ、以下のようなトラブルが発生。

なんでだろう。Javaって基本データ型と参照型とでは入力した文字列が同じでも別のインスタンスを参照してるから反応しないこともあるけどそれとは関係なさそう。何故かcontainsメソッドを使ったら上手くいったけど、今度のメンタリングで質問しないといけないな。Javaの舞台裏では何が行われているのかしら。

上のリンクが公式の説明になるけど、数えられないほどのメソッドがある。一気に覚えるのは大変だから、最低限一度使ったものは忘れないようにしようと思います。

今日の反省と明日の目標。

エラーが解決して、思った通りの動きをしたときの感動は計り知れないですね。今回は特に沼にハマった箇所だったので嬉しくて泣きそうになりました。ただ、これからもエラーとの戦いは続くわけで、改善した点は確実に習得していかないといけませんね。同じ失敗をしていたらいつまでも先に進めないのがプログラミングであると分かりました。

さて、メンターからの課題はクリアしたので、念願のLinuxを進めています。この前、CentOSを苦労してインストールして以来触ってなかったけどようやくコマンドを打ち込めます。今はシェルというプログラムを学習中。とても面白い。明日も1日中触れそうなので集中してLinuxの操作を脳に叩き込みたいと思います。

閉じる