Balabara原则是指让代码更优雅的各种原则写代码的人都希望代码整洁漂亮,肯定搜了很多文章,想学习高内聚低耦合,开放的原则和收尾等心态。但是当我真正开始写的时候,我把我知道的技术都用上了,但是我总觉得代码不符合这些原则。让人无缘无故感到沮丧:我知道那么多原理,却写不出好的代码。因为这是一个量变产生质变的过程。只有画到最后一笔,你画的才像人。不认识一个字和不认识所有的字没有本质的区别,但是当你认识了所有的字的那一刻,你就可以突然理解整个句子。只有当你键盘下的代码各方面都足够好时,你的代码才是真正的废话废话。网上大部分文章只会告诉你什么是巴拉巴拉原则,而不会告诉你如何去做。为此,您必须查看您编写的每一行代码:嵌套ifelse好吗?能不能不要太依赖ifelse来实现流控?在方法外定义的状态变量是否使程序的语义更加模糊?这个for循环可以换成函数时间变化吗?函数柯里化能简化参数传递和方法调用吗?闭包能否用于使逻辑更具凝聚力并防止逻辑分散在不同的方法中?……等等等等无数这样的小技巧,组成了符合巴拉巴拉原则的代码。每次应用这些小技巧,代码的芭芭拉都会增加一点点。当应用世界上所有的小技巧时,就可以编写等等等等代码。也就是说,这是一个积累的过程。当积累了足够多的技巧,代码就会变得完美。毕竟即使是Facebook这样的大公司,从mixin到高阶组件再到renderprops再到Hooks,即使是他们也在苦苦寻找实现巴拉巴拉原则的技巧。大部分业务代码编写者感到困惑是很自然的。但是,与上面列出的示例不同,还有一些技巧会显着影响代码的质量。当前的前端框架将数据和UI分离。更改数据,UI将自动更新。缺少不会关心的框架作者,但是业务代码编写者每天都要面对一块:业务逻辑写在哪里?以Vue为例:用Vue组件编写会导致业务逻辑和UI强耦合,导致业务逻辑被迫根据不同的页面分散在不同的UI组件中。因此,目前最常见的代码编写方式不仅不符合巴拉巴拉原则,而且还符合反巴拉巴拉原则。正确的做法应该是UI组件中只存在与UI相关的逻辑。所有业务逻辑都用Vuex编写,UI组件只负责发布操作和变更。Vuex一直在高速变化和更新。这样,UI组件自然会根据设计师的设计分散在不同的组件中。业务逻辑也会根据产品设计分散在不同的Vuex模块中。而且,因为有了高内聚的业务逻辑代码,低内聚高耦合代码带来的维护难度不复存在,写新需求和调试的过程会变得非常自然。具体写法可以去看vue-element-admin模板的源码。
