【プリンシプルオブプログラミング】習慣

 

目次

はじめに

この記事は「プリンシプルオブプログラミング」を読んで自分なりにまとめた学習メモです。 

習慣 〜プログラマのルーティーン〜

プログラマの3大美徳

プログラマの3大美徳は、できるプログラマの特性を、3つの「美徳」としてまとめたもの。

  • 怠慢:全体の労力を減らすために、手間を惜しまない気質。
  • 短気:コンピュータがさぼっている時に、怒りを感じる気質。
  • 傲慢神罰が下るほどの、過剰な自尊心を持つ気質。

 

怠慢

後で皆が楽できるように、今役立つコードを書いてしまう。

 

【やるべきこと】

繰り返しの仕事を「仕組み化」する。

手作業については、コードを書いて、ツールを作って、自動化する。

 

短気

コンピュータが十分効率的に働いていなかったり、意図通りに働いていなかったら、ただちにコードを書き直してしまう。

また、今ある問題に留まらず、今後起こりうる問題を想定したコードを書いておく。

 

【やるべきこと】

起こりうる問題を「想定して」仕事をする。

先回りして、要望が出てきそうな部分を考え、クレームが出る前に対応できるようにする。

 

傲慢

高いプライドを持ち、人様に対して恥ずかしくないコードを書く。

自分のコードを誰に見られても恥ずかしくないように書く。

 

【やるべきこと】

人様に対して恥ずかしくない仕事をして、保守していく。

プロ意識を持って、保守を容易にしておく。

 

ボーイスカウトの規則

 ボーイスカウトには、シンプルな規則がある。

「自分のいた場所は、そこを出て行く時、来た時よりもきれいにしなければならない」という規則。

 

【意識すべきこと】

コードは改良してからコミットする。

 

パフォーマンスチューニングの箴言

パフォーマンスチューニングとは、速いコードを書くこと。コードの「最適化」とも言われる。

 

【最適化のルール】

  • 行ってはならない
  • (エキスパート専用)まだ行ってはならない

【デメリット】

  • 可読性の低下
  • 品質の低下
  • 複雑性の増大
  • 保守の阻害
  • 環境間の競合
  • 作業量の増大

【やるべきこと】

まず「よいコード」を書き、その後、必要に応じてパフォーマンスチューニングを行う。

 

エゴレスプログラミング

プログラミングにおいては、エゴを捨て去る。

つまり、「うぬぼれ」や「プライド」を捨て、仲間に協力を求めるようにする。自分の書いたコードを、積極的に仲間に見せて、改善点を指摘してもらう。

 

【エゴレスプログラミングの十戒

  • 自分自身も間違いを犯すということを理解し、受け入れる
  • 書いたコードは、自分自身ではない
  • どれほど極めたと思っていても、上には上がいる
  • 相談なしに、コードを書き直さない
  • 自分よりもスキルが劣る人にも、尊敬と敬意と忍耐を持って接する
  • 世界で唯一変わらないことは、変わるということだけ
  • 本当の権威は、地位ではなく、知識から生じる
  • 信じるもののために戦う。ただし、負けは潔く受け入れる
  • 部屋に籠りきりはいけない
  • 「人に優しく、コードに厳しく」して、人ではなくコードを批判する

 

1歩ずつ少しずつ

プログラミングは、一度に、小さな1つのことを行う。

 

【意識すべきこと】

一度に複数やらない。

 

TMTOWTDI

他の人に使用してもらうツールを設計する場合、達成したいことの手段を複数用意する(プログラミング言語DSLAPIなど)。

ツール側は複雑になってしまうが、使う側は、多様な場面において、シンプルなコードが書けるようになる。

 

【意識すべきこと】

選択肢をたくさん用意する。