重构的那些事(一)

以互联网公司发展的速度,老项目被新项目替代,新需求不知足老的设计原理,是考虑新开一个项目呢,仍是在原有的项目中进行范围性改造知足现有需求呢框架


若是你选择新开一个项目,首先须要梳理项目流程,而后抽象业务需求,再基于前人的肩膀上选择一些适用的框架和技术。异步


在此跟你们多说一句,重构的时候好多前辈都说只有适合的技术才是重构须要,不要去追寻那些前沿的新奇的还不是很成熟的技术,其实这种话听着挺有道理的,好比:有A框架和B框架,A简单易上手轻便,可是相比较B而言,有可能在高可用,熔断,限流等一些技术上要差一些。有的人可能就要说了若是A能知足现有得业务需求,应该选A,可是做为一个技术人员相信每个人都想去学习一些新的技术,简单方便的工具当然能让大部分人爱上它,可是相比较自行车人们为啥仍是更爱小轿车。ide


相同的原理每一个技术人都愿意将本身的小米步枪换成飞机大炮,在使用B框架的过程当中咱们可以去学习他的复杂原理,了解他的熔断啊,限流啊一些牛逼点的技术,虽然对如今的业务有一种大材小用的感受,可是一切的一切都是值得的。工具


在选定B框架以后咱们须要去调研她,首先要知道在她的基础上能实现哪些功能,是否知足咱们的需求,知足需求的基础上咱们还要知道哪些能够更方便咱们去管理该系统,若是咱们只是用她的最简单的一些功能又何须辛辛苦苦去研究一个复杂的系统呢。当你要异步发消息的时候会想我要用kafka,由于她比mq更新,她是如今技术的主流,若是你只是用她发一些简单的配置数据,或者大家的业务流量寥寥无几,我劝你仍是用rabbitmq吧,何须呢,kafka的高吞吐量根本感受不出来,当你对使用几个线程去消费信息都不在乎的时候,在你手里mqkafka毫无二至。既然咱们选择了kafka 咱们就要去了解她的原理,brokerpartitionoffsetgroup等等难道不能引发咱们的注目礼嘛,这也是我推荐你们用新技术的目的。学习


用只是谋生 的手段,学习才是咱们进步的阶梯spa


若是以上步骤走完了,接下来就是设计开发的事情了。面向对象讲了好多年了,正好应该是咱们发挥本身才能的机会,最基本的几个原则要遵照吧,可维护,可扩展,可开放,OCP。。提及来简单,作起来比较难,总有你没有考虑到的地方。人不是上帝,可是是上帝的制造者。那我们一步一步来造上帝吧,抽象业务需求的时候你总会发现他们有着不少的共同点,他们有着重合的属性,那咱们避免重复性代码线程

1.避免重复代码设计

2.减小巨大类和方法orm

3.逻辑控制尽可能简单对象

4.尽可能抽象,能不暴露的属性尽可能不要暴露

5.多加一些注释,不能只写代码,而不让别人看代码吧~

相关文章
相关标签/搜索