# **Development Experience and Project Specification Organization Document** ## Table of Contents 1. Variable Name Maintenance Solution 2. File Structure and Naming Conventions 3. Coding Style Guide 4. System Architecture Principles 5. Core Ideas of Program Design 6. Microservices 7. Redis 8. Message Queue --- # **1. Variable Name Maintenance Solution** ## 1.1 Create a "Comprehensive Variable Name File" Establish a unified variable index file for AI and overall team maintenance. ### File content includes (format example): | Variable Name | Variable Comment (Description) | Location (File Path) | Frequency (Statistics) | | :------------ | :----------------------------- | :------------------------- | :--------------------- | | user_age | User age | /src/user/profile.js | 12 | ### Purpose * Unified variable naming * Convenient global search * AI or human can uniformly manage and refactor * Reduce the risk of naming conflicts and unclear semantics --- # **2. File Structure and Naming Conventions** ## 2.1 Subfolder Content Each subdirectory needs to contain: * `agents` - Responsible for automation processes, prompts, agent logic * `claude.md` - Stores documentation, design ideas, and usage for the content of this folder ## 2.2 File Naming Rules * Use **lowercase English + underscore** or **camelCase** (depending on the language) * Filenames should reflect content responsibilities * Avoid abbreviations and ambiguous naming Examples: * `user_service.js` * `order_processor.py` * `config_loader.go` ## 2.3 Variable and Definition Rules and Explanations * Naming should be as semantic as possible * Follow English grammatical logic (noun attributes, verb behaviors) * Avoid meaningless names like `a, b, c` * Constants use uppercase + underscore (e.g., `MAX_RETRY_COUNT`) --- # **3. Coding Style Guide** ### 3.1 Single Responsibility Each file, class, and function should be responsible for only one thing. ### 3.2 Reusable Functions / Constructs (Reusable Components) * Extract common logic * Avoid duplicate code (DRY) * Modularize, functionalize, and improve reuse value ### 3.3 Consumer / Producer / State (Variables) / Transformation (Functions) System behavior should be clearly divided: | Concept | Description | | :------------------- | :---------------------------------------- | | Consumer | Where external data or dependencies are received | | Producer | Where data is generated and results are output | | State (Variables) | Variables storing current system information | | Transformation (Functions) | Logic for processing states and changing data | Clearly distinguish **Input → Process → Output** and manage each stage independently. ### 3.4 Concurrency * Clearly distinguish shared resources * Avoid data races * Use locks or thread-safe structures when necessary * Distinguish between "concurrent processing" and "asynchronous processing" --- # **4. System Architecture Principles** ### 4.1 First Clarify the Architecture Before writing code, clarify: * Module division * Input/output * Data flow * Service boundaries * Technology stack * Dependencies ### 4.2 Understand Requirements → Keep It Simple → Automated Testing → Small Iterations Rigorous development process: 1. First understand the requirements 2. Keep architecture and code simple 3. Write maintainable automated tests 4. Iterate in small steps, avoid big-bang development --- # **5. Core Ideas of Program Design** ## 5.1 Start from the problem, not from the code The first step in programming is always: **What problem are you solving?** ## 5.2 Break large problems into small problems (Divide & Conquer) Decompose complex problems into small, independently achievable units. ## 5.3 KISS Principle (Keep It Simple, Stupid) Reduce complexity, magic code, obscure tricks. ## 5.4 DRY Principle (Don't Repeat Yourself) Reuse logic with functions, classes, modules; don't copy-paste. ## 5.5 Clear Naming * `user_age` is clearer than `a` * `get_user_profile()` is clearer than `gp()` Naming should reflect **purpose** and **semantics**. ## 5.6 Single Responsibility A function handles only one task. ## 5.7 Code Readability First The code you write is for others to understand, not to show off.