現在の現場でコーディング関連で勉強になっているポイントについてまとめてみようかと思います。
自動化
規約エラーなどなるべく自動化できるものは自動化を。
- エディタに共通のものを入れて迅速に検知できるようにする
- CIで規約エラーのものを落とすようにする
- どこまで対応するかは現場の事情によりますが、テストにてパターンの多いものを検証できるようにしておく
- コスパを考えて、自動化しすぎないことも検討に入れる
命名
プログラミングを始めた当初から大事さには気づいていましたが、日々実感することが多いです。
大事なポイントとしては、
- 規則性を持たせる(特にルーティングから自動で決まるものに注意。ControllerやUseCaseなど。)
- 冗長すぎるものは避ける(そもそもアーキテクト設計がしっかりされているとそこまで冗長にはならないはず・・・)
- フォーマットの決まっている値(会員番号など)はValueObjectで定義する
ですかね。
責務の分離
以前のリンク(クリーンアーキテクチャーがらみの話題など)でも書きましたが、どこに何を書くのかのディレクトリ構造ですね。
Controller、Serivce、Infrastructure、Modelなどでの責任がどこまでか(リクエストを受け取るだけなのか、ビジネスロジックを受け取るのか否か、など)の意識です。
現実案としてはある程度折衷案を取ることも大切になってくるかと思います。
ここを意識することで命名にも聞いてくるポイントかと思います。
その他
- 意図せず連想配列を使うことを避ける
→追加時に柔軟性がある一方で、中身がブラックボックスになり、可読性が少し落ちる。引数を分けたり、オブジェクトで管理することなど。 - 定数系の値は基本Enumを使う
→単純に保守性が高いからという意味もありますが、可動性の向上と、値自体に意味を持たせたいため。
ちょっと中途半端ですが、ここら辺で。(追加あるかも・・・)