Tagged articles
401 articles
Page 4 of 5
Full-Stack Internet Architecture
Full-Stack Internet Architecture
Jun 27, 2020 · Fundamentals

Understanding UML Class Diagram Relationships: Generalization, Realization, Aggregation, Composition, Association, and Dependency

This article explains how to correctly draw UML class diagrams by describing the six main relationship types—generalization, realization, aggregation, composition, association, and dependency—using clear examples and visual illustrations to help readers understand and apply each relationship in software modeling.

Class DiagramGeneralizationModeling
0 likes · 5 min read
Understanding UML Class Diagram Relationships: Generalization, Realization, Aggregation, Composition, Association, and Dependency
Top Architect
Top Architect
Jun 26, 2020 · Fundamentals

Principles and Practices for Effective Code Review and Software Design

The article shares a senior engineer's insights on why code review is essential, outlines common pitfalls such as duplicated code, premature optimization, and poor design, and presents concrete principles and practical guidelines—including KISS, composition over inheritance, and disciplined logging—to improve code quality and maintainability in large‑scale backend projects.

Code reviewEngineeringGolang
0 likes · 41 min read
Principles and Practices for Effective Code Review and Software Design
Architects Research Society
Architects Research Society
Jun 13, 2020 · Backend Development

Overview of Application Architecture and Emerging Trends

The article examines modern application architecture trends, emphasizing service‑oriented and microservice approaches, the need to move beyond three‑tier designs, and adopting patterns, models, and structures that accommodate cloud, mobile, social, and big‑data influences.

MicroservicesSOAapplication architecture
0 likes · 11 min read
Overview of Application Architecture and Emerging Trends
21CTO
21CTO
Jun 7, 2020 · Fundamentals

How to Eliminate Redundant Code: A Practical DRY Refactoring Guide in PHP

This article explains the DRY (Do Not Repeat Yourself) principle, demonstrates how duplicated PHP code in a Report class can be refactored by extracting shared logic into reusable methods, and shows the final clean implementation that improves readability and maintainability.

Code RefactoringDRYPHP
0 likes · 7 min read
How to Eliminate Redundant Code: A Practical DRY Refactoring Guide in PHP
macrozheng
macrozheng
Jun 5, 2020 · Fundamentals

Why Interface‑Oriented Programming Makes Your Code Flexible and Extensible

This article explains the concept of interface‑oriented programming, using everyday analogies and Java code examples to show how defining contracts via interfaces decouples components, improves extensibility, and follows solid design principles such as the Open‑Closed Principle.

Dependency InversionOpen/Closed Principleinterface programming
0 likes · 11 min read
Why Interface‑Oriented Programming Makes Your Code Flexible and Extensible
Programmer DD
Programmer DD
May 5, 2020 · Fundamentals

Why Long Classes Break Your Code and How to Refactor Them with IDEA

This article explains why excessively long classes are hard to read and extend, outlines the problems caused by redundant code and multiple responsibilities, and provides step‑by‑step refactoring techniques using IntelliJ IDEA to extract methods, move members, and create new classes.

IDEAJavacode quality
0 likes · 8 min read
Why Long Classes Break Your Code and How to Refactor Them with IDEA
Java Backend Technology
Java Backend Technology
May 5, 2020 · Fundamentals

Why Your 900-Line Class Is a Nightmare and How to Refactor It

The article explains why excessively long classes are hard to read, extend, and maintain, outlines the problems caused by redundant code and multiple responsibilities, and provides step‑by‑step refactoring techniques using IntelliJ IDEA to extract methods, move members, and create new classes.

IDEOOPcode quality
0 likes · 8 min read
Why Your 900-Line Class Is a Nightmare and How to Refactor It
Qunar Tech Salon
Qunar Tech Salon
Apr 28, 2020 · Fundamentals

Architecture Methodology: From Problem Identification to Application Logic Design

This article presents a comprehensive architecture methodology that guides engineers through problem identification, definition, classification, top‑down and bottom‑up derivation, model layering, and the systematic construction of product, business, logical, and physical architectures to achieve robust, maintainable software systems.

MethodologyR&Dbusiness analysis
0 likes · 29 min read
Architecture Methodology: From Problem Identification to Application Logic Design
Youzan Coder
Youzan Coder
Apr 24, 2020 · Backend Development

What Are Architecture Patterns? Pipe-Filter and Microkernel Architecture

