Curated Tech Reading Map

次に読むべき技術書が見つかるサイト

Domain

Software Design

A systematic learning path for software design — from clean code to architecture, testing, and quality culture. Covers code quality, TDD, DDD, distributed system design, and DevOps/quality organization.

The Terrain of This Field

The terrain of software design can be read as a single ascending path: it begins at "readable code" under your feet, rises through the habits that preserve quality (refactoring and test-driven development), and continues up to the highlands of "architecture" that overlook the whole system.

The first continent is the realm of "code quality" — variable names, functions, and responsibilities at the micro scale. Beyond it spread the hills of "testing and refactoring" for growing code without breaking it, and further on rise the mountain ranges of "clean architecture" and "domain-driven design," where you design the direction of dependencies and the boundaries between modules.

Deeper still lie the plateaus of "scale and operations" — distributed systems, data-intensive design, and DevOps/quality organizations. The key to surveying this field is recognizing that the scale of concerns connects continuously, from the micro (code) to the macro (organization and operations).

Share this map

グラフを計算中...

Books in this domain

33 books

LeanとDevOpsの科学[Accelerate]

テクノロジーの戦略的活用が組織変革を加速する

Nicole Forsgren, Jez Humble, Gene Kim

進化的アーキテクチャ

絶え間ない変化を支える

Neal Ford, Rebecca Parsons, Patrick Kua

マイクロサービスアーキテクチャ

第2版

Sam Newman

Building Secure and Reliable Systems

Best Practices for Designing, Implementing, and Maintaining Systems

Heather Adkins, Betsy Beyer, Paul Blankinship, Piotr Lewandowski, Ana Oprea, Adam Stubblefield

Clean Architecture

達人に学ぶソフトウェアの構造と設計

Robert C. Martin

Clean Code

アジャイルソフトウェア達人の技

Robert C. Martin

データ指向プログラミング

ソフトウェアがもつ複雑さの軽減に向けて

Yehonathan Sharvit

データ指向アプリケーションデザイン

信頼性、拡張性、保守性の高い分散システム設計の原理

Martin Kleppmann

Designing Distributed Systems

Patterns and Paradigms for Scalable, Reliable Services

Brendan Burns

エリック・エヴァンスのドメイン駆動設計

Eric Evans

Effective Software Testing

A developer's guide

Mauricio Aniche

フルスタックテスティング

10のテスト手法で実践する高品質ソフトウェア開発

Gayathri Mohan

ソフトウェアアーキテクチャの基礎(第2版)

エンジニアリングに基づく体系的アプローチ

Mark Richards, Neal Ford

生成AI時代のソフトウェア開発

ツールを賢く選択、評価、活用し、より速く効率的な開発を進めるために

Sergio Pereira

オブジェクト指向における再利用のためのデザインパターン

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

実践テスト駆動開発

テストに導かれてオブジェクト指向ソフトウェアを育てる

Steve Freeman, Nat Pryce

Head Firstデザインパターン

頭とからだで覚えるデザインパターンの基本

Eric Freeman, Elisabeth Robson

LEADING QUALITY

優れたリーダーはいかにして高品質のソフトウェアを提供し成長を加速させるか

Ronald Cummings-John, Owais Peer

ドメイン駆動設計をはじめよう

ソフトウェアの実装と事業戦略を結びつける実践技法

Vlad Khononov

モノリスからマイクロサービスへ

モノリスを進化させる実践移行ガイド

Sam Newman

エンタープライズ アプリケーションアーキテクチャパターン

Patterns of Enterprise Application Architecture

Martin Fowler

A Philosophy of Software Design, 2nd Edition

John Ousterhout

達人プログラマー

熟達に向けたあなたの旅 第2版

David Thomas, Andrew Hunt

実践プロパティベーステスト

PropErとErlang/Elixirではじめよう

Fred Hebert

リーダブルコード

より良いコードを書くためのシンプルで実践的なテクニック

Dustin Boswell, Trevor Foucher

リファクタリング

既存のコードを安全に改善する 第2版

Martin Fowler

責任あるソフトウェアエンジニアリング

現実社会におけるGoogleのケーススタディとともに

Daniel Barrett, Goggle Engineering

