Tagged articles

software design

448 articles · Page 5 of 5
21CTO
21CTO
Jul 18, 2018 · Fundamentals

How to Master Clean Code: Design, Estimation, and Testing Strategies

This article explains how treating software projects as disciplined design processes—using shared language, realistic estimation, systematic system modeling, and test‑first development—helps create clean, maintainable code while avoiding the pitfalls of over‑engineering and rushed delivery.

clean codeestimationsoftware design
0 likes · 13 min read
How to Master Clean Code: Design, Estimation, and Testing Strategies
ITPUB
ITPUB
Jul 18, 2018 · Fundamentals

How to Achieve Truly Clean Code: Design, Estimation, and Testing Strategies

This article explores the philosophy of clean code, emphasizing disciplined design, clear domain language, realistic estimation, collaborative system modeling, and test‑first development to produce maintainable, efficient software that meets client needs while avoiding unnecessary complexity.

Software EngineeringTDDclean code
0 likes · 13 min read
How to Achieve Truly Clean Code: Design, Estimation, and Testing Strategies
ITFLY8 Architecture Home
ITFLY8 Architecture Home
Jul 15, 2018 · Fundamentals

Mastering UML: The Six Core Relationships Every Developer Should Know

UML class diagrams feature six primary relationships—Generalization, Realization, Dependency, Association, Aggregation, and Composition—each with distinct visual notations and semantics, and this guide explains their definitions, code representations in Java, and practical examples to help developers model system structures accurately.

AggregationAssociationComposition
0 likes · 8 min read
Mastering UML: The Six Core Relationships Every Developer Should Know
Java Captain
Java Captain
Jul 14, 2018 · Backend Development

Best Practices for Application Layering and Domain Model Conversion in Backend Development

The article explains why clear separation of responsibilities among controller, service, manager, and DAO layers is essential for maintainable backend code, outlines Alibaba's layered architecture guidelines, proposes an optimized layering model, and discusses domain model conversions across layers to avoid excessive object transformations.

DAODomain ModelService Layer
0 likes · 9 min read
Best Practices for Application Layering and Domain Model Conversion in Backend Development
21CTO
21CTO
Jul 8, 2018 · Backend Development

How Uber Turned Its Monolith into a Scalable Microservice Architecture

This article explains the core concepts of microservice architecture, outlines its components and pros‑and‑cons, and uses Uber's evolution from a monolithic system to a distributed microservice platform as a detailed case study.

BackendUberarchitecture
0 likes · 9 min read
How Uber Turned Its Monolith into a Scalable Microservice Architecture
ITFLY8 Architecture Home
ITFLY8 Architecture Home
May 30, 2018 · Fundamentals

Mastering UML: Key Diagrams, Relationships, and OO Concepts

This guide explains UML's core relationship notations, the nine essential diagram types and their purposes, detailed insights into class, object, use‑case, sequence, collaboration, state, activity, component, and deployment diagrams, and how they map to fundamental object‑oriented concepts such as boundary, entity, and control classes.

UMLobject-orientedsoftware design
0 likes · 14 min read
Mastering UML: Key Diagrams, Relationships, and OO Concepts
21CTO
21CTO
May 12, 2018 · Mobile Development

Why Mobile App Architecture Matters: Lessons from Real-World Projects

This article explores the concept of software architecture for mobile apps, sharing personal reflections, industry case studies, design principles, modularization strategies, development practices, testing, risk management, and agile processes to help developers build maintainable, scalable, and high‑quality applications.

AgileAndroid developmentmobile architecture
0 likes · 47 min read
Why Mobile App Architecture Matters: Lessons from Real-World Projects
360 Tech Engineering
360 Tech Engineering
Apr 28, 2018 · Mobile Development

Understanding the PageObject Pattern for UI Automation

This article explains the common maintenance challenges in UI automation, introduces the PageObject pattern as a solution, describes its layered architecture—including appium, pages, operation, and test layers—and highlights how it improves code reuse, readability, and reduces effort when UI changes occur.

AppiumPageObjectTest architecture
0 likes · 3 min read
Understanding the PageObject Pattern for UI Automation
Tencent Cloud Developer
Tencent Cloud Developer
Mar 22, 2018 · Fundamentals

Story Scenario Tree: Practicing Simple Design in Software Development

The Story Scenario Tree is presented as a practical tool that guides developers to apply simple design principles—defining tasks, external interfaces, and upfront test cases—to create isolated, high‑quality code that evolves healthily, with progress measured objectively and defects minimized across changes.

Code Isolationagile developmentdevelopment practices
0 likes · 5 min read
Story Scenario Tree: Practicing Simple Design in Software Development
Huawei Cloud Developer Alliance
Huawei Cloud Developer Alliance
Mar 19, 2018 · Fundamentals

