
レビュー
★★★★☆エンジニアとは?プログラマーとは?という哲学的な事や、いろいろな基本のお作法などについて書かれていて、 改めて読んでもなかなかの納得感のある書籍でした。 中にクイズがたくさん書かれていて、それらを考えている時間が結構かかるので、全部に答えようとするととてもじゃ無いけど1ヶ月じゃ読みきれないボリュームです。 いろいろな偉人の名言をプログラミング環境に紐づけて紹介してあるのも何ともエモい演出でした。 みんないい事言ってるな〜というぐらいの軽い気持ちで読んでも、なかなかに学びのある内容なので、まだ読んだ事が無い人は少しずつでも読んでみるといいかもですね。
この書籍のポイント
特に好きだった章は「第4章 妄想の達人」です。あなたは、完璧なソフトウェアを作る事ができない。こんなどギツいセリフから始まるこの章には、バグの無いプログラムコードは無いと言わんばかりですが、逆に考えると、完璧なソフトウェアを作る必要も無いという落とし所です。 カッチリ、キッチリしたソフトウェアなど世の中にないのであれば、それを一生懸命作ろうとする心理的ストレスから少し解放される気がしませんか? 設計からテストまで、どう言った思考で考え進めばいいか、ちょっと難しい言い回しも多いのですが、ざっくりと達人思考が書かれていて、個人的にはどれも納得のいく内容でした。
十分に良いソフトウェア
面白いジョークが書かれていました。米国の企業が、日本の企業に向けて100,000個(10万個)のICチップを発注しました。 要求仕様には、チップの不良率は10,000個に1個にと記載されていたそうです。 数週間後に注文した品が納品され、大きな箱にICチップがぎっしりと詰め込まれていて、 その横に小さな箱が1つ付いてきていました。 その箱には、10個のICチップが入っていて、「こちらがご依頼の不良品です」と書かれたラベルが貼られていました。わかります?このアメリカンジョーク・・・ 本を読んだ時少し考えて、「な〜んだ、そういうことか」とちょっとした笑いが込み上げてきた内容に、すこしホッコリしました。
知識ポートフォリオ
エンジニアが持っているコンピュータの知識から、仕事関連の知識、その他いろいろなドメイン知識に関しては、「知識ポートフォリオ」として考えるのがいいそうです。 この知識ポートフォリオは次のように管理するべきだと書かれていました。1. 定期的に投資を行う。 2. 分散投資は長期的な鍵 3. 堅実な投資と、ハイリスク・ハイリターンでバランスを取る。 4. 利益を最大にすべく、安く買って高く売る 5. 定期的に見直して再分配するべき。そう、これは金融ポートフォリオの事を書いてあるんですが、知識ポートフォリオも全く同じ思考で考えるのが良いみたいですね。 その中で、「毎年言語を1つ学習する」という事が書かれてあり、これは非常に同感であり、これを楽しめる人こそが達人プログラマーだと感じました。
伝達しよう!
この章は、主にアウトプットについて書かれており、その内容がどれも共感できる内容ばかりでした。 聞き手のことを知る あなたの情報がうまく聞き手に伝わった場合にのみ伝達は成就される。 そのため、聞き手のニーズや興味、能力などを十分に理解しておく必要がある。 言いたいことを知る コミュニケーションで最も難しいのは「言いたいことを明確にする」という事。 特に、技術者のドキュメントは、非技術者には伝わりにくいという事で、 これをどの程度わかる内容に明確にできるかというのをいろいろな手段など紹介されていて、非常に学習になります。 オンラインコミュニケーション メールやチャットなど、テキストで伝達しようとする時に、今一度自分の書いてあることを再読してみることで、相手がどのように受け取る事ができるかイメージする事が大事です。 普段は大人しく優しい人が、チャットなどでは少しきつい印象を受けるような場面ありませんか? 自分ももしかしたら、そうなっているとしたら、伝達に成功しているとは言えないという、当たり前だけど最近よく問題になっている事の意識づけが書かれています。良い設計の本質
「デメテルの法則」というオブジェクト指向の考え方をベースにしているかどうかわからないけど、いろいろな設計思考が書かれてあるので、中級プログラマーは必ずこの章は読んだ方がいいですね。ETC原則
「良い設計は、悪い設計よりも、変更しやすい」 こんな言葉の通り、変更をしやすくするための設計を、「ETC原則」(Easier To Change)と言うらしいです。 この世のあらゆる設計原則は、このETC原則を特殊かしたものらしいですよ。 DRY原則 「二重化の過ち」として、同じことを2回書かない(プログラムで)というのは、有名な原則です。 これは、重複だけじゃなく、依存化や、分散化という、随所に必要な設計にも繋がるため、非常に重要な原則でもあります。 「すべての知識はシステム内において、単一かつ明確な、そして信頼できる表現になってなければいけない」 こんな原則ですね。
0 件のコメント:
コメントを投稿