2018-06-13-设计的感悟

一个晚上的重构代码,感觉从几个月前的接手一份陌生的代码,有了很多的领悟,总结一下,希望自己记住这些感觉,也提醒自己加强学习,变得不一样。
1、细化功能点,模块设计解耦;
我们总在说这些概念,希望解耦,希望增强代码的重用性,可是在没有接触一个易变的,需求复杂的模块时,这些观点只在教科书上,而没有自己真正领会。比如tunnel,按着一开始的设计,耦合度过高,导致在应对已知的限定需求时候,一时的代码,可能还有一些用处。
耦合度高,原因的很简单:你还不明白自己这个模块的基本框架,你也无法预测未来它的走向!但是作为核心的重要的东西,通常就是一个多变的多需求的东西,必须尽可能弄懂他,在没弄懂之前,不存在完美的设计,因此,能做的就是尽自己最大的能力去细分功能,不要害怕复杂,功能拆得越散和独立,日后复用的可能越高,重构的难度越低。其次就是,尽可能去理解你的业务,代码的好坏,直接和一个人对业务的理解成正比!

2、定义模型
其实我不擅长定义模型,但是接触了一段时间后似乎也明白了一些道理。工厂、构造器这些数据模式是老生常谈的东西,但是如何用的舒服和顺利,却也是时间的积累。
比如我现在体会的,把一个模型固定的和易变的东西一定要区分对待,为一个模型留一些扩展的空间,数据传递,键值传递、配置与状态一致等,这些其实都是学问,慢慢去体会,需要用心,也要一直抱着一颗优化代码的心去努力!

3、关于接口
如果说模型是描述外部静态世界语法,那么接口就是描述变化、动作的行为,所以接口同样是有学问的东西。不同的实现类不同的行为特征、不同的约束规则、不同的作用范围,这里同样关乎继承、重写、约束行为、限定范围、多样性设计。接口是行为,模型是对象,都需要规范化并带入思想!
于现在的自己就是把一些模块的功能权限区分,同一个store可能实现不同的接口,在给不同的功能块用的时候,用接口去限定他们的操作权限和使用范围,这边是学问!学着不断重构中去优化自己的逻辑!

你可能感兴趣的:(2018-06-13-设计的感悟)