ソフトウェアアーキテクチャ・ハードパーツ

分散アーキテクチャのためのトレードオフ分析

Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani

Googleのソフトウェアエンジニアリング

持続可能なプログラミングを支える技術、文化、プロセス

Titus Winters, Tom Manshreck, Hyrum Wright

テスト駆動開発

Kent Beck

チームトポロジー

価値あるソフトウェアをすばやく届ける適応型組織設計

Matthew Skelton, Manuel Pais

単体テストの考え方/使い方

Vladimir Khorikov

レガシーコード改善ガイド

Michael C. Feathers

Dependencies

  1. 01devops-handbooksoftware-engineering-at-googleRecommended / DevOps文化から大規模組織文化へ
  2. 02testing-javascript-applicationsfull-stack-testingRelated / JS テスト戦略からフルスタック品質戦略へ
  3. 03micro-frontendsbuilding-microservicesRelated / FE分散からBE分散の対応概念へ
  4. 04clean-coderefactoringRecommended / コード品質からリファクタリングへ

    Reason: Once you know what good code looks like, you need techniques to safely move existing code toward that standard. Refactoring offers a systematic way to improve structure without changing behavior, guided by code smells.

  5. 05clean-codetdd-by-exampleRecommended / コード品質からTDDへ

    Reason: To keep writing clean code, you need a foundation that lets you change it without fear. Test-driven development instills the discipline of growing clean, working code in small cycles, turning quality into a habit.

  6. 06clean-codeclean-architectureRecommended / コード品質からアーキテクチャへ

    Reason: Once quality at the function and class level is second nature, the next step is to design the direction of dependencies and boundaries across the whole system. Clean Architecture provides the principle of pushing details outward and keeping business rules at the core.

  7. 07head-first-design-patternsgof-design-patternsRecommended / パターン入門から原典へ
  8. 08tdd-by-exampleunit-testing-principlesRecommended / TDD基礎からテスト設計原則へ
  9. 09tdd-by-examplegrowing-oo-softwareRecommended / TDD基礎から高度なTDDへ
  10. 10refactoringworking-with-legacy-codeRecommended / リファクタリングからレガシーコード改善へ
  11. 11clean-architecturefundamentals-of-software-architectureRecommended / アーキテクチャ原則から体系的学習へ

    Reason: After gaining an intuition for the ideal shape from Clean Architecture, you formalize architectural characteristics and trade-offs into a shared vocabulary. This book elevates design judgment from personal instinct to a discipline you can reason about.

  12. 12clean-architecturelearning-dddRecommended / アーキテクチャからDDD入門へ

    Reason: Once you can control the direction of dependencies, the next question becomes where to draw the boundaries. Domain-Driven Design derives bounded contexts from the language of the business, giving architectural decomposition real meaning.

  13. 13fundamentals-of-software-architecturebuilding-microservicesRecommended / アーキテクチャ基礎から分散設計へ
  14. 14fundamentals-of-software-architecturesoftware-architecture-the-hard-partsRecommended / 基礎から実践的な設計判断へ
  15. 15fundamentals-of-software-architecturebuilding-evolutionary-architecturesRecommended / 基礎から進化的アーキテクチャへ
  16. 16learning-ddddomain-driven-designRecommended / DDD入門から原典へ

    Reason: After mapping the strategic and tactical landscape with an introductory text, you verify the origin and precise definitions of the concepts in the source. Evans' DDD grounds the ubiquitous language and model-driven design, forming the foundation for applied judgment.

  17. 17building-microservicesmonolith-to-microservicesRecommended / マイクロサービス基礎から移行戦略へ
  18. 18building-microservicesdesigning-data-intensive-applicationsRecommended / 分散設計からデータシステムへ
  19. 19unit-testing-principlesworking-with-legacy-codeRelated / テスト設計からレガシー改善へ
  20. 20unit-testing-principlesgrowing-oo-softwareRelated / テスト原則から高度なTDDへ
  21. 21clean-architecturephilosophy-of-software-designRecommended / アーキテクチャから複雑性管理の哲学へ
  22. 22refactoringphilosophy-of-software-designRelated / リファクタリングから設計哲学へ
  23. 23unit-testing-principleseffective-software-testingRecommended / テスト原則から設計技法へ
  24. 24effective-software-testingproperty-based-testing-practiceRecommended / テスト設計技法から不変条件検証へ
  25. 25unit-testing-principlesfull-stack-testingRecommended / 単体テストからフルスタック品質戦略へ
  26. 26full-stack-testingaccelerate-lean-devopsRecommended / CI/CD戦略からDORAメトリクスへ
  27. 27accelerate-lean-devopssoftware-engineering-at-googleRecommended / DevOps科学から大規模組織文化へ
  28. 28software-engineering-at-googleleading-qualityRecommended / 組織文化から品質リーダーへ
  29. 29full-stack-testingleading-qualityRelated / フルスタック品質から組織文化へ
  30. 30clean-architectureteam-topologiesRecommended / アーキテクチャからチーム設計へ
  31. 31team-topologiesdomain-driven-designRecommended / チーム編成からドメインモデルへ
  32. 32monolith-to-microservicesteam-topologiesRecommended / モノリス分割からチーム境界へ
  33. 33building-evolutionary-architecturessoftware-architecture-the-hard-partsRecommended / 進化的設計から分散の難所へ
  34. 34growing-oo-softwareeffective-software-testingRecommended / 高度なTDD実践からテスト設計技法へ
  35. 35philosophy-of-software-designdomain-driven-designRelated / 複雑性管理からDDDへ
  36. 36clean-codedomain-driven-designRecommended / コード品質からドメインモデリングへ
  37. 37clean-architecturebuilding-microservicesRecommended / アーキテクチャ原則から分散実装へ
  38. 38unit-testing-principlesfrontend-testing-introRecommended / 単体テスト原則からFEテストへ
  39. 39readable-codeclean-codeRecommended / 可読性入門からコード品質体系へ

    Reason: After grasping the basics of readability such as naming and function decomposition, you move on to binding them into principles of why. Clean Code connects individual techniques into a coherent system of craftsmanship and design principles.

  40. 40readable-codepragmatic-programmerRecommended / 可読性入門から達人哲学へ
  41. 41readable-coderefactoringRelated / 可読性入門からリファクタリングへ
  42. 42pragmatic-programmerclean-codeRecommended / 達人哲学からコード品質原則へ
  43. 43pragmatic-programmerrefactoringRelated / 達人哲学からリファクタリングへ
  44. 44clean-architecturepatterns-of-enterprise-app-architectureRecommended / クリーンアーキテクチャから PoEAA 原典へ
  45. 45patterns-of-enterprise-app-architecturedesigning-data-intensive-applicationsRelated / PoEAA から分散データ設計へ
  46. 46gof-design-patternspatterns-of-enterprise-app-architectureRelated / GoF パターンからエンタープライズパターンへ
  47. 47head-first-design-patternsrefactoringRelated / パターン認識からリファクタリング技法へ
  48. 48property-based-testing-practicefull-stack-testingRelated / 性質ベーステストからフルスタック品質戦略へ
  49. 49domain-driven-designdata-oriented-programmingRelated / DDD の永続化を不変データ駆動で再考する
  50. 50philosophy-of-software-designdata-oriented-programmingRelated / 複雑性管理の異なるアプローチとしてデータ指向へ
  51. 51head-first-design-patternsworking-with-legacy-codeRelated / パターン認識からレガシーコード改善へ
  52. 52gof-design-patternsclean-architectureRelated / GoFパターン原典からアーキテクチャ原則へ
  53. 53learning-dddteam-topologiesRecommended / DDD境界からチーム編成設計へ
  54. 54software-architecture-the-hard-partsdesigning-data-intensive-applicationsRecommended / 難しい設計判断から分散データシステムへ
  55. 55software-engineering-at-googlegenerative-ai-software-devRecommended / Googleの開発実践からAI駆動開発へ
  56. 56pragmatic-programmergenerative-ai-software-devRecommended / プラクティカル開発からAIツール活用へ
  57. 57generative-ai-software-devresponsible-software-engineeringRecommended / AI活用の実践から責任ある設計へ
  58. 58building-secure-reliable-systemsresponsible-software-engineeringRecommended / 安全・信頼性から社会的責任へ