12 Must‑Read Books Every Software Engineer Should Read

This article presents a curated list of twelve influential programming books—ranging from classic software design and algorithms to practical coding guides—explaining why each title is essential for developers seeking to deepen their craft regardless of language or experience level.

AlgorithmsSoftware Engineeringcareer development
0 likes · 12 min read
12 Must‑Read Books Every Software Engineer Should Read
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
ITFLY8 Architecture Home
ITFLY8 Architecture Home
Feb 5, 2018 · Fundamentals

How to Eliminate 22 Common Code Smells with Refactoring Techniques

This article enumerates twenty‑two typical code smells—from duplicated code and long methods to speculative generality—and provides concrete refactoring tactics such as Extract Method, Pull Up Method, Introduce Parameter Object, and Move Method to improve design, readability, and maintainability of object‑oriented software.

clean codecode smellsobject-oriented
0 likes · 24 min read
How to Eliminate 22 Common Code Smells with Refactoring Techniques
Architecture Digest
Architecture Digest
Dec 10, 2017 · Fundamentals

Understanding Software Architecture: Definitions, Lifecycle, Importance, and the Role of an Architect

This article explains the concept of software architecture, its definition, lifecycle, importance, characteristics of good and bad designs, essential technical knowledge for Java architects, functional versus non‑functional requirements, types of architects, required hard and soft skills, and guidance on becoming and maintaining an effective software architect.

architect rolenon-functional requirementssoftware architecture
0 likes · 13 min read
Understanding Software Architecture: Definitions, Lifecycle, Importance, and the Role of an Architect
Architecture Digest
Architecture Digest
Dec 4, 2017 · Fundamentals

Rethinking Object‑Oriented Programming: From Myth to Practical Understanding

The article reflects on a decade of programming experience to demystify object‑oriented programming, arguing that OOP should be taught as a practical tool for reducing complexity rather than an abstract doctrine, and discusses how to organize functions into classes, avoid misuse of inheritance and design patterns, and focus on solving real problems.

Design PatternsInheritanceProgramming Fundamentals
0 likes · 10 min read
Rethinking Object‑Oriented Programming: From Myth to Practical Understanding
21CTO
21CTO
Nov 25, 2017 · Backend Development

From Monolith to Microservices: How Application Architecture Evolves

This article traces the evolution of application architectures—from vertical monolithic designs through RPC and SOA to modern microservices—explaining the motivations, key characteristics, deployment patterns, and trade‑offs of each approach for scalable, maintainable backend systems.

Backendservice-orientedsoftware design
0 likes · 7 min read
From Monolith to Microservices: How Application Architecture Evolves
Java Captain
Java Captain
Jul 23, 2017 · Fundamentals

30 Essential Java Coding Practices for Writing Clean and Maintainable Code

This article presents thirty practical Java coding guidelines covering naming conventions, class design, method granularity, encapsulation, documentation, error handling, and performance considerations to help developers produce clean, robust, and maintainable software.

Best Practicescoding standardsobject-oriented
0 likes · 14 min read
30 Essential Java Coding Practices for Writing Clean and Maintainable Code
ITFLY8 Architecture Home
ITFLY8 Architecture Home
Jul 2, 2017 · Fundamentals

Bridging Development and Architecture: How to Become a Software Architect

This article explores the blurry line between development and software architecture, outlines the responsibilities and evolution of a software architect, and provides practical guidance on defining architecture, managing non‑functional requirements, selecting technologies, evaluating designs, and leading teams toward successful releases.

non-functional requirementssoftware architecturesoftware design
0 likes · 12 min read
Bridging Development and Architecture: How to Become a Software Architect
21CTO
21CTO
Jun 25, 2017 · Fundamentals

Why Refactoring Matters: A Practical Guide to Cleaner Code

This article explains why refactoring is essential for maintaining legacy systems, defines refactoring, outlines when to start and stop, describes the step‑by‑step process, discusses code smells and techniques, and offers resources for mastering clean, maintainable software.

clean codecode qualityrefactoring
0 likes · 13 min read
Why Refactoring Matters: A Practical Guide to Cleaner Code
Architecture Digest
Architecture Digest
Jun 25, 2017 · Fundamentals

Why and How to Refactor Code: Principles, Process, and Best Practices

The article explains why refactoring is essential for maintaining and evolving legacy code, defines refactoring, outlines when to start and stop, lists prerequisites, describes a step‑by‑step process with testing and version control, and connects refactoring to design principles and large‑scale systems.

Software Engineeringclean codecode quality
0 likes · 13 min read
Why and How to Refactor Code: Principles, Process, and Best Practices
Qunar Tech Salon
Qunar Tech Salon
Mar 29, 2017 · Fundamentals

