現在地
トップ > 電子書籍 > PC・システム開発 > プログラミング > プログラミング入門
良いコード/悪いコードで学ぶ設計入門ー保守しやすい成長し続けるコードの書き方

良いコード/悪いコードで学ぶ設計入門ー保守しやすい 成長し続けるコードの書き方 [電子書籍版]
仙塲 大也

1位 PC・システム開発部門 楽天ブックス日別ランキング(2022年06月27日)ランキングを見る

3,278(税込)

楽天Kobo初めての方へ!クーポンプレゼント
楽天Kobo初めての方へ!クーポンプレゼント

商品情報

  • 著者:   仙塲 大也
  • 発売日:  2022年04月26日
  • 出版社:  技術評論社
  • 商品番号:  9784297127848
  • 言語:  日本語
  • 対応端末:   電子書籍リーダー, Android, iPhone, iPad, デスクトップアプリ

商品説明

内容紹介

(概要)

本書は、より成長させやすいコードの書き方と設計を学ぶ入門書です。

システム開発では、ソフトウェアの変更が難しくなる事態が頻発します。コードの可読性が低く調査に時間がかかる、コードの影響範囲が不明で変更すると動かなくなる、新機能を追加したいがどこに実装すればいいかわからない……。

変更しづらいコードは、成長できないコードです。ビジネスの進化への追随や、機能の改善が難しくなります。

成長できないコードの問題を、設計で解決します。


(こんな方におすすめ)

・ コードの設計スキルに興味がある人

・ 日々、悪いコードと向き合っていて改善したい人

・より良いコードを書きたい人


(目次)

1 悪しき構造の弊害を知覚する

1.1 意味不明な命名

1.2 理解を困難にする条件分岐のネスト

1.3 さまざまな悪魔を招きやすいデータクラス

1.4 悪魔退治の基本

2 設計の初歩

2.1 省略せずに意図が伝わる名前を設計する

2.2 変数を使い回さない、目的ごとの変数を用意する

2.3 ベタ書きせず、意味のあるまとまりでメソッド化

2.4 関係し合うデータとロジックをクラスにまとめる

3 クラス設計 ーすべてにつながる設計の基盤ー

3.1 クラス単体で正常に動作するよう設計する

3.2 成熟したクラスへ成長させる設計術

3.3 悪魔退治の効果を検証する

3.4 プログラム構造の問題解決に役立つ設計パターン

4 不変の活用 ー安定動作を構築するー

4.1 再代入

4.2 可変がもたらす意図せぬ影響

4.3 不変と可変の取り扱い方針

5 低凝集 ーバラバラになったモノたちー

5.1 staticメソッドの誤用

5.2 初期化ロジックの分散

5.3 共通処理クラス(Common・Util)

5.4 結果を返すために引数を使わないこと

5.5 多すぎる引数

5.6 メソッドチェイン

6 条件分岐 ー迷宮化した分岐処理を解きほぐす技法ー

6.1 条件分岐のネストによる可読性低下

6.2 switch文の重複

6.3 条件分岐の重複とネスト

6.4 型チェックで分岐しないこと

6.5 interfaceの使いこなしが中級者への第一歩

6.6 フラグ引数

7 コレクション ーネストを解消する構造化技法ー

7.1 わざわざ自前でコレクション処理を実装してしまう 7.2 ループ処理中の条件分岐ネスト

7.3 低凝集なコレクション処理

8 密結合 ー絡まって解きほぐせない構造ー

8.1 密結合と責務

8.2 密結合の各種事例と対処方法

9 設計の健全性をそこなうさまざまな悪魔たち

9.1 デッドコード

9.2 YAGNI原則

9.3 マジックナンバー

9.4 文字列型執着

9.5 グローバル変数

9.6 null問題

9.7 例外の握り潰し

9.8 設計秩序を破壊するメタプログラミング

9.9 技術駆動パッケージング

9.10 サンプルコードのコピペ

9.11 銀の弾丸

10 名前設計 ーあるべき構造を見破る名前ー

10.1 悪魔を呼び寄せる名前

10.2 名前を設計するー目的駆動名前設計

10.3 設計時の注意すべきリスク

10.4 意図がわからない名前

10.5 構造を大きく歪ませてしまう名前

10.6 名前的に居場所が不自然なメソッド

10.7 名前の省略

11 コメント ー保守と変更の正確性を高める書き方ー

11.1 退化コメント

11.2 コメントで命名をごまかす

11.3 意図や仕様変更時の注意点を読み手に伝えること

11.4 コメントのルール まとめ

11.5 ドキュメントコメント

12 メソッド(関数) ー良きクラスには良きメソッドありー

12.1 必ず自身のクラスのインスタンス変数を使うこと

12.2 不変をベースに予期せぬ動作を防ぐ関数にすること

12.3 尋ねるな、命じろ

12.4 コマンド・クエリ分離

12.5 引数

12.6 戻り値

13 モデリング ークラス設計の土台ー

13.1 邪悪な構造に陥りがちなUserクラス

13.2 モデリングの考え方とあるべき構造

13.3 良くないモデルの問題点と解決方法

13.4 機能性を左右するモデリング

14 リファクタリング ー既存コードを成長に導く技ー

14.1 リファクタリングの流れ

14.2 ユニットテストでリファクタリングのミスを防ぐ

14.3 あやふやな仕様を理解するための分析方法

14.4 IDEのリファクタリング機能

14.5 リファクタリングで注意すべきこと

15 設計の意義と設計への向き合い方

15.1 本書はなんの設計について書いたものなのか

15.2 設計しないと開発生産性が低下する

15.3 ソフトウェアとエンジニアの成長性

15.4 課題を解決する

15.5 コードの良し悪しを判断する指標

15.6 コード分析をサポートする各種ツール

15.7 設計対象と費用対効果

15.8 時間を操る超能力者になろう

16 設計を妨げる開発プロセスとの戦い

16.1 コミュニケーション

16.2 設計

16.3 実装

16.4 レビュー

16.5 チームの設計力を高める

17 設計技術の理解の深め方

17.1 さらにステップアップするための設計技術書紹介

17.2 設計スキルを高める学び方


商品レビュー(3件)

総合評価
 5.0

楽天Koboのレビュー

まだレビューがありません。 レビューを書く

楽天ブックスランキング情報

楽天Kobo電子書籍版

  • 期間限定!イチオシのキャンペーン

最近チェックした商品

    ※表示を削除したい場合は閲覧履歴のページから削除お願いいたします

    購入データ自動連携!楽天ブックス公式 無料 読書管理パプリ Readee

    このページの先頭へ