编程规约思考

前天有开发者反馈在写React时,越写越烦,有时明明直接操作DOM很简单直接,却非要考虑所谓的React哲学,兼顾性能、兼顾语法还要考虑优雅,搞这么麻烦为啥。

其实这个问题是一个软件工程问题,常年的编程经历里我们始终在面对这种问题,始终在做取舍。

记得2016年我的第一份前端工作时,当时有个项目是Vue和jQuery混用的,Vue甚至还不是1.0正式版。在今天看来, Vue和jQuery混用是一个绝对是个灾难,是一个不优雅的存在。但是在当时,我们没有觉得有严重的问题。现在回想当时为何没有出现严重的不能解决的问题,一是项目的复杂度没有到一定程度,二是当时的Vue也不是如今的虚拟DOM,所以jQuery直接操作真实DOM没有出现问题。当然,混用的话也是会可能出现DOM更新时机的问题,这就涉及到浏览器渲染原理和JS线程问题了,需要注意处理。

如今很多项目都越来越复杂了,从编程实践上来讲混用会导致潜在的BUG,所以一个项目只选择一个框架,并且按照该框架的规约来进行开发。

编程语言与框架都在不停发展,从Vue2到Vue3,从mysql5.6到mysql8,那为何还是有很多开发者选择Vue2和mysql5.6呢?一个原因是虽然新版本带来了很多新特性,但大量新特性导致同一个实现可以有多种写法,多人合作时就带来了代码复杂混乱的问题,使用多年前的版本就大大减少的这种问题发生的可能。

如果想要使用新版本怎么办,那就需要项目负责人指定规约进行工程化处理。选择了现版本的React,我们就必须要按照其所谓的React哲学来进行规约, 兼顾性能、兼顾语法还要考虑优雅,尽管会在某些时候失去一些自由,但会为项目带来更长的生命周期。

选择了框架带来的便利,就要接受某些自由的失去,这也就是所谓的“软件工程,没有银弹”。

笔记与思考

发表评论

邮箱地址不会被公开。 必填项已用*标注