nebashitaito-web

プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則

画像

学んだ事

  • プログラムの設計書は、基本設計書や詳細定義書ではなく、コードである
  • KISS(Keep It simple stupid)新しく覚えた技術を使いたがったり、複雑だが処理が速いコードを使わない。それはプログラマのエゴである。シンプルこそが最優である
  • YAGNI(You Arenot Goingto Need It)最新のカッコいいコード・今後使用するかもしれない拡張性・他でも使えるかもしれない汎用性は、業務において殆どの場合に役立たない。必要になった時に必要なだけ実装すればいい
  • 抽象と具体を使いこなせ
  • データ操作ロジックとデータの一体化。データ操作ロジックとデータは近く(物理的な距離ではなく、プログラマが近いと感じるような場所。ディレクトリなど)に配置することで、シンプルになる
  • 宣言的にプログラミングする。これにより、コードの読み手が脳内で今何をしているか。を考慮する必要がなくなり、結果だけを受け取れる。
  • 大きな問題や処理は、小さく分割し対応する。これにより漠然とした問題が、一つ一つ言語化可能になり誰でも(有識者以外でも)対応可能になる
  • 既にあるものは作るな。ライブラリ・フレームワーク・プロジェクト内特有の関数やクラス、こういったものはどんどん調べて再利用しろ。ゼロから作りたい気持ちはプログラマのエゴ
  • 再利用可能なプログラムと再利用不可なプログラムでは、3倍の工数が必要である。なので3回以上再利用されるプログラムは、再利用可能な処理にする価値がある。→別の書籍でも2回同じ処理があっても共通化するな。3回目まで待てといった主張を見かけました。
  • UNIX思想。UNIXを開発したプログラマ達の思想。面白いので調べてみてください。ここでは記載しません。
  • 対話型のインタフェースは、そのコマンドを実行中に他のコマンドを間に実行することが出来なくなる。だからコマンド型がいい
  • 可逆性を持たせる。最終完成品など存在しない。ソフトウェアは時代・顧客・依存関係のあるソフトウェアによって常に変わっていく。なので可逆性を持たせる。拡張性とは違う。
  • プログラマは、怠慢・短気・傲慢な方がいい。これらのプログラマの特性によって、プログラムは効率化される。ただ人には怠慢・短気・傲慢なのはダメ。私の中で仕事が出来る人は性格が悪いと思っており、その答えがここにありました。
  • 自分が改修するコードは1%でいいから既存コードを綺麗にしてからコミットする。これを全員が長期間行うことでよりソフトウェアになる
  • エゴレス。プログラマのエゴは、商業的ソフトウェアを開発している場合には役立たない。プライドを捨てて周囲に溶け込めるコードを書く
  • プログラマは、ユーザの視点を手に入れろ。既にリリースされているシステムであれば利用してみる。それによって新しい発見がある
  • 人と月は交換不可能。12人月の仕事があったとして、1が12カ月で行うことが出来るが、12人で1カ月で作成することは出来ない。理由はプログラマのシステム習熟度や技術力の差によるもの。10人の妊婦を集めても1カ月で出産することは出来ない。