Architecture patterns provide reusable solutions, and this article explains the Pipe‑Filter pattern—where data passes through independent filters like a production line, used in web frameworks, compilers, and serverless functions—and the Microkernel pattern, which separates a minimal core from plug‑in modules to enhance extensibility, maintainability, and configurability.

Architecture PatternsBackend Developmentmicrokernel
0 likes · 13 min read
What Are Architecture Patterns? Pipe-Filter and Microkernel Architecture
Alibaba Cloud Developer
Alibaba Cloud Developer
Apr 7, 2020 · Fundamentals

Mastering System Architecture: A Proven Methodology for Building Robust Applications

This article shares a comprehensive architecture methodology from an experienced Alibaba senior engineer, detailing problem identification, various architecture classifications, top‑down and bottom‑up derivation techniques, and practical steps to design logical, physical, and business architectures for reliable software development.

MethodologySystem Architecturearchitecture
0 likes · 31 min read
Mastering System Architecture: A Proven Methodology for Building Robust Applications
21CTO
21CTO
Apr 1, 2020 · Fundamentals

7 Core Skills That Separate Top Programmers from the Rest

The article examines why a small fraction of developers earn six‑figure salaries while many remain average, outlining seven decisive abilities—raw coding, debugging, simplicity, accurate schedule prediction, low‑level system knowledge, strict key‑design focus, and avoiding perfectionism—that together create a massive performance gap.

Career DevelopmentDebuggingSoftware Engineering
0 likes · 11 min read
7 Core Skills That Separate Top Programmers from the Rest
Alibaba Cloud Developer
Alibaba Cloud Developer
Apr 1, 2020 · Fundamentals

How to Rapidly Boost Your Software Design Skills: Practical Steps for Developers

This article shares practical advice on improving a programmer's design ability, covering coding practice, theory study, hands‑on implementation, revisiting concepts, summarizing lessons, sharing knowledge, and additional tips such as designing before coding and avoiding blind reliance on patterns.

Design PatternsSoftware Architecturecoding practice
0 likes · 9 min read
How to Rapidly Boost Your Software Design Skills: Practical Steps for Developers
Architecture Digest
Architecture Digest
Mar 21, 2020 · Mobile Development

Building a Cross‑Platform Payment Architecture with C++ for WeChat Pay

This article describes how a C++‑based cross‑platform framework was designed and implemented to unify iOS and Android payment flows in WeChat Pay, covering architectural motivation, business‑process abstraction, routing mechanisms, network request management, and standardized data transmission to improve quality and productivity.

C++WeChat Paycross-platform
0 likes · 15 min read
Building a Cross‑Platform Payment Architecture with C++ for WeChat Pay
WeChat Client Technology Team
WeChat Client Technology Team
Mar 20, 2020 · Mobile Development

How We Built a Cross‑Platform C++ Architecture for WeChat Pay on iOS & Android

This article explains the challenges of maintaining separate iOS and Android implementations for WeChat Pay, and details how a C++‑based cross‑platform framework—featuring abstracted business flows, a unified routing mechanism, managed network requests, and strict data‑transfer standards—dramatically improves code reuse, stability, and development productivity.

CWeChat Paymobile architecture
0 likes · 15 min read
How We Built a Cross‑Platform C++ Architecture for WeChat Pay on iOS & Android
AntTech
AntTech
Feb 17, 2020 · Fundamentals

Top Programming Books Recommended by Alipay Researcher Wang Yi

During the pandemic, Alipay researcher Wang Yi—creator of SQLFlow and ElasticDL—shares his curated list of three influential programming books, explaining how SICP teaches abstraction and composition, how The Art of Unix Programming illustrates Unix design principles, and how Paul Graham's essays offer timeless insights for developers.

Paul GrahamSICPUnix programming
0 likes · 7 min read
Top Programming Books Recommended by Alipay Researcher Wang Yi
21CTO
21CTO
Jan 3, 2020 · Fundamentals

12 Warning Signs That Your Software Design Is Growing Too Complex

The article lists twelve danger signals—ranging from shallow modules and information leaks to vague naming and unreadable code—that reveal hidden complexity in software design and help developers identify and refactor problematic patterns.

Anti-Patternscode qualitycomplexity
0 likes · 6 min read
12 Warning Signs That Your Software Design Is Growing Too Complex
Architecture Digest
Architecture Digest
Dec 27, 2019 · Fundamentals

