人々のさまざまな思いを技術で形にするプログラマ。本書は世界中で活躍するプログラマによる97本のエッセイを収録した書籍です。プログラミングにおいてもっとも重要な事柄は何か、バージョン管理やテスティング、設計原則とコーディングテクニック、また腕を磨くための勉強法などについて、経験豊かなプログラマが自らの体験を踏まえて解説します。プログラマを勇気づけ、新たな気づきをもたらす一冊です。日本語版では、小飼弾、関将俊、舘野祐一、まつもとゆきひろ、宮川達彦、森田創、吉岡弘隆、和田卓人による10本の書下ろしを収録。
プログラマが知るべき97のこと
Kevlin Henney編、和田 卓人 監修、夏目 大 訳
- TOPICS
- Business/Essay
- 発行年月日
- 2010年12月
- PRINT LENGTH
- 276
- ISBN
- 978-4-87311-479-8
- 原書
- 97 Things Every Programmer Should Know
- FORMAT
- Print PDF
目次
目次 監修者まえがき はじめに 01 分別のある行動 セブ・ローズ(Seb Rose) 02 関数型プログラミングを学ぶことの重要性 エドワード・ガーソン(Edward Garson) 03 ユーザが何をするかを観察する(あなたはユーザではない) ジャイルズ・カルバン(Giles Colborne) 04 コーディング規約を自動化する フィリップ・ヴァン・ラーネン(Filip van Laenen) 05 美はシンプルさに宿る ヨルン・オルムハイム(Jorn Olmheim) 06 リファクタリングの際に注意すべきこと ラジット・アタパトゥー(Rajith Attapattu) 07 共有は慎重に ウディ・ダーハン(Udi Dahan) 08 ボーイスカウト・ルール ロバート・C・マーティン(Robert C. Martin アンクル・ボブ) 09 他人よりまず自分を疑う アラン・ケリー(Allan Kelly) 10 ツールの選択は慎重に ジョヴァンニ・アスプローニ(Giovanni Asproni) 11 ドメインの言葉を使ったコード ダン・ノース(Dan North) 12 コードは設計である ライアン・ブラッシュ(Ryan Brush) 13 コードレイアウトの重要性 スティーブ・フリーマン(Steve Freeman) 14 コードレビュー マティアス・カールソン(Mattias Karlsson) 15 コードの論理的検証 イェッチェル・キムチ(Yechiel Kimchi) 16 コメントについてのコメント カル・エヴァンス(Cal Evans) 17 コードに書けないことのみをコメントにする ケブリン・ヘニー(Kevlin Henney) 18 学び続ける姿勢 クリント・シャンク(Clint Shank) 19 誰にとっての「利便性」か グレゴー・ホーぺ(Gregor Hohpe) 20 すばやくデプロイ、こまめにデプロイ スティーブ・P・バーチャック(Steve Berczuk) 21 技術的例外とビジネス例外を明確に区別する ダン・バーグ・ヨーンソン(Dan Bergh Johnsson) 22 1万時間の訓練 ジョン・ジャガー(Jon Jagger) 23 ドメイン特化言語 マイケル・フンガー(Michael Hunger) 24 変更を恐れない マイク・ルイス(Mike Lewis) 25 見られて恥ずかしいデータは使わないこと ロッド・ベグビー(Rod Begbie) 26 言語だけでなく文化も学ぶ アンダース・ノラス(Anders Noras) 27 死ぬはずのプログラムを無理に生かしておいてはいけない ヴェリティ・ストブ(Verity Stob) 28 「魔法」に頼りすぎてはいけない アラン・グリフィス(Alan Griffiths) 29 DRY原則 スティーブ・スミス(Steve Smith) 30 そのコードに触れてはならない! カル・エヴァンス(Cal Evans) 31 状態だけでなく「ふるまい」もカプセル化する アイナー・ランドル(Einar Landre) 32 浮動小数点数は実数ではない チャック・アリソン(Chuck Allison) 33 オープンソースプロジェクトで夢を実現する リチャード・モンソンヘーフェル(Richard Monson-Haefel) 34 API設計の黄金律 マイケル・フェザーズ(Michael Feathers) 35 超人の神話 ライアン・ブラッシュ(Ryan Brush) 36 ハードワークは報われない オルヴ・モーダル(Olve Maudal) 37 バグレポートの使い方 マット・ドーア(Matt Doar) 38 余分なコードは決して書かない ピート・グッドリフ(Pete Goodliffe) 39 最初が肝心 マーカス・ベイカー(Marcus Baker) 40 プロセス間通信とアプリケーションの応答時間の関係 ランディ・スタッフォード(Randy Stafford) 41 無駄な警告を排除する ヨハンネス・ブロドワル(Johannes Brodwall) 42 コマンドラインツールを使う キャロル・ロビンソン(Carroll Robinson) 43 プログラミング言語は複数習得すべき ラッセル・ワインダー(Russel Winder) 44 IDEを知る ハインツ・カブーズ(Heinz Kabutz) 45 限界を知る グレッグ・コルヴィン(Greg Colvin) 46 すべきことは常に明確に ダン・バーグ・ヨーンソン(Dan Bergh Johnsson) 47 大量のデータはデータベースで ディオミディス・スピネリス(Diomidis Spinellis) 48 いろいろな言葉を学ぶ クラウス・マルカルド(Klaus Marquardt) 49 見積りとは何か ジョヴァンニ・アスプローニ(Giovanni Asproni) 50 Hello, Worldから始めよう トーマス・ゲスト(Thomas Guest) 51 プロジェクト自身にしゃべらせる ダニエル・リンドナー(Daniel Lindner) 52 「その場しのぎ」が長生きしてしまう クラウス・マルカルド(Klaus Marquardt) 53 正しい使い方を簡単に、誤った使い方を困難に スコット・マイヤーズ(Scott Meyers) 54 見えないものを見えるように ジョン・ジャガー(Jon Jagger) 55 並行処理に有効なメッセージパッシング ラッセル・ワインダー(Russel Winder) 56 未来へのメッセージ リンダ・ライジング(Linda Rising) 57 ポリモーフィズムの利用機会を見逃さない カーク・ペパーディーン(Kirk Pepperdine) 58 テスト担当者はプログラマの友人 バーク・ハフネーゲル(Burk Hufnagel) 59 バイナリは常に1つ スティーブ・フリーマン(Steve Freeman) 60 真実を語るはコードのみ ピーター・ゾンメルラード(Peter Sommerlad) 61 ビルドをおろそかにしない スティーブ・P・バーチャック(Steve Berczuk) 62 プリミティブ型よりドメイン固有の型を アイナー・ランドル(Einar Landre) 63 ユーザの操作ミスを防止する ジャイルズ・カルバン(Giles Colborne) 64 プロのプログラマとは? ロバート・C・マーティン(Robert C. Martin アンクル・ボブ) 65 バージョン管理システムを有効に使う ディオミディス・スピネリス(Diomidis Spinellis) 66 いったんコンピュータから離れてみる バーク・ハフネーゲル(Burk Hufnagel) 67 コードを読む カリアンヌ・バルク(Karianne Berg) 68 「人間」を知る ケース・ブレイスウェイト(Keith Braithwaite) 69 車輪の再発明の効用 ジェイソン・P・セージ(Jason P. Sage) 70 シングルトンパターンの誘惑に負けない サム・サーリスト(Sam Saariste) 71 パフォーマンスへの道は地雷コードで敷き詰められている カーク・ペパーディーン(Kirk Pepperdine) 72 シンプルさは捨てることによって得られる ポール・W・ホーマー(Paul W. Homer) 73 単一責任原則 ロバート・C・マーティン(Robert C. Martin アンクル・ボブ) 74 「イエス」から始める アレックス・ミラー(Alex Miller) 75 面倒でも自動化できることは自動化する ケイ・ホルストマン(Cay Horstmann) 76 コード分析ツールを利用する サラ・マウント(Sarah Mount) 77 偶然の仕様ではなく本物の仕様のためのテストを書く ケブリン・ヘニー(Kevlin Henney) 78 テストは夜間と週末に ラジット・アタパトゥー(Rajith Attapattu) 79 テストのないソフトウェア開発はあり得ない ニール・フォード(Neal Ford) 80 1人より2人 エイドリアン・ワイブル(Adrian Wible) 81 エラーがエラーを相殺してしまう アラン・ケリー(Allan Kelly) 82 他者への思いやりを意識したコーディング アスラム・カーン(Aslam Khan) 83 UNIXツールを友にする ディオミディス・スピネリス(Diomidis Spinellis) 84 正しいアルゴリズムとデータ構造を選ぶ ヤン・クリチアン・"JC"・ヴァン・ウィンケル(Jan Christiaan “JC” van Winkel) 85 冗長なログは眠りを妨げる ヨハンネス・ブロドワル(Johannes Brodwall) 86 WETなシステムはボトルネックが見つかりにくい カーク・ペパーディーン(Kirk Pepperdine) 87 プログラマとテスターが協力してできること ジャネット・グレゴリー(Janet Gregory) 88 コードは生涯サポートするつもりで書く ユーリー・ズバリョフ(Yuriy Zubarev) 89 関数の「サイズ」を小さくする ケース・ブレイスウェイト(Keith Braithwaite) 90 コードを見る人のためにテストを書く ジェラルド・メサローシュ(Gerard Meszaros) 91 良いプログラマになるには ピート・グッドリフ(Pete Goodliffe) 92 顧客の言葉はそのまま受け取らない ネイト・ジャクソン(Nate Jackson) 93 エラーを無視するな ピート・グッドリフ(Pete Goodliffe) 94 リンカは魔法のプログラムではない ウォルター・ブライト(Walter Bright) 95 ペアプログラミングと「フロー」 グドニー・ハウクネス(Gudny Hauknes)、カリ・ロスランド(Kari Rossland)、 アン・カトリン・ガナット(Ann Katrin Gagnat) 96 テストは正確に、具体的に ケブリン・ヘニー(Kevlin Henney) 97 ステートに注目する ニクラス・ニルソン(Niclas Nilsson) 日本人プログラマによる知っておくべき10のこと 01 命を吹き込む魔法 森田 創 02 ロールプレイングゲーム 関 将俊 03 ルーチンワークをフローのきっかけに 宮川 達彦 04 プログラマが持つべき3つのスキル 吉岡 弘隆 05 快適な環境を追求する 舘野 祐一 06 見知らぬ人ともうまくやるには 小飼 弾 07 不具合にテストを書いて立ち向かう 和田 卓人 08 育ちのよいコード 森田 創 09 Noといえることの大事さ 宮川 達彦 10 名前重要 まつもと ゆきひろ 寄稿者紹介