Is Good Architecture Designed or Evolved? Insights from Senior Software Architects

The article explores whether effective software architecture stems from upfront design or gradual evolution, presenting viewpoints from senior architects, discussing stakeholder concerns, non‑functional requirements, real‑world evolution cases like 58.com and Google, and urging readers to share their own conclusions.

System Designevolutionsoftware design
0 likes · 17 min read
Is Good Architecture Designed or Evolved? Insights from Senior Software Architects
ITFLY8 Architecture Home
ITFLY8 Architecture Home
Feb 27, 2017 · Fundamentals

25 Essential Principles to Master Software Model Design

The article outlines twenty‑five practical principles for becoming an excellent software model designer, emphasizing the importance of people over technology, thorough requirement analysis, humility, low coupling, high cohesion, portability, scalability, performance, proper documentation, and continuous learning to build robust, maintainable systems.

Software Engineeringarchitecturemodeling
0 likes · 14 min read
25 Essential Principles to Master Software Model Design
Huawei Cloud Developer Alliance
Huawei Cloud Developer Alliance
Jan 9, 2017 · Fundamentals

Why Great Code Needs Great Diagrams: Unlocking Visual Design in Software Development

The article reflects on the shift from pure coding to embracing requirement analysis, testing, and especially diagramming, explaining how visual representations externalize information, foster exploration, support global thinking, and make abstract concepts intuitive, ultimately improving software quality and collaboration.

Architecture DiagramsCoding PracticesSoftware Engineering
0 likes · 6 min read
Why Great Code Needs Great Diagrams: Unlocking Visual Design in Software Development
Architecture Digest
Architecture Digest
Nov 20, 2016 · Fundamentals

Principles of Object‑Oriented Architecture and Common Design Patterns

This article explains core OO architecture principles such as low coupling and high cohesion, outlines methods to reduce coupling, advocates composition over inheritance, and provides concise overviews of widely used design patterns like MVC, MVVM, Factory, Singleton, Builder, and many others.

CouplingOO architecturesoftware design
0 likes · 7 min read
Principles of Object‑Oriented Architecture and Common Design Patterns

Can Disposable Code Outperform Reusable Code? A Deep Dive into Maintainability

The article argues that treating lines of code as a cost rather than a product encourages writing disposable, loosely‑coupled software, and it walks through practical stages—from avoiding code entirely to using feature flags—to build systems that are easier to modify, replace, or discard.

Code MaintainabilityFeature FlagsLoose Coupling
0 likes · 20 min read
Can Disposable Code Outperform Reusable Code? A Deep Dive into Maintainability
Architecture Digest
Architecture Digest
Jun 24, 2016 · Fundamentals

Rethinking Web Frameworks: From Ideal Design to Practical Implementation

This article explores how an ideal web framework—featuring a unified data model, reusable code, event‑driven logic, and language‑agnostic architecture—can be realized in practice, discussing frontend and backend realities, graph‑based data modeling, and the benefits for maintainability and extensibility.

Data ModelingWeb Frameworkevent-driven architecture
0 likes · 25 min read
Rethinking Web Frameworks: From Ideal Design to Practical Implementation
21CTO
21CTO
Apr 6, 2016 · Fundamentals

Avoid These 4 Programming Traps That Turn Good Intentions into Hell

The article reveals four common programming pitfalls—premature or late optimization, over‑complex abstractions, misuse of tools, and misguided cross‑platform efforts—and provides practical patches to keep developers from sinking into endless deadlines and frustration.

Best Practicescode optimizationdevelopment traps
0 likes · 12 min read
Avoid These 4 Programming Traps That Turn Good Intentions into Hell
Qunar Tech Salon
Qunar Tech Salon
Mar 27, 2016 · Backend Development

Understanding Architecture Corruption and How to Mitigate It

The article examines why software architectures inevitably degrade over time in long‑running projects, analyzes the stages of decay, and presents practical strategies—including environment upgrades, phased and distributed builds, component isolation, and platform‑plus‑app designs—to keep systems maintainable and performant.

Build Optimizationarchitecturecontinuous integration
0 likes · 23 min read
Understanding Architecture Corruption and How to Mitigate It
21CTO
21CTO
Dec 19, 2015 · Fundamentals

Rethinking Imports, Interfaces, and Common Coding Rules: When Best Practices Miss the Mark

While many languages recommend importing specific classes and programming to interfaces, these practices often add maintenance overhead without tangible benefits, especially in Java, and can even hinder readability; the article critiques such rules, urging developers to evaluate the real value of coding conventions.

