本文共 1219 字,大约阅读时间需要 4 分钟。
本文的内容来源于此,但非仅限于此:
失败的经验更容易让人记住,是因为失败让人印象更深刻,5年的编码经历,大部时间都是在循环搞一些让人胃疼的东西。
每个项目初创之时,都有一个目的:理念先进、架构优美、编码简单、易于维护,但往往随着进度的推进,因为各种原因会变得难于理解、维护、扩展。我曾参与2个遗留产品:关于支付、社交的,在我加入的时候已经只能添加新的功能代码,老的分支逻辑:无论是否有用,都没有人敢动。
在一个项目开启的时候,靠谱的编码规则:
copy from @爵爷电影的业务逻辑服务化,整合无线和pc端的业务逻辑。达到几个目标点:
- √ 业务模型统一
- √ 业务接口整合
- √ 异常体系定制
- √ 接口可测试化
- √ 系统可监控性
- √ 提高开发效率
这些规则在任何项目中都适用,个人认为业务模型可以划分为:元数据模型和业务数据模型。元数据模型是现实数据的逻辑映射,例如电影系统中的排期、影院、影片信息,面向db。业务数据模型面向系统页面展示而用,页面的变化、调整会导致业务数据更改,但是组成业务数据的元数据不会更改:
微信:比如朋友圈这个产品经历了很多次变动,出了好几十个版本,但是有东西是不变的,就是数据模型是不变的。所以我们在产品设计和细节还没出来的时候,我们从后台到协议设计到本地存储的整个数据结构设计都已经做好了,界面的框架也可以先做,等设计最终确定的时候,我们技术这边已经进入ready的阶段。()
我理解所谓的ready阶段是指:交互和原型确定的时候,后台只需要使用基本的数据结构提供相应的业务数据就ok了。
业务接口整合:现在系统都会有app和pc版,每个版本依赖的基础服务接口应该是统一的,这也要求app和pc上的设计的产品模型不能有太大差异。太多的业务分裂也会导致滑向深渊。
异常体系定制、系统可监控性、提高开发效率:不要用if-else-return error 的方式来处理异常分支,统一的异常体系更易于主流程编码、维护。监控是一种非功能性的需求,但是要趁早规划、实现,一个运行在黑盒状态的系统是不能令人放心的。提高效率和编程理念、使用的平台、工具、框架有关系
转载地址:http://mjato.baihongyu.com/