プログラマが知るべき97のこと
分別のある行動
関数型プログラミングを学ぶことの重要性
ユーザが何をするかを観察する(あなたはユーザではない)
コーディング規約を自動化する
美はシンプルさに宿る
リファクタリングの際に注意すべきこと
共有は慎重に
ボーイスカウト・ルール
他人よりまず自分を疑う
ツールの選択は慎重に
ドメインの言葉を使ったコード
コードは設計である
コードレイアウトの重要性
コードレビュー
コードの論理的検証
コメントについてのコメント
コードに書けないことのみをコメントにする
学び続ける姿勢
誰にとっての「利便性」か
すばやくデプロイ、こまめにデプロイ
技術的例外とビジネス例外を明確に区別する
1万時間の訓練
ドメイン特化言語
変更を恐れない
見られて恥ずかしいデータは使わないこと
言語だけでなく文化も学ぶ
死ぬはずのプログラムを無理に生かしておいてはいけない
「魔法」に頼りすぎてはいけない
DRY原則
そのコードに触れてはならない！
状態だけでなく「ふるまい」もカプセル化する
浮動小数点数は実数ではない
オープンソースプロジェクトで夢を実現する
API設計の黄金律
超人の神話
ハードワークは報われない
バグレポートの使い方
余分なコードは決して書かない
最初が肝心
プロセス間通信とアプリケーションの応答時間の関係
無駄な警告を排除する
コマンドラインツールを使う
プログラミング言語は複数習得すべき
IDEを知る
限界を知る
すべきことは常に明確に
大量のデータはデータベースで
いろいろな言葉を学ぶ
見積りとは何か
Hello, Worldから始めよう
プロジェクト自身にしゃべらせる
「その場しのぎ」が長生きしてしまう
正しい使い方を簡単に、誤った使い方を困難に
見えないものを見えるように
並行処理に有効なメッセージパッシング
未来へのメッセージ
ポリモーフィズムの利用機会を見逃さない
テスト担当者はプログラマの友人
バイナリは常に1つ
真実を語るはコードのみ
ビルドをおろそかにしない
プリミティブ型よりドメイン固有の型を
ユーザの操作ミスを防止する
プロのプログラマとは？
バージョン管理システムを有効に使う
いったんコンピュータから離れてみる
コードを読む
「人間」を知る
車輪の再発明の効用
シングルトンパターンの誘惑に負けない
パフォーマンスへの道は地雷コードで敷き詰められている
シンプルさは捨てることによって得られる
単一責任原則
「イエス」から始める
面倒でも自動化できることは自動化する
コード分析ツールを利用する
偶然の仕様ではなく本物の仕様のためのテストを書く
テストは夜間と週末に
テストのないソフトウェア開発はあり得ない
1人より2人
エラーがエラーを相殺してしまう
他者への思いやりを意識したコーディング
UNIXツールを友にする
正しいアルゴリズムとデータ構造を選ぶ
冗長なログは眠りを妨げる
WETなシステムはボトルネックが見つかりにくい
プログラマとテスターが協力してできること
コードは生涯サポートするつもりで書く
関数の「サイズ」を小さくする
コードを見る人のためにテストを書く
良いプログラマになるには
顧客の言葉はそのまま受け取らない
エラーを無視するな
リンカは魔法のプログラムではない
ペアプログラミングと「フロー」
テストは正確に、具体的に
ステートに注目する

日本人プログラマによる知っておくべき10のこと

命を吹き込む魔法
ロールプレイングゲーム
ルーチンワークをフローのきっかけに
プログラマが持つべき3つのスキル
快適な環境を追求する
見知らぬ人ともうまくやるには
不具合にテストを書いて立ち向かう
育ちのよいコード
Noといえることの大事さ
名前重要