1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

『プリンシプル・オブ・プログラミング』読書感想8

1
Posted at

第6章 手法 ~プログラマの道具箱~

6.1 曳光弾

英語ではTracer ammunition。
ポイントは、最終形にも残る「骨格コード」のこと。
最初に動作する土台を作ること。試行錯誤しながら、開発を進める。

6.2 契約による設計

Design by Contract (DbC).
思い違いを早期発見すること。
アサーションを使うのが、実際の開発時にもよく便利だと感じていますね。

6.3 防御的プログラミング

安全性を高める方法は何?エラーや想定外の入力を前提にしてコードを書くこと。例外処理や入力チェックは、後回しより、徹底すること。

6.4 ドッグフーディング

犬と何の関係あるの?
英語のDogfoodingの下に、「Eating your own dog food」もある。
ソフトウェアを味見すること、つまり自分が作ったソフトを自分で使ってみる。それで問題を見つけ出す。

6.5 ラバーダッキング

英語では、Rubber ducking。
これは、デバッグ方法。
6.4にも繋がるね。見つけ出した問題は、どうする?自己解決を促す。
説明しようとしているように、考えを口に出しながら、頭の中で問題点が浮かび上がる。

6.6 コンテキスト

「文脈会話」「文脈思考」のこと。
迷子にしないこと。

第7章 法則 ~プログラミングのアンチパターン~

7.1 ブルックスの法則

工数は、人月で計算するけど、「人」と「月」は交換不可能ってことがポイント。人と人の依存関係や、教育時間も考えないといけない。

7.2 コンウェイの法則

アーキテクチャの特徴と言っている。
これは、組織に従う。

7.3 割れた窓の法則

小さな問題を放置すると、全体が急に崩れるよ。
悪いコードは「蟻の一穴」ということをちゃんと覚えないといけない。

7.4 エントロピーの法則

コードは無秩序へ向かう。だから、自然と腐っていく。
腐敗の兆候をちゃんと掴むこと。

7.5 80-10-10の法則

プログラミングに万能薬はないことを覚えるべき。
ユーザーが求めることの80%は短時間で実現可能。10%は相当な努力が必要。10%は完全に実現不可能。
ならば、どうすれば良い?
万能薬より専門薬。

7.6 ジョシュアツリーの法則

英語でJoshua Tree Principle(JTP)。
名前がないものは見えない。名前を知ることで存在を知る。
だから、実践すべきことは何?チームで、名前を付けて共有すること。

7.7 セカンドシステム症候群

2番目のリリースは、余計な機能を詰め込みすぎて機能過多になりがち。
ユーザーを考えて解消すること。

7.8 車輪の再発明

これは学生時代でもよく話を聞いたことで、馴染みのある言葉。
既存の解法を知らずに同じものを作り直すことは、一言で言うと、非効率。

7.9 ヤクの毛刈り

本来の目的を見失い、副次的なことに時間を取られちゃうのが、もったいないね。
デバッグや障害調査時に使う方法、スタックトレースも連想できるね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?