Tag

software design

1 views collected around this technical thread.

Continuous Delivery 2.0
Continuous Delivery 2.0
Jun 12, 2025 · Backend Development

Why Over‑Engineering and Bad Code Kill Your Project—and How to Fix It

This article reveals how common bad coding practices such as over‑engineering, hidden business logic in utility classes, deep inheritance trees, excessive DTO layers, unnecessary interfaces, and contract‑less microservices degrade team efficiency and project quality, and offers concrete, principle‑driven remedies.

Javaanti-patternsbackend development
0 likes · 8 min read
Why Over‑Engineering and Bad Code Kill Your Project—and How to Fix It
macrozheng
macrozheng
Apr 9, 2025 · Fundamentals

Why Clean Code Matters: Practical Tips for Naming, Classes, Functions & Testing

This article explains why clean code is essential for productivity and team collaboration, outlines concrete guidelines for meaningful naming, single‑responsibility classes, concise functions, and effective testing, and shows how tools and refactoring can help maintain high code quality.

Best PracticesNaming Conventionsclean code
0 likes · 14 min read
Why Clean Code Matters: Practical Tips for Naming, Classes, Functions & Testing
Java Captain
Java Captain
Apr 7, 2025 · Fundamentals

Effective Object Naming: Avoiding “-er”/“-or” Suffixes, God Classes, and Building Intelligent Domain Objects

This article explains why thoughtful object naming—avoiding generic “er”/“or” suffixes and vague Service/Helper classes—improves code readability, maintainability, and AI‑assisted development, and demonstrates better designs with concrete C# examples that model real‑world business roles and adaptive behavior.

AI-assisted programmingCode readabilitySoftware Architecture
0 likes · 12 min read
Effective Object Naming: Avoiding “-er”/“-or” Suffixes, God Classes, and Building Intelligent Domain Objects
Selected Java Interview Questions
Selected Java Interview Questions
Apr 3, 2025 · Fundamentals

How to Write Clean and Maintainable Code: Naming, Classes, Functions, and Testing

This article explains why clean code is essential for team development and provides practical guidelines on naming, class design, function composition, and testing—including SOLID principles, meaningful identifiers, single‑responsibility classes, short functions, and test‑driven development—to improve readability, extensibility, and overall software quality.

Naming Conventionsclean coderefactoring
0 likes · 19 min read
How to Write Clean and Maintainable Code: Naming, Classes, Functions, and Testing
IT Architects Alliance
IT Architects Alliance
Dec 30, 2024 · Fundamentals

Building Scalable Modular System Architecture: Concepts, Steps, and Best Practices

The article explains why a scalable modular system architecture is essential, outlines its core concepts, detailed implementation steps, design principles, and real‑world case studies, and highlights technologies such as micro‑services, containers, and API gateways that enhance extensibility and maintainability.

Microservicesmodular architecturescalability
0 likes · 16 min read
Building Scalable Modular System Architecture: Concepts, Steps, and Best Practices
Top Architect
Top Architect
Dec 1, 2024 · Fundamentals

Fundamentals of Software Design Documentation and UML Modeling

This article introduces the basics of software design documentation, explaining how software modeling and UML diagrams such as class, sequence, component, deployment, use case, state, and activity charts are used to capture domain problems and system architecture throughout requirement analysis, high‑level design, and detailed design phases.

ArchitectureSoftware ModelingUML
0 likes · 16 min read
Fundamentals of Software Design Documentation and UML Modeling
Tencent Cloud Developer
Tencent Cloud Developer
Nov 28, 2024 · Backend Development

Contract-Based Design and Communication Challenges in Software Development

The article highlights how fragmented, undocumented cross‑team communication creates fragile software, then advocates adopting contract‑based design—preconditions, postconditions, invariants—and AI‑assisted tooling to formalize API contracts throughout the development lifecycle, aligning teams, reducing errors, and improving system reliability.

OpenAPIProtobufbackend development
0 likes · 18 min read
Contract-Based Design and Communication Challenges in Software Development
JD Tech
JD Tech
Nov 5, 2024 · Fundamentals

Simplifying Complexity: Principles and Practices for Cleaner Software Design

This article explores why simplicity is essential in software development, examines the distinction between essential and accidental complexity, presents real‑world case studies of product and code complexity, and offers practical guidelines such as KISS, single‑responsibility, API minimization, and automation to achieve more maintainable and understandable systems.

API designArchitectureBest Practices
0 likes · 24 min read
Simplifying Complexity: Principles and Practices for Cleaner Software Design
DaTaobao Tech
DaTaobao Tech
Oct 21, 2024 · Fundamentals

The True Purpose of Classes and Functions: Beyond Reuse

The article argues that classes and functions serve as fundamental structural elements rather than mere tools for reuse, contending that excessive reuse can increase complexity while intentional redundancy simplifies maintenance, and advocating deep modules over shallow ones, illustrated by examples from Supercell, DingTalk, and a trivial shallow‑module code snippet.

DDDDRY principleSoftware Architecture
0 likes · 8 min read
The True Purpose of Classes and Functions: Beyond Reuse
Code Mala Tang
Code Mala Tang
Oct 3, 2024 · Fundamentals

