Tagged articles
6 articles
Page 1 of 1
Architect
Architect
Jan 19, 2024 · Fundamentals

Module Tree Driven Design (MTDD): A New Approach to Reducing Software Complexity

The article introduces Module Tree Driven Design (MTDD), a methodology that visualizes system modules as a hierarchical tree to align business, product, and development teams, thereby addressing documentation gaps, high software complexity, and maintenance costs while providing concrete Java annotation examples and a comparison with TMF.

Java AnnotationsMTDDSoftware Architecture
0 likes · 19 min read
Module Tree Driven Design (MTDD): A New Approach to Reducing Software Complexity
21CTO
21CTO
Nov 5, 2019 · Fundamentals

Mastering Software Design: Proven Strategies to Reduce Complexity

This article distills key principles from John Ousterhout’s “A Philosophy of Software Design”, offering practical guidelines on defining and reducing software complexity through modularization, layering, thoughtful commenting, and disciplined design practices for developers.

code commentingcomplexity reductionmodular architecture
0 likes · 21 min read
Mastering Software Design: Proven Strategies to Reduce Complexity
21CTO
21CTO
Sep 25, 2019 · Fundamentals

How to Reduce Software Complexity: Principles from Ousterhout’s Design Philosophy

Drawing on John Ousterhout’s “A Philosophy of Software Design,” this article explores how to lower software complexity through clear definitions, modular design, layering, information hiding, thoughtful commenting, and strategic development practices, offering actionable principles for building maintainable systems.

coding principlescomplexity reductionmodular architecture
0 likes · 20 min read
How to Reduce Software Complexity: Principles from Ousterhout’s Design Philosophy
21CTO
21CTO
Sep 22, 2019 · Fundamentals

Why Reducing Complexity Is the Key to Better Software Design

This article distills the core principles from John Ousterhout's *A Philosophy of Software Design*—defining software complexity, presenting a quantitative model, and offering practical strategies such as layering, modularization, information hiding, and effective commenting—to help engineers build maintainable, low‑complexity systems.

code commentscomplexity reductionmodular architecture
0 likes · 20 min read
Why Reducing Complexity Is the Key to Better Software Design
Meituan Technology Team
Meituan Technology Team
Sep 19, 2019 · Fundamentals

Principles for Reducing Software Complexity

Drawing on Ousterhout’s philosophy, the article defines software complexity as cognitive load multiplied by development effort and offers principles such as iterative design, layered architecture, deep modules, information hiding, and purposeful documentation to systematically reduce ripple effects, dependencies, and unknowns in code.

code qualitycomplexity reductionengineering principles
0 likes · 18 min read
Principles for Reducing Software Complexity
Java Captain
Java Captain
Feb 25, 2018 · Fundamentals

Writing Well‑Designed Code: Ensuring Logical Correctness, Reducing Complexity, and Decoupling Business Logic

The article shares practical experiences on writing high‑quality code by emphasizing logical correctness, the necessity of handling the else branch, techniques for lowering logical complexity, and strategies for decoupling business logic from implementation, all illustrated with clear Java examples.

Code reviewcomplexity reductionlogic correctness
0 likes · 13 min read
Writing Well‑Designed Code: Ensuring Logical Correctness, Reducing Complexity, and Decoupling Business Logic