仙塲大也のレビュー一覧
-
Posted by ブクログ
悪いコードの事例として、多くの読者にとって馴染みのあるRPGゲームプログラムの一部(HPというクラスや魔法や武器によるダメージ計算ロジック等)を扱ってるので、その対処法と効果がとても分かりやすかったです。
内容としてはどれも初歩的でプログラム設計初心者向きかと思いますが、実際に現場で扱われているプログラムはそんな初歩的なことすら守られてない本書の言葉でいうところの悪魔のコードで作られているのではないでしょうか?
プログラムをちょっと修正したいだけなのにどうしてこんなにも影響範囲を調査する必要があるのか、オブジェクト指向言語で開発しているけどその意義をいまいち感じられてない人に是非読んで頂きた -
Posted by ブクログ
改訂新版 良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方
著:仙塲 大也
出版社:技術評論社
本書の目的は、変更が容易にできるように基本的な設計スキルを身につけることにあり
リファクタリング等を設計の観点から見直し、現行のコードを、変更容易であるように再設計する
その主旨は、単純、分かりやすい、無駄の排除である
カプセル化
離れているデータと、ロジックを、カプセルという1つの箱に入れること
ローカル変数
影響範囲を必要な領域に限定する
関心の分離
それぞれの関心でモジュールを独立させ、他の関心と分離するという考え方
インタフェースと実装の分 -
Posted by ブクログ
リータブルコードよりも進んだ内容で、設計パターンなどがちらほら紹介されつつ、アンチパターンとその解決策を示している。基本的に自分としては上司に鍛えられたお陰でできている方だとおもったが、アンチパターンに陥っていないか時々振返りして自律する本だとおもう。一部staticについては凝集度の件で違和感があるが概ね納得いく。
入門とあるが、実際に一年くらい小規模でも書いていて上司やら誰かからフィードバックを受けて設計に多少なれておかない理解して実践は進みづらいと思う。
そしてなにより、これが最も必要な人は自信満々にアンチパターンをゴリゴリ書いてしまう自己肥大おっさんプログラマーだと思うが、自信が肥大化 -
Posted by ブクログ
ある程度経験を積んだ(辛酸を嘗めた)エンジニアであれば「こういうのあるよね」とリアリティを伴った共感をせずにはいられない養殖コードたちと、よりよくするためのTipsがわかりやすくまとめられている。
Tipsについては「他の方法がいいんじゃないの?」というものもあるが、そういった議論の余地があることにこそ価値がある。たとえば会社で本書を読み合わせてみる。すると多角的な視点から意見が集まってきて、その対話で学びが練り上がっていく。
「こんな初歩的な書き方しないだろう」「こんなの勉強してたらとっくに知ってるよ」そう思うシニアエンジニアが、その境地に達していないジュニアなエンジニアと本書を読み合わせて -
Posted by ブクログ
# 中級者向けのクラス・システム設計の参考書
## 面白かったところ
- GetterやSetterが悪と呼ばれる所以をサンプルコードを通じて知ることができる
- クラス設計でミスをする理由、改善方法がわかりやすく提示してある点
_ ほんとうの意味でのカプセル化が完全に理解できる
## 微妙だったところ
- 特になし
## 感想
「ソフトウェアエンジニアリング難すぎんか?」と、いつも思い耽りながら仕事をこなし、銀の弾丸を求めて技術書を読み漁るような人間にとっては、かなり刺激的な書籍だった。
良い設計指南書は抽象的すぎて実際にクラス配置はできるが、クラスの中のプロパティやメソッ -
Posted by ブクログ
ネタバレ・デフォルトでは変数はイミュータブルとする
・高凝集とはデータとロジックが結びついている状態
・概念的に異なるものはクラス化しプリミティブ型執着を避ける
・インターフェースを使ったストラテジーパターンでSwitch文クローン問題を回避する
・共通処理があっても概念的に異なるものは独立してクラス化して疎結合にする
・フールプルーフの観点から継承は使わず移譲(メンバーにスーパークラスを持つ)を使うコンポジション設計にする
・コレクションに性質がある場合はクラス化する(ファーストクラスコレクション)
・肥大化したデータクラスはグローバル変数と似た性質を持つため避ける
・フォルダ構成は技術駆動ではなく