====================================================================
后记:
我们看到球的一面的同时,也一定看不到球的另一面。
我们都是从个人的经验和个人的体会出发去认识客观事物。客观事物具有多面性,我们有限的经验和知识几乎不可能以点代面地去做武断的判断:非此即彼,非是即非。
评论的内容中,有一些以排斥他人观点的方式来强调个人观点,个人以为是不恰当的。
吸收,学习他人的知识和经验,不应该用这样的方式与人交流。
====================================================================
对以前的Web应用进行维护和功能增加。该应用使用了Dojo.js库。
当时,由于Dojo库不能满足项目需求,曾对其进行了部分修改,修改的地方很零散。修改的人对Dojo.js也是一知半解,一边尝试一边修改。
没有留下任何文档。
于是乎,Dojo.js不再是那个开源的,不断被更新升级的Dojo.js了,变成了特定应用下的一个特定库。
可怕的是没有人对它有超过10%的理解。
自己不能掌控的东西都是心存疑虑的,不是吗?
我猜想可能90%以上的网络应用了使用了JQuery,Dojo.js之类的第三方库。
更大胆滴猜想90%以上的使用者没有去读这些库的源代码,即便读了,也读不懂;即使懂了,也不会修改;即使会修改,也不会去改。
网络应用需要前端代码尽量的体积小巧,能够快速在网路上传输。
通常,我们的应用只是使用了第三方库中很少的一部分,其余大部分是冗余的。体积变大,是副作用之一。
为了快速开发,我们使用第三方库。通常是不会深入了解其内部构造和实现原理的。使用了自己不能掌控的代码,是副作用之二。
进而,对于第三方库的升级有可能带来的风险,是无法完全掌控的,这是副作用之三。
有人说,这是为了避免重复制造轮子。当然有道理。
不过在真实的实践中,需要谨慎衡量代价。
不去造一个适合自己的轮子,而是拿来主义,仅因为这样省事吗?
难道不是想象或事实中的造轮子很难?
如果这个轮子的制造没有那么复杂,没有那么难呢?你会考虑重复造轮子吗?
一味地强调“不要重复造轮子”,这是“真理”还是“陷阱”?
越来越多的库,越来越多的框架。现在的软件开发者已经越来越远离最基础的技术,而是站在厚厚“平台”,“框架”之上,进行可以不用了解技术本质就能投入生产的流水线上了。
从某种角度来说,这是一种“进步”。而对于大多数从事软件开发的人而言,他们其实不是软件工程师,而是熟练的代码堆砌工人,是流水线的工人。
起码这对我而言,是非常糟糕的结果。不能让它发生。
少用现成的轮子(如果你能掌控它,不妨一用)。
造轮子能够近距离接触技术的本质,很有意义。
所谓技术者,应该对技术本质有了解,进而有所创造,你说呢?