kokoichi206 / android-engineer-codecheck

Apache License 2.0
0 stars 0 forks source link

プログラム構造をリファクタリング #5

Open github-actions[bot] opened 1 year ago

github-actions[bot] commented 1 year ago

本プロジェクトは様々な原則に違反しています。下記のリストを参考にプログラムをリファクタリングしましょう。

kokoichi206 commented 1 year ago

DRY

layout の style については再利用できそう。

なんかもう少しありそうだけど、一旦進む。。。

kokoichi206 commented 1 year ago

Command-Query Separation: CQS

CQS: 「あらゆるメソッドは、アクションを実行するコマンドか、 呼び出し元にデータを返すクエリかのいずれかであって、両方を行ってはならない。 これは、質問をすることで回答を変化させてはならないということだ。」

副作用を抑えるための考え方。 保守性と再利用性を高めるための設計。

・問い合わせ:結果を返し、システムの状態を変更しない(副作用がない) ・コマンド:システムの状態を変更し、値を返さない

MainViewModel#searchResults のなかで、MainActivity.lastSearchDate を更新してるのがまずよくない? (search は検索結果を返すはずなのに、その中で状態を変化させてしまっているので)

ViewModel 側から MainView 内の値を更新しているのがよくない

kokoichi206 commented 1 year ago

インターフェイス分離の原則

API 呼び出しを行ってる部分、色々やることある。

リポジトリ層