Software Design and Modeling: Applying UML for Effective Architecture

This article explains how software architects can use UML‑based modeling to translate functional and non‑functional requirements into clear design documents, covering the essential steps, key concepts, and the seven major UML diagram types across requirement, conceptual, and detailed design phases.

ModelingSoftware EngineeringUML
0 likes · 12 min read
Software Design and Modeling: Applying UML for Effective Architecture
Continuous Delivery 2.0
Continuous Delivery 2.0
Dec 27, 2019 · Backend Development

Server‑Side vs Client‑Side Feature Flag Decision: Performance, Latency, Security, and Complexity Considerations

Choosing whether to evaluate feature flags on the server or the client impacts performance, configuration latency, security, and implementation complexity, with server‑side decisions generally offering better speed, reduced cache‑invalidation risks, protected data handling, and simpler architecture, especially for web and mobile applications.

Client-Server ArchitectureSecurityfeature flags
0 likes · 5 min read
Server‑Side vs Client‑Side Feature Flag Decision: Performance, Latency, Security, and Complexity Considerations
Sohu Tech Products
Sohu Tech Products
Dec 18, 2019 · Backend Development

Beware of Middleware: Why Overusing Middleware Can Be Harmful

The article argues that while middleware can simplify handling cross‑cutting concerns in HTTP APIs, overusing it leads to tangled, untestable code, and proposes refactoring middleware logic into pure functions with explicit inputs and outputs to improve clarity and maintainability.

BackendExpressHTTP
0 likes · 12 min read
Beware of Middleware: Why Overusing Middleware Can Be Harmful
58 Tech
58 Tech
Nov 22, 2019 · Fundamentals

Understanding Business Architecture: Evolution, Challenges, and Practices

The article explains what business architecture is, its evolution from monolithic to micro‑service and platform models, shares 58.com’s real‑world experience, discusses common difficulties, and offers practical guidance for architects on modeling, technology selection, and aligning with cloud and middle‑platform strategies.

MicroservicesSystem Architecturebusiness architecture
0 likes · 11 min read
Understanding Business Architecture: Evolution, Challenges, and Practices
Programmer DD
Programmer DD
Nov 15, 2019 · Fundamentals

Why Concurrency Isn’t the Same as Parallelism: A Simple Analogy

This article explains the subtle difference between concurrency and parallelism using a ground‑hog and cart analogy, shows how task decomposition creates concurrent pipelines, and maps the model to scalable web‑service architecture, referencing Rob Pike’s talk “Concurrency is not Parallelism”.

GoParallelismWeb services
0 likes · 7 min read
Why Concurrency Isn’t the Same as Parallelism: A Simple Analogy
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
Java Captain
Java Captain
Oct 6, 2019 · Fundamentals

Prioritizing Fundamentals Over Frameworks: A Programmer’s Reflection

The article argues that programmers should devote the majority of their limited time to mastering transferable fundamentals such as clean code, design patterns, and domain‑driven design, while allocating only a small portion to learning ever‑changing frameworks and tools, illustrated through a mentor dialogue and book recommendations.

Continuous DeliverySoftware Engineeringcareer advice
0 likes · 8 min read
Prioritizing Fundamentals Over Frameworks: A Programmer’s Reflection
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
ITFLY8 Architecture Home
ITFLY8 Architecture Home
Sep 18, 2019 · Fundamentals

Mastering System Architecture: From Purpose to Practical Methods

This article explores the core purpose of system architecture, identifies technical, business, and project-management challenges, and presents a systematic approach—systemic thinking, decomposition, abstraction, and patterns—to effectively design and implement robust architectures.

Project Managementbusiness modelingsoftware design
0 likes · 12 min read
Mastering System Architecture: From Purpose to Practical Methods
ITFLY8 Architecture Home
ITFLY8 Architecture Home
Sep 17, 2019 · Fundamentals

What Is System Architecture? A Simple Formula to Master Its Core

This article breaks down the concept of system architecture, derives a concise formula—elements plus connections plus solving specific problems—and explores its classifications, characteristics, and practical implications for designing coherent, goal‑oriented software systems.

Software Engineeringarchitecture fundamentalssoftware design
0 likes · 11 min read
What Is System Architecture? A Simple Formula to Master Its Core
Java Backend Technology
Java Backend Technology
Sep 14, 2019 · Fundamentals

