ここ数日の開発と実況
最近の配信
最近はゲームと開発の両立を目指して私生活のほとんどが垂れ流されています。
これはこれで精神とプライベートが脆弱になってしまいそうです。
ほどほどに楽しみながら引き続き学習を続けていきたいところです。
開発の進捗と残タスク
認証機能はやはり複雑度が高く、今になっていろいろな作りの考慮できていない点が浮き彫りになってきました。
最近の状況は以下の通りです。
あ、そういえば本開発のタスク管理としてGithub Projectsを使い始めました。
個人でメモとして利用する分には非常に便利です。
進捗
- 認証を2パターン実装完了
- ツイートCRUDを認証が通った場合にのみ利用できるように修正
- ログアウトボタンのOn, Offを共通ヘッダで自動判断できるように実装
残タスク
- ログアウトボタン配置などのデザイン調整
- 全体の圧倒的リファクタリング
- ログアウトボタン表示・非表示制御方法の検討
- エラーハンドラーから表示する404ページのlangsを適切に実装
- Auth系のimplicit executionContextを良い感じにする
- ドキュメントの作成
動きとしてはそれっぽい状態にまで持っていけているのですが、細かいところで違和感のある実装になってしまっています。
MessagesApiやExecutionContextの管理ができておらず、いろいろな場所に点在している感じになっています。
またログアウトボタンの制御を行うに当たって最適な方法が何か悩んでいます。
今はimplict parameterで渡されているrequestをisInstanceOfでUserRequestかどうかを判定しています。
ただこれはかなり実装に依存しているので、できればもう少しスマートに実装したいです。
request.session.get(key)
がisDefinedであれば表示する、というように制御してもいいのですが。。。
実はシンプルで一番いいのでしょうか。ただそうするにしてもtwirlから利用するヘルパーを実装して多少隠蔽してあげた方が良いのかなとおもいます。
定数にしているkeyをわざわざ画面から呼び出すのが、いまいちな感じがしていたり...
まとめ
システムの実装者がビジネスロジックに集中できるように共通処理を隠蔽するのって難しいですよね...
実装者は普通のPlayを利用しているのと同じ感覚で使えるように上手いこと作りきりたいです。
まだまだScala力もPlayへの理解も足りなさそうです(´-ω-`)