敏捷实现,计划优化。
避免过度设计。
只要速度够快,别人就看不见你出丑。
相信你所选择的语言。
字里行间,才华横溢。
通俗易懂。
只有踩过坑才能体会设计模式的优越性。
没有什么问题是中间件不能解决的。
徘徊与多种解决方案时,测试结果决定用谁。
java 开发规范参考 阿里《java 开发手册》,根据具体情况遵守。
接口设计
- restful 风格,力求见名知义,独立接口,数据结构精简,采用JSON交换数据。
- 根据前端应用场景设计数据结构。
- 约定业务状态码,根据数据类型设置默认值,减少有效值判断复杂度。
- 后端服务器与数据库对接约定默认值,否则后端服务器需要重新定义默认值,与前端保持一直。
- 减少与前端的数据交换,用户相关操作,采用自定义token或者session+路由来定义。
- 路由规范,从配置文件获取路由定义,采用无意义字符串,支持定期变动。
- 对接口分类,合理分配各端任务。
- springboot 控制器默认单例模式,所以每个控制器的接口要合理分配,否则会出现阻塞,接口不宜过大,尽量简短,能快速执行并释放。
- 规范控制器写法,业务层处理逻辑代码。
- 代码封装,从前是编码过程中发现了冗余代码才意识到要封装;现在是设计接口时,就考虑了复用和扩展,先封装再编码。
- 函数封装,单个函数复杂度不宜过大,函数语句块不宜过长。以便于单独优化。
- 服务内部函数,参数列表尽量避免使用自定义的对象,因为 1)语义不详,2)存在频繁创建对象,尽量使用基本类型。
- 底层接口 应该尽量兼容异常 保证调用者拿到能够处理的结果,尽量把未知变成已知,不能解决问题的接口本身就是个问题。
- 函数是对语句的描述,为调用时建栈提供参考,调用一次建栈一次。
- 策略模式,管道上游执行结果与下游执行如果相互独立,则应捕获所有异常并处理,保证下游正常进行。
任务分配
- 服务器关注复杂的数据处理,数据安全,身份校验等。
- 数据库设计回避关键字,尽量采用命名空间。
- 充分利用数据库的查询性能。