#Design
40 articles
Cohesion and Coupling
Understand cohesion and coupling as software design metrics. Learn the 7 levels of cohesion (coincidental to functional) and 6 levels of coupling (content to data) with practical examples.
Considering the Shelf Life of Design
Consider design shelf life across business, organization, product, and technical perspectives. Balance constraints and trade-offs.
Structure of My System Specification Document
Learn to structure system specification documents with sections for architecture, data models, APIs, and sequence diagrams for design clarity.
Considering Architecture Strategy
Understand architecture strategy as systematic policy for building and evolving systems, covering vision, principles, and scalability planning.
Architect's Textbook: Building Software Architecture that Creates Value
A review of the Architect's Textbook on building software architecture that creates value. Truly a textbook, it broadly covers the areas an architect should know, centered on software architecture, with rich footnotes, book recommendations, and references to expand your learning from.
Tidy First? ―Experiential Software Design for Individuals
A review of Tidy First? Kent Beck's thin but dense book that makes you consider when to tidy your code. From the perspectives of coupling and cohesion, and cost and benefit, it frames tidying decisions empirically. Its arguments are concise and clear.
Decision-Making Techniques for Software Architects: Leveraging Leadership, Technology, and Product Management
A review of Decision-Making Techniques for Software Architects. A groundbreaking book focused on how architects make decisions. It introduces five questions and seven principles for facing architectural uncertainty, offering solid learning for anyone heading into design.
freee Technical Book: Multi-Product Development at freee
A review of freee Technical Book: Multi-Product Development at freee. A book on the practice of multi-product development in business SaaS. It concretely discusses design decisions in the field, such as how to carve out shared operations like application and approval as domains, the relationship between the platform and each app, and the trade-offs that arise.
Reliability Patterns
Learn cloud reliability patterns from AWS, Azure, and GCP. Covers Circuit Breaker, Bulkhead, Ambassador, Retry, Queue-Based Load Leveling, BFF, and other fault-tolerance design patterns.
Case Study on Authorization Management Infrastructure
Explore authorization management infrastructure case studies from freee on team structure, microservices, and QA practices.
Secure by Design: Safe Software Design
A review of Secure by Design. A book that advocates improving security from software design itself rather than patching individual vulnerabilities. Centering on DDD, it shows how careful domain modeling weaves security naturally into design, treating it as a design concern rather than a bolt-on feature.
API Design Patterns
A review of API Design Patterns. Starting from API design principles, it introduces a wealth of patterns such as resource-oriented (combining standard methods) and RPC-oriented (invoking procedures), teaching perspectives for good API design like being actionable, in a systematic way.
Books to Learn About API Design
Discover recommended books on API design: fundamentals, design phases, testing strategies, and practical design patterns.
Web API Design
A review of Web API Design. A book that has you think about API design not just from the interface but from the entry point before it. It offers perspectives for designing good APIs: focusing on what users can do rather than the mechanism, and frameworks for surfacing an API's goals.
Unit Testing Best Practices: A Practical Guide for Developers
A review of Unit Testing Best Practices. A book that compiles the thinking and approaches needed for high-quality test design. Centered on what good tests should have, such as protection against regressions, resistance to refactoring, and maintainability, it shows with many examples how to design tests with cost-effectiveness in mind.
Trade-offs and Mistakes in Software Design: Making Better Choices in Programming
A review of Software Design Trade-offs and Errors. A book for learning the importance of weighing design trade-offs against each other, along with concrete examples of software design trade-offs. It teaches that considering even the reasons you did not choose an option leads to better choices.
Exploring Articles on Architecture Design and Organizational Design
Explore relationships between software architecture and organizational design through curated articles and resources on Conway's Law impacts.
Approach to Architecture Design
Master staged architecture design approach to configuration diagrams for clearer thinking, better team alignment, and preventing over-design.
Types of Test Cases and Identification
A concise summary of the basic types of test cases and how to identify them. After organizing the purposes of testing, finding bugs and assuring and improving quality, it introduces types of tests such as unit tests and the perspectives you can use to enumerate test cases.
Web API: The Good Parts
A review of Web API: The Good Parts. A standard book to read first when learning how to design web APIs. Covering the basics of API design, such as endpoint design and how to return responses, it is one you will want to reread whenever you are unsure about a design.