プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則

著者 :
  • 秀和システム
3.80
  • (37)
  • (39)
  • (38)
  • (12)
  • (0)
本棚登録 : 912
感想 : 48
本ページはアフィリエイトプログラムによる収益を得ています
  • Amazon.co.jp ・本 (304ページ)
  • / ISBN・EAN: 9784798046143

作品紹介・あらすじ

めざせ、脱・初心者。古今東西の達人たちの知恵を、一冊に凝縮してやさしく解説した、プログラマ必携の書!

感想・レビュー・書評

並び替え
表示形式
表示件数
絞り込み
  • プログラマーの心得を各書、各経験から集めたという感じです。
    一応、、プログラム周辺のお仕事をしてる身としては3年目でこの内容を身につける事は到底できませんでした。。しかし、書いてあることは真実だと実感してます。

    ※それぞれのプリンシプルで真逆のことが記載されてたりしますが、間違いではなくてそれをいい「加減」で使いこなすのが大変だったりしますね。。

  • ひとつひとつのプリンシプルごとに読み切りできるので、隙間時間などにも読みやすい。
    応用の幅を広げて欲しいとのことで、プリンシプルの具体例、コードの記載がないが、具体的なイメージがわかないプリンシプルもあるので、具体例を載せて欲しい。

  • ## 直行性

    直交は、幾何学において、グラフの座標軸のように直角に交わる2つの線分の性質です。

    ある点を、X軸に平行に動かしていった時、Xの値は変化しますが、Yの値は変化しません。

    つまり、Xの変更は、Yに何ら影響を与えません。

    コードは、この直交性を満たすようにします。

    つまり、あるコード同士が「独立性」「分離性」を持つようにします。

    `2つ以上のコードの塊があり、片方を変更しても他方に影響を与えない場合、それらは直交しています。直交しているコードは、変更に強いコードです。`

    ## パフォーマンスチューニング

    1. 最適化の必要性を証明する
    2. パフォーマンスを計測し、ボトルネックを特定する
    1. 処理時間の大半を占めている部分のことを「ホットスポット」と呼ぶ
    3. ボトルネックのコードを最適化する
    4. パフォーマンスを計測し、最適化の効果を確認する
    5. 最適化したコードの動作に問題がないことを検証する

    ## エゴレスプログラミングの十戒

    - 自分自身も間違いを犯すということを理解し、受け入れる
    - 書いたコードは自分自身ではない
    - どれほど極めたいと思っても、上には上がいる
    - 相談なしに、コードを書き直しません
    - 自分よりもスキルが劣る人にも、尊敬と敬意と忍耐を持って接します
    - 世界で唯一変わらないことは、変わるということ
    - 本当の権威は、地位ではなく、知識から生じます
    - 信じるもののために戦います。ただし、負けは潔く受け入れます
    - 部屋に篭りきりはいけません
    - 「人に優しく、コードに厳しく」して、人ではなくコードを批評します

    ## 論理的思考のコツ

    - 瞬時に答えを得ようとする態度は誤りです。瞬時に分からなくても考え続けましょう
    - 既に考えたことを、しっかり覚えておきましょう。そうすれば同じことを何度も繰り返し考える「思考のループ」に入り込んでしまうことが避けられます
    - 覚えておくのは大変なので、書きながら考えるようにしましょう。書きながら考えることは、副次効果もあります。書いて、目で見えるようにすると頭の中だけで考えていたときには分からなかったものがなぜかわかるようになります。

    ## 関数側では、引数の調整は行わない

    - 呼び出される関数の側で、渡された引数の調整はしてはいけない
    - 呼び出される関数側は、契約に基づいて「安心して」引数を使うべき。その結果、コードがシンプルになる

    ## エラー処理における「正当性」と「堅牢性」

    - 正当性とは、不正確な結果を決して返さないことを意味する。不正確な結果を返すくらいなら、何も返さないほうがまだ良いという考え方
    - 堅牢性とは、実行を継続できるように手を尽くすこと。不正確な結果がもたらされることがあっても、実行を継続できれば構わない、という考え方

    ## 割れた窓の法則

    - ソフトウェアの「割れた窓」、つまり「悪い設計」「間違った意思決定」「悪いコード」を放置すると、それがどんなに小さいものでも、ソフトウェア全体をごく短期間で腐敗させることになる

    ## コード腐敗の兆候を掴む

    『硬さ』

    - 硬さとは、変更の難しさのこと
    - たった一つの変更で、それと依存関係のあるモジュールを連鎖的に変更しなければならない場合、「硬い」設計のコードと言える

    『脆さ』

    - たった一つの変更によって、他の多くの部分が壊れてしまう度合いのこと。
    - 脆いコードは、変更した部分とは全く関連のない箇所まで壊れてしまうことがある

    ## 80-10-10の法則

    - 高水準のツールや言語によってソフトウェアを開発すると、ユーザーの求めることの80%は驚くほど短時間で実現することができる
    - しかし、残り20%のうち、10%は実現可能だが、相当な努力が必要となる
    - さらに最後の10%は完全に実現が不可能

    ## 80-20の法則

    - 障害の8割は、2割のコードに集中している
    - 処理にかかる時間の8割は、2割のコードが締めている

  • ウェブディレクターの仕事をしている。プログラミングの知識はないが、ウェブエンジニアのコードレビューの仕事を理解したくて、読んでみた。

    しかし、内容に全くピンとこなかった。本書のような、テクニカルなことよりも、構造的な部分を理解した方が、業務には役立つような気がした。あと、自分で手を動かして、コーディングを実際に行う。

    一年後くらいに、プログラミングに少し慣れてきたところで、本書に再チャレンジしてみよう。ちんぷんかんぷんだったことが、少しでも腑に落ちるようになっていたい。

  • タイトルの通り、プログラマが意識しておくべき先人の知恵(プリンシパル)が数ページごとにわかりやすくまとめられている本です。
    各プリンシパルが「どんなものか」「なぜ必要か」「どうすればよいか」という枠で説明されているため、とても読みやすかったです。
    コードが一切でてこないため、実務を経験すればするほどイメージしやすいと感じました。自分自身1年目のプログラマのため、変数名の修正などリファクタリングに関するイメージしやすい箇所と、結合度、凝縮度などイメージしづらい箇所がありました。
    自分の周りにこの本をすすめる事で、よりスムーズにプリンシパルに沿ったプログラミングができるのではと思いました。

  • プログラミングの原理・原則に重点をおいて、プログラミング初学者がどのようにコードを書いていけばいいのかが細かく記されている。
    ただ、あくまで原理・原則なので、参考となるコードを用いて解説するような箇所はあまりない。
    (僕自身初学者なので)個人的に、第4章のモジュールについての記述は参考になった。

  • プログラミングに関する原理原則をまとめた本。
    いずれも基礎知識として知っておいた方が良い内容なので、目次を読んで知らないものが多いなら読むと良いと思う。
    また、各項目には参考書籍が載っているため、より詳しく知りたい時には良書への索引集として役立つ。

    ただし、各項目数ページの記述であり、具体的なコードもないので、全くゼロからこの本だけで原理原則を理解できるとは思わない方が良い。

  • ●ざっくり感想

    本書は言語や分野を問わず「コードを書く人」に向けて書かれています。内容は抽象的で、コードのサンプルはありません。そのため本のタイトルに『3年目までに身につけたい〜』とありますが、プログラミング始めたての人やこれからエンジニアを目指す段階の人だと読んでもあまりピンとこなさそうだなと思いました。なので個人的には最低でもコードを書く経験を数ヶ月してから読むことをオススメします。

    内容は「確かにその通りだな」と共感できるものが多く、その中で新たな学びもあり良かったです。1つのプリンシプル(=原則)についての説明が大体2〜5ページ、長くても10ページぐらいで読みやすいのも、一気に読んだわけではなく隙間時間を使って少しずつ読んだ自分にとっては有り難かったです。

    ーーーーー

    自分のブログから引用
    https://kwn1125.hatenablog.com/entry/2023/01/23/210000

  • コーディングの時とかの指針になるのでおすすめです

  • 会社の共有本棚から読みましタ。新しい知識はないですガ、エンジニアなら会話で出てくるような用語が一語1〜2ページくらいの規模でザッとまとまっていまス。説明も平易でスッと入ってきまス。1年目で読んでおきたい本

全48件中 1 - 10件を表示

上田勲の作品

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

有効な左矢印 無効な左矢印
有効な右矢印 無効な右矢印
  • 話題の本に出会えて、蔵書管理を手軽にできる!ブクログのアプリ AppStoreからダウンロード GooglePlayで手に入れよう
ツイートする
×