Coding Best Practicesimport statementsinterface programming
0 likes · 6 min read
Rethinking Imports, Interfaces, and Common Coding Rules: When Best Practices Miss the Mark
21CTO
21CTO
Oct 19, 2015 · Fundamentals

18 Essential Programming Principles Every Developer Should Follow

This article presents eighteen core programming principles—from DRY and KISS to the Open/Closed and Law of Demeter—that help developers write cleaner, more maintainable code, reduce bugs, and adapt to change effectively.

Best PracticesSoftware Engineeringclean code
0 likes · 8 min read
18 Essential Programming Principles Every Developer Should Follow
21CTO
21CTO
Oct 16, 2015 · Fundamentals

Master Extract Method Refactoring: Simplify Your PHP Code with Real Examples

This article explains the Extract Method refactoring technique, its definition, benefits, and step‑by‑step PHP examples that show how to split a long method into smaller, well‑named methods, improving readability, reusability, and adherence to the Single Responsibility Principle.

Code Readabilityextract-methodrefactoring
0 likes · 10 min read
Master Extract Method Refactoring: Simplify Your PHP Code with Real Examples
21CTO
21CTO
Oct 3, 2015 · Fundamentals

What Exactly Should You Look for When Reviewing Code?

This article provides a comprehensive checklist for code reviewers, covering formatting, design, readability, functionality, security, testing, performance, and resource usage, while explaining why many of these aspects can be automated and how to balance manual inspection with tooling.

Best PracticesCode ReviewPerformance
0 likes · 23 min read
What Exactly Should You Look for When Reviewing Code?

Focus on Learning Languages Over Frameworks and Writing Minimal, Modular Code

Learning the core programming language rather than relying on heavy frameworks, building small independent modules, and keeping code minimal and readable improves flexibility, performance, maintainability, and reduces bugs, ultimately leading to higher productivity and better collaboration among developers.

code qualitylanguage fundamentalsmodular code
0 likes · 9 min read
Focus on Learning Languages Over Frameworks and Writing Minimal, Modular Code

Microservices Architecture: Evolution, Characteristics, and Practical Considerations

The article examines the evolution from traditional SOA and ESB to modern microservices, outlining key characteristics such as componentization via services, business‑aligned team structures, treating services as products, lightweight communication, decentralization, automation, failure‑tolerance, and evolutionary design, while discussing practical adoption challenges.

SOAcloud-nativemicroservices
0 likes · 11 min read
Microservices Architecture: Evolution, Characteristics, and Practical Considerations
Architect
Architect
May 12, 2015 · Fundamentals

12 Rules for Successful Architecture Refactoring – Insights from Uber’s Raffi Krikorian

The article presents Uber engineering leader Raffi Krikorian’s twelve practical rules for planning, executing, and managing software architecture refactoring, emphasizing clear purpose, measurable goals, incremental delivery, data‑driven decisions, technical debt control, realistic technology choices, and stakeholder communication.

data-drivenincremental deliverymanagement
0 likes · 13 min read
12 Rules for Successful Architecture Refactoring – Insights from Uber’s Raffi Krikorian

12 Rules for Successful Architecture Refactoring – Insights from Uber’s Engineering Leader

The article presents Uber engineering manager Raffi Krikorian’s twelve practical rules for planning, executing, and evaluating software architecture refactoring, emphasizing clear purpose, measurable goals, incremental delivery, current state assessment, data‑driven decisions, and diligent management of technical debt.

incremental deliveryrefactoringsoftware design
0 likes · 8 min read
12 Rules for Successful Architecture Refactoring – Insights from Uber’s Engineering Leader
Qunar Tech Salon
Qunar Tech Salon
Dec 6, 2014 · Fundamentals

Why Code Becomes Unreadable Over Time and How to Keep It Simple

The article explains how over‑complex mental models, poor translation of semantic ideas into code, inadequate naming, missing design chunks, unclear usage patterns, and lack of smooth model transitions cause code to decay, and offers practical principles such as DDD, SRP, good naming, testing, and reusing existing algorithms to maintain readability.

Code ReadabilityDomain-Driven DesignSingle Responsibility Principle
0 likes · 10 min read
Why Code Becomes Unreadable Over Time and How to Keep It Simple
Baidu Tech Salon
Baidu Tech Salon
Aug 5, 2014 · Backend Development

A Tale of Bug Fixing: Thinking Beyond the Immediate Solution

After a rushed fix for a division‑by‑zero bug caused incorrect results, the team learns to validate data at its source, adopt proper validation frameworks, and step back to understand underlying requirements, emphasizing that thoughtful design outweighs quick code patches.

Bug fixingInput ValidationPHP
0 likes · 6 min read
A Tale of Bug Fixing: Thinking Beyond the Immediate Solution