プログラマが知るべき97のこと

  • 1170人登録
  • 4.01評価
    • (76)
    • (125)
    • (66)
    • (2)
    • (1)
  • 97レビュー
制作 : 和田 卓人  Kevlin Henney  夏目 大 
  • オライリージャパン (2010年12月18日発売)
  • Amazon.co.jp ・本 (276ページ)
  • / ISBN・EAN: 9784873114798

この本を読んでいる人は、こんな本も本棚に登録しています。

有効な左矢印 無効な左矢印
ケント ベック
濱野 純(Jun...
有効な右矢印 無効な右矢印

プログラマが知るべき97のことの感想・レビュー・書評

  • スタープレイヤーたちからの贈り物。結局「限られた時間の中でよりよいものを作るには」ということに集約されそう。

  • プログラミングの知識と経験をさらに身につけてまた再読したい。

  • リファクタリングのときに、1から作りたい気持ちをぐっと抑える
    →そのソースは、レビューを通ってきたソース
    →それを捨てるのは、

    ・コードは生涯自分がサポートするつもりで書く
    ・面倒でも自動化できることは自動化する

    ・シンプルさは捨てることによって得られる
    →ある程度以下の質のコードは、活かそうとはせず、即座に廃棄してしまった方が得策と言える
    ・良い部分だけを残して、悪い部分は消す
    →それすら困難なコードは、全部消して書き直す
    色々な言語を学ぶ
    →他者の言葉を知ることは、新たな魂を持つこと(カール大帝)

    ・常に自分が何をすべきかを明確にすると言うこと
    →期限も必ず決める

    余分なコードは決して書かない
    →常に自分が今書いてるコードは本当に必要なものか考える

    ・自分の書くコードは、全部、未来の誰かへのメッセージだと思うのよ。その誰かはあなたの弟さんかもしれない。

    ・文章にしろ、和音にしろ、リズムにしろ、美しく、優雅なもの、優れたものは全て、シンプルである(プラトン)

    ・コーディング規約を自動化する
    →当初ドキュメントにまとめても、まず守られないと思った方が良い

    ・コードだけが全てを語る
    →要件定義書や設計書は、そうなる予定だったもの

  • 僕は職業プログラマでもなければ、今のところちゃんと書ける言語もない駆け出しだが全体に語り口がマイルドで読みやすく、内容もなんとなくは把握できた。

    しかし、この本で注目すべきは巻末の寄稿者プロフィールと脚注の参考文献だろう。この書籍をきっかけに、興味のある分野へ進んでいくとよさそう。1人前になるための1万時間を有意義にするために、入口としても使える良書。

  • 色々な意見があるが、今気になったのは以下の3つ。
    ・エクストリームプログラミング、テスト駆動開発
    アジャイル開発向けだが、流用コードの多いプロジェクトでの開発でも使えそう
    ・複数の言語を学ぶ
    手続き型、オブジェクト指向、関数型などを学ぶことにより、その言語が持つ特徴を深く学べる
    ・名付けの重要性
    変数名や関数名などは、その役割をはっきり理解していないと名付けがうまく出来ない

  • 請求記号 007.64/H 52

  • 「プログラマが知るべき97のこと」からの7つのこと - まほろば技術パーク
    http://komeshogun.hatenablog.jp/entry/20141101/1414796516

  • 耳が痛くなる言葉も、
    そうでない言葉もがたくさんありました。

    あらためて、当たり前のことを当たり前にやるのは、
    本当に難しいことだと感じました。
    もっと覚えなくてならないこと、
    もっと学ばなくてはならないこと、
    もっと経験しなくてはならないことが、
    たくさんあると思いました。

    できてないと感じたのならやれば良くて、
    できてないと感じれたことが、
    今の自分の一歩目なのだと思いました。

    ざ きのこ本。

    (以下抜粋。○:完全抜粋、●:簡略抜粋)
    ○壊れていないものを直すのは無意味です。(P.13)

    ○たとえコードが4行ほどのもので、
     行っていることが同じだったとしても、
     それはたまたま一時的にそうなっていただけのことです。(P.14)

    ○コードレビューを成功させるためにもっとも有効な方法は、
     レビューを楽しいものにすることです。(P.29)

    ○関数はできる限り短くし、機能は1つに絞り込む。
     古くから言われる「24行制限」は今も有効である。(P.31)

    ○英語には、
     たとえば「Make up your room, be quiet and do your homework」ということを
     一語で伝えれるような単語はないのです。(P.39)

    ●デザインパターンの多くは明らかにアプリケーションの中の重複を減らす、
     あるいは排除することを目的としています。
     オブジェクトの使用する条件がいつも同じであれば、Abstarct Factory、Factory Methodパターンを、
     オブジェクトのふるまいに種類があるのであれば、Stategyパターンを使用します。(P.59)

    ●金融関係のアプリケーションには浮動小数点数を使うべきではないということも書いておくべきでしょう。
     (中略)
     浮動小数点数は、元々、科学技術計算を効率的に行うことを目的としたものです。

    ●YANGI(You Ain't Gonna Need It:それはたぶん必要ない)
     余計かもしれないがおもしそうだと思えた。
     将来必要になるかもしれないと思った。
     必要かどうか判断に迷った。
     常に考える必要があるのです。いま自分が書いているコードは本当に必要なものなのか。(P.76-77)

    ●プログラミング言語のパラダイムは大きく、
     手続き型、オブジェクト指向型、関数型、論理型、データフロー型などに分類することができます。
     (中略)
     ある問題を解決するのに、
     言語Aではこのイディオムを使用するが、
     言語Bで同じイディオムは使えないというような体験が重要なのです。
     (中略)
     最も顕著な効用は、
     1つのパラダイムしか知らなければ思いつかないような表現を
     使用することができるということです。(P.86-87)

    ○find . -name "*.java" | sed 's/.*\/// | sort | uniq -c | grep -v "~ *1 " | sort -r(P.89)

    ○Shippingクラスのshipメソッドを呼び出す仕事をItemクラスに委譲しています。(P.115)

    ○ある問題について十分に考えたら、あとは音楽を聴くなり、散歩をするなりして、
     脳の創造を司る部分をはたらかせてみてください。
     じっとコンピュータの前に座って考え込んでいるより、
     その方が良いアイディアを思いつくものです。(P.133)

    ○プログラミングの技術を本気で磨きたいと思っているのなら、本を読むのもいいですが、
     一番いいのは、他人が書いたものでも自分が書いたものでも、
     とにかくコードを読むこと... 続きを読む

  • プログラマが知るべき97のこと

  • 素晴らしい、責任感のあるプログラマのロールをプレイしよう。負債は負わないように。

  • 2年とちょっとぶりの再読。リーダブルコードがコードの書き方に焦点を絞ってよい習慣を語っているとすると、こちらはそれをもう少し広げてプログラマとして技術を磨いたり、チームで上手く仕事をするためのよい習慣を集めたもの、とでも言おうか。すぐにでも取り入れられそうなものから、長い時間をかけて次第に身に付いてくるようなものまで97+10個あるので、たまに読み返してプログラマとしての居住まいを正すために使いたい本。

  • 著名プログラマー達による格言集。一つひとつの内容は他の書籍等で見かけるような内容が多いですが、各プログラマの顔写真と巻末のプロフィール付きということもあり、各格言の背景も透けて見えるのがいいです。

  • 様々な有名プログラマのアドバイスを読むことができる本。1つのコラムが2〜3ページで非常に読みやすい。全員が個別に書いたアドバイスで似たような内容がいくつも登場することから、ソフトウェア開発で大切だと言われることはやはり守るべきであるという事がよく理解できる1冊。

  • テーマが多岐にわたる、かつ整理されてないので、頭から順に読むのではなく目次を眺めて「これだっ!」てのを読んでみるといいかも。

    内容も初心者にも分かりやすいものから、かなり専門的なものまで多種多様。折りにふれ読み返したい1冊ではある。

  • 執筆業やブログで活躍するプログラマーたちによる,97のコラム集.日本語版では,同じく様々な場で活躍する日本人プログラマーによる10のコラムが加わり,計107本.ほとんどが見開き2ページに収まっており,順番通りに読まなくても良い設計.
    編集者によると,プログラミングに関わることなら細かいテーマは絞らなかったとのことで,確かに,似たようなことが書かれているコラムが何本かあるが,逆にテーマが被っているのはそれだけ大事ということなんだと思う.例えば,ペアプロ,複数のプログラミング言語の習得,テスターとの協調,TDDなどが被っていたように思う.ただし,コラムによっては,同じ単語でも意味が違うことがある.例えば“インターフェース”とか.
    個人的には,ケブリン・ヘリー氏の「はじめに」と,アンクル・ボブ氏の64「プロのプログラマとは?」がとてもためになった.特にコラム64はプログラミング前には毎回読んでも損はないという内容.

  • まつもとひろゆきさんの
    「名前重要」のエッセーが収穫といったところか。

    Rubyは名前がよかったから成功した。
    たしかにな。いい名前だ。

    自分もシステム構築するときにサーバの名前何にするかで
    かなり悩むもんな。

    名前重要。

  • 世界の著名なプログラマが1ページ〜2ページで各々が一番伝えたいことを簡潔に述べた本。1つ1つが短く、ちょっとした時間でも読めることが出来て、その1つ1つ非常にためになる話の連続。日本人プログラマによるボーナストラックも良いです。1度は読みたい良書。

  • やっぱりなー、と共感出来る内容も多くて面白かった。

  • 『プログラミングに於いて最も大事なことは何か』というテーマで、世界の著名なプログラマ達が各々の持論を説いている本。
    殆どの項目が見開き1ページで完結しており、読みやすいと思う。
    内容も、興味深いものが多く丁寧に訳してあるので分かりやすい。

    内容で特に印象に残っているのは
    ・複数の言語を勉強しよう。
    ・統合開発環境に頼り過ぎないようにしよう。
    ・名前重要。

  • リファクタリングしてて迷ったときに
    振り返ったら参考になりました。

    たまに振り返ると良さそうだから手元に置いとこうかな。

  • 通称”きのこ本”。

  • 内容はためになるけど、数が多すぎて断片的になってしまって頭に残りにくいのが…この手の数で勝負するより、内容が少なくてもある程度ストーリーが無いと記憶に残りにくいことを痛感しました。

  • 書名から「き97のこ」の部分をとりだして、「97きのこ本」という愛称がついています。
    そのルールに基づくなら姉妹本の『ソフトウェアアーキテクトが知るべき97のこと』も「97きのこ本」になるのですが、こちらは特にそのようには呼ばれてはいないようです。

    原著の73人のプログラマによる97本のエッセイに加えて、日本人プログラマ8人(小飼弾、関将俊、舘野祐一、まつもとゆきひろ、宮川達彦、森田創、吉岡弘隆、和田卓人)による書き下ろしの10本のエッセイが追加され合計107本のエッセイ集になっています。

    エッセイ1本は2ページのものが中心なので電車の中などでも気軽に読むことができます。

    テストを話題にしたものも、タイトルだけでも、8本あります(本書中にある分類では14本になっていました)。

     テスト担当者はプログラマの友人
     偶然の仕様ではなく本物の仕様のためのテストを書く
     テストは夜間と週末に
     テストのないソフトウェア開発はあり得ない
     プログラマとテスターが協力してできること
     コードを見る人のためにテストを書く
     テストは正確に、具体的に
     不具合にテストを書いて立ち向かう

    全体的にそれぞれのプログラマ達の経験からのアドバイスが多く好感が持てます。

    ★★★

    本書を読んで初めて知った言葉に「フロー」いうものがあります。
    次の文章は、『95 ペアプログラミングと「フロー」』の出だしです。
     何かに完全に没頭している時──夢中で何かをしていて、時間が経つのも忘れてしまっているとき──それはきっと人間にとって幸せな状態です。その状態は「フロー状態」と呼ばれます。

    「フロー状態」にすっと入っていけること、また、「フロー状態」を維持できることができたら品質や生産性は格段に上がると思います。

    自分自身の事を振り返っても、会社でテストツールのプログラムを書いていたときは、誰もいないときか、みんなが帰った夜中に書いていました。
    本、論文、原稿、プレゼン資料を作るときにも、10時間のうち、8時間は題材を考えていたり、資料を集めていたり、テキストエディタに目次と構成をタブで作っていたりして、実際に書くのは2時間というパターンが多いです。その集中して何かをしている時が「フロー状態」なんだろうなと思います。

    ソフトウェアの見積りが難しいのも「フロー状態」の自分で工数を見積もってしまうからかなぁと思いました。
    ところで、私の場合、「フロー状態」に入るために、

     ・ 甘いコーヒーを飲み、チョコレートを食べる
     ・ 机の上を片付ける
     ・ メールを読み、返信し尽くす

    という儀式が必要です。こういった儀式を集めたら面白かもしれませんね。

  • プログラマに対して、ソフトウェア開発やプログラミングを行う上で気をつけた方が良いことを、97+10(日本人によるもの)=107項目に分けて紹介している。
    プログラムを書き始めたばかりのプログラマだけでなく、ソフト開発で重要なことを再認識するという意味で、熟練者やプロジェクトマネージャーなどIT業界で働く人も読む価値があるだろう。

    各項目では、今まで数多くソフトウェアの開発に携わってきた人が、それぞれ最も重要であることを伝えようとしている。
    そのため、項目間では相反するところもいくつか見られた。
    しかし、いずれも間違いではないので、ここに書いてことは、参考するにとどめて、最終的には自分なりに重要な項目を作ると良いかもしれない。

    通常の目次に加え、ジャンル別に目次が作られていて、とても親切であるように感じられるが、最初からジャンル別で構成しておけば、さらに良かったのではないかと思う。

全97件中 1 - 25件を表示

プログラマが知るべき97のことに関連する談話室の質問

プログラマが知るべき97のことに関連するまとめ

プログラマが知るべき97のことの作品紹介

人々のさまざまな思いを技術で形にするプログラマ。本書は世界中で活躍するプログラマによる97本のエッセイを収録した書籍。プログラミングにおいてもっとも重要な事柄は何か、バージョン管理やテスティング、設計原則とコーディングテクニック、また腕を磨くための勉強法などについて、経験豊かなプログラマが自らの体験を踏まえて解説。プログラマを勇気づけ、新たな気づきをもたらす一冊である。日本語版では、小飼弾、関将俊、舘野祐一、まつもとゆきひろ、宮川達彦、森田創、吉岡弘隆、和田卓人による10本の書き下ろし収録。

ツイートする