# A conversation with GPT4 about formulate coding rules

By [Sean](https://paragraph.com/@sean-29) · 2023-05-18

---

编写WebApi编码规范
============

来自你的消息:
-------

我正在使用.NET7开发WebApi项目，项目使用了EF Core，拥有Models, Repositories, Services, Endpoints层。请为我设计一份coding rules，以保证新人员加入项目后能继续保证项目的代码质量。

来自 ChatGPT 的消息:
---------------

一份高质量的编码规范对于确保团队成员编写一致、可读、可维护的代码至关重要。以下是一些建议的编码规范，以帮助确保新人员加入项目后能继续保证项目的代码质量：

1.  命名规范：
    
    *   使用有意义的、描述性的命名，避免使用缩写。
        
    *   类名应使用大驼峰（PascalCase）命名法，如 CustomerService。
        
    *   方法名、属性名和局部变量名应使用小驼峰（camelCase）命名法，如 getCustomerById。
        
    *   常量名应使用大写字母和下划线，如 MAXIMUM\_RETRIES。
        
    *   私有字段名应以下划线开头，如 \_customerRepository。
        
2.  代码格式化：
    
    *   使用4个空格作为缩进，而非制表符。
        
    *   将大括号放在新的一行，并保持相同的缩进级别。
        
    *   在运算符和逗号之后添加空格，以提高代码可读性。
        
    *   每行代码长度不应超过120个字符。
        
    *   每个方法之间添加空行，以提高可读性。
        
3.  注释和文档：
    
    *   为所有公共类、方法和属性编写 XML 注释。
        
    *   在复杂的逻辑或易于引起混淆的代码段前添加注释。
        
    *   避免使用过时或不推荐的 API。如有必要使用，请添加注释说明原因。
        
    *   注释应简洁明了，避免使用冗长的解释。
        
4.  代码结构和组织：
    
    *   遵循单一职责原则，确保每个类和方法只负责一个功能。
        
    *   使用接口和依赖注入，以实现松耦合和可测试性。
        
    *   将相关的类和接口组织到相应的命名空间中。
        
    *   在解决方案中为不同的层（如 Models, Repositories, Services, Endpoints）创建单独的项目。
        
5.  异常处理和日志：
    
    *   使用 try-catch 块来处理潜在的异常，并在适当的地方记录错误信息。
        
    *   避免使用不必要的异常处理，以免影响性能。
        
    *   对于预期的错误情况，使用自定义异常类，并提供有意义的错误消息。
        
    *   使用统一的日志库（如 Serilog 或 NLog）来记录日志。
        
6.  测试和代码质量：
    
    *   为关键功能编写单元测试和集成测试。
        
    *   使用代码覆盖率工具（如 Coverlet）来确保测试覆盖率达到预期水平。
        
    *   在代码审查过程中确保遵循编码规范。
        
    *   使用静态代码分析工具（如 Roslyn 分析器）来检测潜在的代码问题。
        
7.  性能和安全性：
    
    *   避免使用低效的算法和数据结构。
        
    *   使用缓存来减少不必要的数据库查询。
        
    *   对用户输入进行验证和清理，以防止跨站脚本（XSS）攻击和 SQL 注入等安全漏洞。
        
    *   使用安全的加密算法和库来处理敏感数据。
        
8.  版本控制和发布：
    
    *   使用 Git 进行版本控制，并遵循一致的分支和提交策略。
        
    *   在提交代码之前确保通过所有测试。
        
    *   使用 CI/CD 工具（如 Azure DevOps 或 GitHub Actions）来自动化构建、测试和部署过程。
        

来自你的消息:
-------

你给出的规则非常不错，但是对于新入职的开发者来说，是否还需要更加详细的规则？

来自 ChatGPT 的消息:
---------------

是的，对于新入职的开发者来说，更加详细的规则将有助于他们更快地融入团队和项目。以下是一些建议，可以帮助新人更好地遵循编码规范：

1.  语言和框架规范：针对使用的编程语言和框架，提供相应的编码规范和最佳实践。例如，如果团队使用Python，可以介绍PEP 8编码规范；如果使用Java，可以参考Google的Java编码规范。
    
2.  代码复用和模块化：强调代码复用和模块化的重要性，鼓励新人遵循DRY（Don't Repeat Yourself）原则，避免重复代码。同时，提供项目中常用的库、工具和模块的文档，帮助新人快速了解和使用。
    
3.  代码审查：实施代码审查机制，让新人的代码在提交前得到团队其他成员的审查。这有助于新人更快地了解团队的编码规范和项目需求，同时提高代码质量。
    
4.  自动化工具：推荐使用自动化工具，如代码格式化工具、静态代码分析工具和自动化测试工具，帮助新人遵循编码规范，提高代码质量。
    
5.  编码实例和模板：提供一些编码实例和模板，演示如何遵循编码规范编写代码。这将帮助新人更直观地理解规范，并在实际编码过程中形成参照。
    
6.  培训和指导：为新人提供培训和指导，包括编码规范、项目架构、开发流程等方面的内容。有经验的团队成员可以担任导师，帮助新人快速成长。
    
7.  反馈和改进：鼓励新人在遵循编码规范的过程中提出反馈和建议，以便不断完善和改进规范。
    

通过以上这些建议，新入职的开发者将更容易理解和遵循编码规范，从而更好地融入团队和项目。同时，团队也应该持续关注新人的进步和需求，为他们提供支持和帮助。

---

*Originally published on [Sean](https://paragraph.com/@sean-29/a-conversation-with-gpt4-about-formulate-coding-rules)*