Master Code Refactoring: Principles, Smells, and Practical Techniques

This article explains what refactoring is, why and when to apply it, lists common code smells with concrete examples, and provides step‑by‑step techniques for reorganizing functions, moving responsibilities, restructuring data, simplifying conditionals, and improving overall software design.

Object-Orientedclean codecode smells
0 likes · 27 min read
Master Code Refactoring: Principles, Smells, and Practical Techniques
Alibaba Cloud Developer
Alibaba Cloud Developer
Sep 11, 2019 · Fundamentals

What Makes Code Truly Good? Essential Principles and Practices

This article explores the essential characteristics of clean code, emphasizing high cohesion, low coupling, readability, proper naming, formatting, concise classes and functions, effective comments, error handling, and common code smells, while providing practical guidelines and examples for developers.

clean codecode qualityrefactoring
0 likes · 11 min read
What Makes Code Truly Good? Essential Principles and Practices
21CTO
21CTO
Aug 9, 2019 · Backend Development

Mastering Microservice Design: 5 Essential Architectural Constraints

This article explains how microservices differ from traditional monolithic delivery, outlines the five key architectural constraints—scalability, elasticity, composability, minimality, and completeness—and provides practical guidance for designing robust, loosely‑coupled services.

BackendMicroservicesScalability
0 likes · 7 min read
Mastering Microservice Design: 5 Essential Architectural Constraints
21CTO
21CTO
Aug 9, 2019 · Fundamentals

How Clean Architecture Can Simplify Your Codebase: A Deep Dive into Layered Design

This article explores the principles of Clean Architecture, explains layered thinking and dependency rules, discusses how to apply them in real projects, and reflects on the broader meaning of software architecture, including domain‑driven design and practical advice for developers seeking to improve their design skills.

Clean ArchitectureDependency RuleDomain-Driven Design
0 likes · 15 min read
How Clean Architecture Can Simplify Your Codebase: A Deep Dive into Layered Design
Architecture Digest
Architecture Digest
Aug 7, 2019 · Fundamentals

Understanding Clean Architecture: Principles, Layers, and Practical Reflections

This article revisits the author’s earlier talk on software architecture, reorganizes and expands it with detailed explanations of Clean Architecture’s layered design, dependency rules, and related concepts such as DDD, while reflecting on how these ideas can reduce code modification difficulty and guide personal growth as an architect.

Clean ArchitectureDependency RuleGo
0 likes · 15 min read
Understanding Clean Architecture: Principles, Layers, and Practical Reflections
Continuous Delivery 2.0
Continuous Delivery 2.0
Jul 11, 2019 · Fundamentals

Seven Practical Techniques for Writing Testable Code

Writing unit-testable code often requires refactoring, and by focusing on minimizing function size, dependencies, and complexity, developers can adopt seven practical techniques—including limiting function lines, single responsibility, dependency injection, avoiding complex parameters, using abstractions, extracting testable units, and handling private functions—to improve testability and team efficiency.

best practicesrefactoringsoftware design
0 likes · 6 min read
Seven Practical Techniques for Writing Testable Code
21CTO
21CTO
May 31, 2019 · Information Security

Why Using the Word “User” Can Sabotage Your Software Design

The article explains how the vague term “User” leads to poor requirements, hidden security flaws like the Confused Deputy problem, and costly redesigns, urging developers to adopt precise terminology such as “team” and “member” early in a project.

Terminologyaccess controlsoftware design
0 likes · 8 min read
Why Using the Word “User” Can Sabotage Your Software Design
Alibaba Cloud Developer
Alibaba Cloud Developer
May 14, 2019 · Fundamentals

Why Mastering Architecture Principles Keeps Your Code Future‑Proof

This article distills the core ideas of "Clean Architecture"—explaining software system value, architecture goals, programming paradigms, design principles, component splitting, dependency handling, and boundary management—to help engineers build maintainable, extensible systems that stand the test of time.

Programming ParadigmsSoftware Architecturecomponent decomposition
0 likes · 22 min read
Why Mastering Architecture Principles Keeps Your Code Future‑Proof
Programmer DD
Programmer DD
May 3, 2019 · Information Security

Why Calling Everyone a “User” Can Cripple Your Software Security

Using the vague term “user” to describe diverse actors—passengers, agents, services, or system accounts—creates ambiguous models that lead to design flaws and serious security risks such as the Confused Deputy problem, urging developers to adopt precise terminology like “team” and “member” from the start.

