Fading Coder

One Final Commit for the Last Sprint

Aligning Business and Technical Architectures in Software Systems

Software system design relies on two foundational pillars: business architecture and technical architecture. The former defines the organizational model, operational processes, and strategic goals, while the latter outlines the infrastructure, components, and design patterns required to execute thos...

Deep Dive: Design Patterns Within Mybatis Source Code

Understanding design patterns theoretically often differs from observing their practical application in large-scale frameworks. While there are 23 standard patterns, developers frequently encounter them more clearly within mature source codebases like Mybatis. Analyzing these internals reveals how c...

Implementing the Factory Method Pattern in C++

Defining the Product Abstraction Centralized factory implementations frequently depend on conditional branching to instantiate specific objects based on enput parameters. This approach violates the Open-Closed Principle because introducing new product types mandates modifications to the factory clas...

Implementing Factory Design Patterns in Python

Simple Factory Implementation The Simple Factory pattern acts as a centralized creation mechanism, encapsulating the object instantiation logic behind a single interface. This approach hides the complexities of class initialization from the client, allowing object creation based on specific input pa...

Bridging Diverse Systems with the Adapter Pattern

The Adapter pattern serves as a bridge between incompatible interfaces, enabling seamless integration of existing componants into new systems without altering their original structure. This is particular useful in scenarios where third-party services—such as Alipay or WeChat Pay—must be incorporated...

Integrating Unit Tests into Android Projects in 2024

What is a unit test? In the context of Android development, a unit test targets the smallest testable parts of an application, such as individual methods within a class. The testing pyramid places unit tests at the fonudation because they are fast to run and provide immediate feedback on logic corre...

Dynamic Data Modeling: Escaping Rigid CRUD with Metadata Architecture

The Limitations of Prototype-Driven Modeling Consider an administrative backend designed to manage various operational account categories. Each account category requires a distinct set of display attributes and executable operations. For instance, a "Standard" account might display three d...

Refactoring a Legacy System with 810K Lines of Java Code: A Case Study on Youku CRP's Payment Module

Youku's CRP (Content Rights Procurement) system, a decade-old legacy application, struggles with outdated technical frameworks and fragmented code—810,000 lines of Java and 170,000 lines of JSP. When taking over the financial module, the goal was to modernize it while ensuring business continuity. T...

Architectural Layers: Distinguishing Libraries, Frameworks, Scaffolding Tools, and IDEs

Modern software development involves distinct architectural components that often confuse practitioners: libraries provide functionality, frameworks impose structure, scaffodling accelerates initialization, and IDEs integrate the workflow. Understanding their boundaries and interactions is essential...

Understanding the Proxy Design Pattern in Java

The Proxy design pattern is a structural pattern that provides a surrogate or placeholder to control access to another object. It involves creating a representative class that manages interaction with a real subject, enabling additional functionality like access control, lazy initialization, or logg...