1 开发规范

1.1 开发流程

  • 明确:

    • 为什么要做这个东西,它的价值在哪里(意义)

    • 这个东西要实现什么功能,它面向的用户是谁(目标用户群体)

    • 它的功能后续可以有什么发展(长远性,功能扩展)

    • 前期需求的澄清和沟通比后期的开发还重要,你做的是不是对方想要的,同时最好能跟一手需求方有直接沟通

    • 测试,防止测试不完全,以使用人的角度进行思考,以一手需求人的数据进行操作,实现100%的模拟

  • 与需求方澄清需求

  • 确定架构

  • 设计文档

    • 核心流程、生命状态流转

    • 接口设计,与前端确认

    • 数据库设计(主键、索引、字段类型大小,必带字段 creatBy、creatTime、modifyBy、modifyTime、deleted)

  • 开发:

    • 本机创建mysql数据库表,确保字段无误

    • 根据数据库表创建entity类,包括entity的struct、tableName

    • 根据entity,创建dto类,包括dto的struct、dto转entity的方法、Req,对应前端接req——后端dto——entity过程

    • 确定前端调用url,写对应router

    • 确定接口,写controller接口,确定参数和返回内容

    • 生成swagger文档,与前端对接,保证前端可以按照swagger文档开始开发

    • 开始controller——app service——service——repo层的实际逻辑开发

1.2 命名规范

方法名:

  • PageListXxxx

  • ListXxxx / ListXxxxByXxx

  • AddXxxx

  • DeleteXxxx

  • GetXxxx

  • UpdateXxx

枚举和常量:

  • 全局常量和枚举,放在 infra->constant/enums下面

  • 具体域内的常量和枚举放到domain->constant/enums下面

1.3 开发技巧

1、会变化的配置,尽量写在配置文件中,防止每次发生变更要重新发版,增加便利性

2、什么时候需要异步处理,批量上传的时候考虑,此时网络会有实现限制

3、对唯一性有要求的参数进行设置时考虑多人操作的情况,是否会导致重复

4、容错处理考虑,参数校验,你永远不知道别人会出现什么骚操作。这就需要在实现基本功能的同时去扩展思考会出现哪些问题

5、不同逻辑代码块之间用空行隔开

6、数据delete字段,不做物理删除,所以相应的查询时也需要带上条件 delete=0

1.4 如何熟练运用合适的API

接口文档API + demo例子

当遇到相关的需求,但是不知道有哪个对应的方法,并且google baidu 搜不到的情况,建议直接查看接口API文档,没准就能找到你不知道但刚好能满足需求的方法,毕竟代码的核心不是重复造轮子,当你觉得繁琐时,就是优化的时机,并且这个时机很大可能别人已经优化了

更多推荐