Terminologyconfused deputysoftware design
0 likes · 8 min read
Why Calling Everyone a “User” Can Cripple Your Software Security
Java Backend Technology
Java Backend Technology
Mar 10, 2019 · Fundamentals

Mastering Code Refactoring: Principles, Smells, and Practical Techniques

Refactoring transforms messy code into clean, maintainable structures without altering observable behavior, covering principles, common code smells, and step‑by‑step techniques such as extracting functions, moving methods, simplifying conditionals, and reorganizing data, empowering developers to improve design, reduce bugs, and accelerate development.

best practicesclean codecode smells
0 likes · 26 min read
Mastering Code Refactoring: Principles, Smells, and Practical Techniques
Xianyu Technology
Xianyu Technology
Jan 31, 2019 · Backend Development

Business Isolation and Domain Modeling for Xianyu Detail Page Architecture

The article shows how to refactor a tangled Xianyu detail‑page built on legacy MVC by isolating each vertical business with the Strategy pattern, extracting shared services, packaging them as libraries or JARs, and then applying domain‑driven design to create a clean, layered, maintainable architecture.

Business IsolationDomain-Driven Designarchitecture
0 likes · 11 min read
Business Isolation and Domain Modeling for Xianyu Detail Page Architecture
ITFLY8 Architecture Home
ITFLY8 Architecture Home
Jan 3, 2019 · Fundamentals

What Is Software Architecture? Core Principles, Types, and How to Evaluate Them

Software architecture defines the structural skeleton of a system, encompassing components, connectors, constraints, and guiding principles; this article explains its essence, various classifications—from business to deployment—and offers practical criteria for assessing stability, efficiency, and security in modern server‑based applications.

BackendScalabilitysoftware design
0 likes · 15 min read
What Is Software Architecture? Core Principles, Types, and How to Evaluate Them
Architects Research Society
Architects Research Society
Dec 2, 2018 · Backend Development

Governance, Trade‑offs, and Complexity in Microservices Architecture

The article examines the nuanced challenges of microservices—including governance trade‑offs, reuse considerations, complexity versus complication, and the risks of multi‑master data—while arguing for pragmatic, centrally‑guided design to harness their potential without over‑marketing.

Microservicesgovernancesoftware design
0 likes · 8 min read
Governance, Trade‑offs, and Complexity in Microservices Architecture
UC Tech Team
UC Tech Team
Oct 9, 2018 · Fundamentals

Goodbye Object‑Oriented Programming: The Collapse of Inheritance, Encapsulation, and Polymorphism

The article critiques the core pillars of object‑oriented programming—inheritance, encapsulation, and polymorphism—illustrating their practical pitfalls with real‑world analogies and code examples, and proposes containment and delegation as safer alternatives before urging a shift toward functional programming.

EncapsulationInheritancePolymorphism
0 likes · 11 min read
Goodbye Object‑Oriented Programming: The Collapse of Inheritance, Encapsulation, and Polymorphism
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.

AssociationInheritanceUML
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.

Service Layerdaodomain model
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.

BackendMicroservicesUber
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.

Object-OrientedSoftware ModelingUML
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.

Android Developmentagilemobile 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.

Agile Developmentcode isolationdevelopment 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.

AlgorithmsCareer DevelopmentSoftware Engineering
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.

Object-Orientedclean codecode smells
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.

Non-functional RequirementsSoftware Architecturearchitect role
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 PatternsInheritancecode organization
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.

Object-Orientedbest practicescoding standards
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 ArchitectureTechnology Selection
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.

Technical Debtclean codecode quality
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.

ModelingSoftware Engineeringarchitecture
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.

Software Engineeringarchitecture diagramscoding practices
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 maintainabilitydisposable codefeature flags
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.

Event-Driven ArchitectureWeb frameworkdata modeling
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.

Code Optimizationbest practicesdevelopment 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 OptimizationScalabilityarchitecture
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.

Software Engineeringbest practicesclean 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.

Code reviewSoftware Testingbest practices
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.

Cloud NativeMicroservicesSOA
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-drivenManagementTechnical Debt
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.

Technical Debtincremental deliveryrefactoring
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.

Domain-Driven Designcode readabilitymental models
0 likes · 10 min read
Why Code Becomes Unreadable Over Time and How to Keep It Simple