关于“造轮子”

这两天看了不少开源Java项目和框架,确实对“造轮子”有了更深的理解。

外界人总爱说程序员喜欢重复造轮子。

显然,车轮子是圆形的,这是大家公认的,最合适的形状。而你非要发明另一种形状的轮子,这种行为就叫「重复发明轮子(Reinventing the wheel)」,即「造轮子」—— 明知道你做的不可能比前辈做得更好,却仍然坚持要做。

放到编程中,就是说业界已经有公认的软件或者库了,你明知道自己不可能比它做得更好,却还坚持要做。作为练习,造轮子可以增加自己的经验,很多事情看起来简单,但只有自己动手,才会发现其中的难点。

当然实际开发中也有很多情况不得不造轮子,比如希望做到「自主知识产权」、刷 KPI 之类的;或者造轮子的人真的觉得自己开发的版本有更强的功能、更好的性能也说不定呢。

只不过,作为普通是使用者,在选择这种“轮子”的时候就要注意了:开源的框架,是否有像他们宣传的那样强大的功能,和主流框架相比,是否拥有完善的体系和文档社区。举例说,现在Java Web框架较为流行的是Spring体系,包括Spring MVC、Spring Boot、Spring Cloud等,再搭配持久层的mybatis、hibernate,前端的react、angular、vue等等,这是相对成熟的一套前后端分离框架。同时,圈子里也存在类似JFinal、diboot一类的开源框架。与大型框架体系相比,他们有自身的优点,可能是体量小、配置简单等,但是在选择学习时也要注意,是否有充足的时间成本去学这些框架,是否有足够的技术文档支持这种框架开发中的问题解决。

所以在初学阶段,相比造轮子、用轮子,更觉得应该去多学习模型、理论基础,抛开“现象”看“本质”。 

posted @ 2020-07-21 13:50  年少莫听李宗盛  阅读(306)  评论(0)    收藏  举报