アプリケーションのためのコード
コードはアプリケーションのため、そしてアプリケーションを利用するユーザーのために書く。 決して規範をなぞったり、PRレビューを通すことを目的にしない。
気をつけたいこと
- 手段と目的がを入れ替えない
- "複雑なこと"をやるためではなく、結果として"複雑なこと"を実現する
- 日々熱意と時間を注ぎ込んでいるものが、ユーザーの利便につながることを意識する
EasyよりもSimple
実装したい物事には、本質的に分解できない"複雑さ"が存在する。どのようなテクニックを使ったとしても、本質的な"複雑さ"をなくすことはできない。 本質的な"複雑さ”を覆い隠す選択肢よりも、本質的な"複雑さ"を可能な限り小さく分割する選択肢を選ぶ。
気をつけたいこと
- 「記述が短くなる」ことを絶対視せず、 「記述が最低限である」ことを目指す
- 不必要に実装を隠蔽したり、抽象化しない *1
- 現時点で分割できない複雑さは、なぜ分割できないかのコメントをつけて、将来の解決タスクにする
- Easyな実装をした結果、実装箇所によってコードの品質にブレが生じることを避ける
大きな問題の解決を妨げない
Android SDKやFlutterを利用してモバイルアプリケーションを作る場合、SDKやフレームワークと協調する必要がある。利用しているSDKやフレームワークが解決する問題を意識し、(その解決を)妨げないことを心がける。
気をつけたいこと
- mobileやwebアプリケーションの場合、表示されている画面や要素を中心に考える
- フレームワークが管轄する範囲と、フレームワークを利用する開発者が管轄する範囲を意識する
- OSの方向性を理解し、アプリケーションを利用するユーザーの期待通りの動作を実現する
- OSやフレームワークが意図しない実装をしない
生産性の向上
職業としてプログラミングを行なっている以上、常に生産性が右肩上がりになっていなければならない。このため、短期ではなく長期で生産性が高まることを意識する。
気をつけたいこと
- 今日書いたコードが、明日の開発を助けるコードであること
- 今日書いたコードが、明日直したくなるものでないこと
- 今日調査にかける時間が、将来の不安を解消するものになること
*1:世の中には"抽象的な事象"は(ほぼ)存在しない