少一些大而全, 多一些小而精 — 我的开源观

看过了太多包含N多框架的,功能齐全的开源项目,总都是在宣称此框架能XXX,XXX.
开源挺好.
结果都一样, 走入另一个软件开发的沼泽继续不能自拔,深陷其中,无能更改与纠正.

软件是复杂的,复杂到超出了绝大部分程序员的能力,太多的广度意味着精力的分散,缺少深度
与比别人更浅层次的理解,太多的仅限于会使用,会弄,会满足当前项目要求,甚有直接从培训
学校搬出来的开源.
写程序,码代码,与做人做事毫无区别,你的时间在哪,成就就在哪,公平,公正.
迫于对工作的需要而不断地增加框架,整合框架,会用即是目的,功能实现即是高手.然后开源.
殊不知对软件,编程的理解少的可怜.天天一说便是熟悉这个,熟悉那个,一问深点啥也不知,
毫无羞耻感——最垃圾的程序员

对于什么是编程思想,什么是继承,封装,多态等等,说很容易,弄个简单的例子也很容易(网络
强大的好处之一),可真到了实际运用中,实际项目中,全然变成了以功能实现为目标,哪还知道
何谈抽象,何谈解耦,何谈扩展性…
说的都是人,可人才是根本的问题所在,人的能力,素质,身体,思想跟不上,何谈有小而精的深度,
精度.

“重复发明车轮”依旧是软件从业人员的常态.若把这提升到一个人的人生态度,就能更反映出有多少人是把软件编程当作一份职业,谋生的手段,而不是真正的热爱与自己的兴趣所在.
想想真是悲哀,那些一生没有追求过自己,三四十年的职业生涯都没干过自己最有兴趣,最有成就感的事——程序员首不其冲,无以回避.

你的精力,身体,资源,始终是有限的,过多的大而全只会在让你始终飘浮在一框架或技术的表面,
难以深入而有惊人的见解(有惊人见解的才是值得开源的).我曾对一些程序员说”如果你真正理解了MVC,那么你也能实现一个自己的MVC框架,而不管你用什么语言,什么方式”.只有真正的理解,思考,思索,再经过长时间的实践,结合书本,才能真正形成你的思想——你的编程思想.
每个程序员都有自己的编程思想,各不相同却又求同存异,健康发展.

个人认为开源首先要有”拿来用”精神,要勇于承认别人做的好的东西,尽量多的重要并吸收; 其次要有简化的精神,太深奥的技术(如class编译,加密算法)如何能用通俗的易于理解的话语来描述是开源的又一核心所在(能达到这一点的一般称为master),毕竟使用开源的,大部分是普通的程序员(即会用的程序员).
最后,开源一定要有专注精神,专注是社会进步的基石,只有专注才能做出精而深的开源作品.任何的开源都要像商业项目一样有明确的需求,要解决的问题,要达到的目的与效果,并坚持长久,不断优化,完善文档,使用说明等,才有可能成就优秀的开源作品.

基于现代的代码库,协作平台的广泛使用,要创建一个开源项目已是容易之更容易.你开源的是一件作品(而不只是你的代码),是你的编程水平,文档能力,综合水准的深刻体现.
对待开源的态度,即等于你对待软件编程的态度;是否成就优秀的开源,是否成为优秀的软件工程师,也是你人生的完全体现.

2017-12-12 凌晨

Leave a Comment.