Open1
開発の際に意識していること
- プログラミング
- 読みやすさ
- 変数・クラス・メソッドの命名を分かりやすく
- どこに何が書かれているか勘が働きやすい配置にする
- レイヤー構造を意識してコードを配置する(MVC,レイヤードアーキテクチャ等)
- 複数のことを同時に考えなくて良いようにコードを書く
- 変数の再代入やインスタンスにsetterで後から値をなるべく入れない(インスタンス生成時に引数でセットする)
- 継承はなるべく使わない
- 親クラスを修正すると複数の子クラスが影響を受ける
- 子クラスの仕様に合わせる為に親クラスにどんどん条件分岐が増えていく等で肥大化していく
- 実装速度
- フレームワークが用意してくれている機能を使って書く(自分で書かない)
- Laravel
- Eloquent(モデルの定義(リレーション関係)やクエリビルダ)
- フォームリクエストバリデーション
- Laravel
- フレームワークが用意してくれている機能を使って書く(自分で書かない)
- 影響範囲を小さく
- クラスやメソッドの切り分けを小さくする(コードを役割によって細かく分ける)
- とりあえずベタで書いてからどう切り出していくかを決めていく
- ○○の場合どうなるか?を考え、エラーで落ちない・想定外を潰していく
- クラスやメソッドの切り分けを小さくする(コードを役割によって細かく分ける)
- アーキテクチャ
- レイヤードアーキテクチャ
- コードの制約が表現しづらい
- どの処理をどのディレクトリに置くか
- 下位レイヤのみとしかやりとり出来ない制約(コントローラ層からリポジトリ層を使っている等
- Deptracという静的コードチェックツールでチェックできるかも
- https://zenn.dev/ysit/articles/layered-architecture-lint-check
- コードの制約が表現しづらい
- レイヤードアーキテクチャ
- テストコードを書きやすくする
- 入力・出力を分かりやすくする
- 読みやすさ