Mastering the Interface Segregation Principle: Why Small Interfaces Boost Code Quality

Learn how the Interface Segregation Principle (ISP) of SOLID design encourages splitting large interfaces into focused, minimal ones, reducing unnecessary method implementations, improving maintainability, and enhancing modularity across backend Java code, frontend React components, and state‑management modules, while also noting its trade‑offs.

BackendInterface SegregationJava
0 likes · 16 min read
Mastering the Interface Segregation Principle: Why Small Interfaces Boost Code Quality
Test Development Learning Exchange
Test Development Learning Exchange
Sep 25, 2024 · Fundamentals

Duck Typing and Polymorphism in Python

This article explains duck typing and polymorphism in Python, two fundamental object-oriented programming concepts, with practical code examples demonstrating how objects can be treated based on their behavior rather than their type.

Dynamic TypingPythonduck typing
0 likes · 8 min read
Duck Typing and Polymorphism in Python
DevOps
DevOps
Sep 24, 2024 · Fundamentals

From Business Modeling to Use Case Diagrams: A Comprehensive Guide

This article explains how to move from business modeling to business and system use case diagrams, covering vision definition, business sequence diagrams, system use case creation, use case specifications, and concludes with a brief promotion for a DevOps certification course, offering practical guidance for software engineers.

System Modelingbusiness modelingrequirements analysis
0 likes · 17 min read
From Business Modeling to Use Case Diagrams: A Comprehensive Guide
DevOps
DevOps
Sep 12, 2024 · Fundamentals

Advantages, Disadvantages, and Principles of Layered Architecture

This article examines the common benefits, drawbacks, and design principles of layered architecture across micro‑service, data‑warehouse, and protocol designs, illustrating each point with real‑world examples and offering practical guidance on when and how to apply layering effectively.

Layered ArchitectureMicroservicesdata warehouse
0 likes · 11 min read
Advantages, Disadvantages, and Principles of Layered Architecture
DevOps
DevOps
Sep 4, 2024 · Fundamentals

Concept‑Driven Software Design: From Daniel Jackson’s “Concept” to Business‑Service‑Driven Development with AI Assistance

The article analyses Daniel Jackson’s concept‑driven software design presented at the 2024 Global Software R&D Conference, relates it to domain‑driven design and business services, and demonstrates how AI‑augmented prompts can generate Java domain models and a Spring‑Boot RESTful API for order submission.

AI-assisted developmentDomain-Driven Designbusiness services
0 likes · 17 min read
Concept‑Driven Software Design: From Daniel Jackson’s “Concept” to Business‑Service‑Driven Development with AI Assistance
Tencent Cloud Developer
Tencent Cloud Developer
Aug 27, 2024 · Fundamentals

UML Architecture Diagrams: Types, Usage, and Timing in the Software Development Lifecycle

The article explains the main UML architecture diagram types—class, sequence, component, deployment, use‑case, state, and activity—outlines how to choose the appropriate diagram, and details when each should be applied during requirement analysis, high‑level design, and detailed design phases of software development.

Architecture DiagramSystem DevelopmentUML
0 likes · 11 min read
UML Architecture Diagrams: Types, Usage, and Timing in the Software Development Lifecycle
DevOps
DevOps
Aug 12, 2024 · Fundamentals

The Importance of Design and Modeling in Software Development

This article explains why software engineers should perform design and modeling—such as business modeling, process analysis, and system modeling—before writing code, highlighting how these practices align development with business goals, improve collaboration, and reduce costly rework caused by changing requirements.

Software ArchitectureSystem Modelingmodeling
0 likes · 9 min read
The Importance of Design and Modeling in Software Development
Tencent Cloud Developer
Tencent Cloud Developer
Aug 7, 2024 · Fundamentals

Design and Modeling: Essential Practices for Effective Software Development

Before writing code, developers should perform systematic design and modeling—including business modeling, process analysis, and system modeling—followed by class analysis and state‑machine design, to align software with business goals, reduce changing requirements, improve quality, and keep teams motivated.

System Architecturemodelingrequirements analysis
0 likes · 10 min read
Design and Modeling: Essential Practices for Effective Software Development
Continuous Delivery 2.0
Continuous Delivery 2.0
Jul 16, 2024 · Fundamentals

When to Tolerate Code Duplication and Avoid Premature DRY Abstractions

The article argues that in early development stages, a small amount of code duplication should be tolerated, warning against premature DRY abstractions that can lead to over‑engineered designs, and advises waiting for genuine common patterns before introducing shared abstractions.

DRYYAGNIabstraction
0 likes · 3 min read
When to Tolerate Code Duplication and Avoid Premature DRY Abstractions
Top Architect
Top Architect
Jul 15, 2024 · Fundamentals

Clean Code Practices: Naming, Classes, Functions, and Testing

This article explains why maintaining clean, well‑structured code is essential for productivity and team collaboration, covering naming conventions, class design principles, function responsibilities, testing strategies, and tools like SonarLint, while providing concrete Java code examples for each concept.

Naming Conventionsclean codecode quality
0 likes · 16 min read
Clean Code Practices: Naming, Classes, Functions, and Testing