TECH PLAY

良いコヌド悪いコヌドで孊ぶ蚭蚈入門

3,278円 (皎蟌)

楜倩

良いコヌド悪いコヌドで孊ぶ蚭蚈入門

曞籍情報

発売日

著者線集仙塲 倧也

出版瀟技術評論瀟

発行圢態単行本

曞籍説明

内容玹介

本曞は、より成長させやすいコヌドの曞き方ず蚭蚈を孊ぶ入門曞です。システム開発では、゜フトりェアの倉曎が難しくなる事態が頻発したす。コヌドの可読性が䜎く調査に時間がかかる、コヌドの圱響範囲が䞍明で倉曎するず動かなくなる、新機胜を远加したいがどこに実装すればいいかわからない 。倉曎しづらいコヌドは、成長できないコヌドです。ビゞネスの進化ぞの远随や、機胜の改善が難しくなりたす。成長できないコヌドの問題を、蚭蚈で解決したす。

目次

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 プログラム構造の問題解決に圹立぀蚭蚈パタヌン Column 皮類の異なる蚀語ず本曞のノりハり 4 䞍倉の掻甚 ―安定動䜜を構築する― 4.1 再代入 4.2 可倉がもたらす意図せぬ圱響 4.3 䞍倉ず可倉の取り扱い方針 5 䜎凝集 ―バラバラになったモノたち― 5.1 staticメ゜ッドの誀甚 5.2 初期化ロゞックの分散 5.3 共通凊理クラスCommon・Util 5.4 結果を返すために匕数を䜿わないこず Column C#のoutキヌワヌド 5.5 倚すぎる匕数 5.6 メ゜ッドチェむン 6 条件分岐 ―迷宮化した分岐凊理を解きほぐす技法― 6.1 条件分岐のネストによる可読性䜎䞋 6.2 switch文の重耇 Column ク゜コヌド動画「switch文」 6.3 条件分岐の重耇ずネスト 6.4 型チェックで分岐しないこず 6.5 interfaceの䜿いこなしが䞭玚者ぞの第䞀歩 6.6 フラグ匕数 7 コレクション ―ネストを解消する構造化技法― 7.1 わざわざ自前でコレクション凊理を実装しおしたう Column 車茪の再発明 7.2 ルヌプ凊理䞭の条件分岐ネスト 7.3 䜎凝集なコレクション凊理 8 密結合 ―絡たっお解きほぐせない構造― 8.1 密結合ず責務 Column ク゜コヌド動画「共通化の眠」 8.2 密結合の各皮事䟋ず察凊方法 Column ク゜コヌド動画「継承」 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 意図がわからない名前 Column 技術駆動呜名を甚いる分野もある 10.5 構造を倧きく歪たせおしたう名前 Column ク゜コヌド動画「Managerクラス」 10.6 名前的に居堎所が䞍自然なメ゜ッド 10.7 名前の省略 11 コメント ―保守ず倉曎の正確性を高める曞き方― 11.1 退化コメント 11.2 コメントで呜名をごたかす 11.3 意図や仕様倉曎時の泚意点を読み手に䌝えるこず 11.4 コメントのルヌル たずめ 11.5 ドキュメントコメント 12 メ゜ッド関数 ―良きクラスには良きメ゜ッドあり― 12.1 必ず自身のクラスのむンスタンス倉数を䜿うこず 12.2 䞍倉をベヌスに予期せぬ動䜜を防ぐ関数にするこず 12.3 尋ねるな、呜じろ Column ク゜コヌド動画「カプセル化」 12.4 コマンド・ク゚リ分離 12.5 匕数 12.6 戻り倀 Column メ゜ッドの名前蚭蚈 Column staticメ゜ッドの扱いに泚意 13 モデリング ―クラス蚭蚈の土台― 13.1 邪悪な構造に陥りがちなUserクラス 13.2 モデリングの考え方ずあるべき構造 13.3 良くないモデルの問題点ず解決方法 Column ク゜コヌド動画「Userクラス」 13.4 機胜性を巊右するモデリング 14 リファクタリング ―既存コヌドを成長に導く技― 14.1 リファクタリングの流れ 14.2 ナニットテストでリファクタリングのミスを防ぐ 14.3 あやふやな仕様を理解するための分析方法 14.4 IDEのリファクタリング機胜 14.5 リファクタリングで泚意すべきこず Column Railsアプリのリファクタリング 15 蚭蚈の意矩ず蚭蚈ぞの向き合い方 15.1 本曞はなんの蚭蚈に぀いお曞いたものなのか 15.2 蚭蚈しないず開発生産性が䜎䞋する 15.3 ゜フトりェアず゚ンゞニアの成長性 15.4 課題を解決する 15.5 コヌドの良し悪しを刀断する指暙 Column クラスを分割するず読みにくくなる 15.6 コヌド分析をサポヌトする各皮ツヌル Column シンタックスハむラむトを品質可芖化に利甚する 15.7 蚭蚈察象ず費甚察効果 15.8 時間を操る超胜力者になろう 16 蚭蚈を劚げる開発プロセスずの戊い 16.1 コミュニケヌション 16.2 蚭蚈 16.3 実装 16.4 レビュヌ 16.5 チヌムの蚭蚈力を高める 17 蚭蚈技術の理解の深め方 17.1 さらにステップアップするための蚭蚈技術曞玹介 Column バグ退治RPG『バグハンタヌ2 REBOOT』 17.2 蚭蚈スキルを高める孊び方 Column C#ず長き旅、そしお蚭蚈ぞの道

著者情報

仙塲 倧也

青森県出身。倧手電機メヌカヌなどを経お、珟圚はREADYFOR株匏䌚瀟におアプリケヌションアヌキテクトを務める。リファクタリングや蚭蚈党般を掚進。 悪しきコヌドずの戊いの䞭で蚭蚈の魅力に気付く。暇さえあれば脳内でリファクタリングしおいる。 Twitterではプログラミングの颚刺動画を䞍定期で投皿。 Developers Summit 2021 Summerベストスピヌカヌ賞3䜍。その他登壇倚数。 Twitter : ミノ駆動@MinoDriven

仙塲, 倧也

類䌌曞籍

関連むベント