程序员都应该搞开源

     现在市面上的程序员大致可以分为两派,微软一派,开源一派。微软一派有这样一些大致属性:比较依赖编程环境,喜欢环境一体化(操作系统+IDE+数据库+服务器),喜欢所见既所得,喜欢破解和注册码,喜欢n个x组件,喜欢拿来就用,排斥非微软的东西。开源一派以linux,java,php程序员为主,有这样一些大致属性:有合作欲望,喜欢有n种选择,喜欢免费非破解,喜欢探究其本质,喜欢把所有程序都做成公共组件并开源给他人共享,喜欢别人对自己东西作出评价并做n次修改,喜欢不断重构并以此为乐,厌恶依赖与某件事物,厌恶使用那些不能查看源代码的东西,害怕失去控制力。
   从我总结的这些属性当中,不然看出我是偏向开源一派的。虽然我的水平还不足以充当这个大家庭中一份子,但我坚定的认为,如果一个程序员想成为大家式的人物,从事开源是最好的途径。可能开源社区没有微软社区那么平易近人,没有那么多上手资料,需要n种选择,需要n个配置,需要研究源代码,并且很可能会延误工期,但这一切都是在不断地训练你各项素质。最近我在开发web报表的时候就深刻地体会到这一点,最开始我定下三种方案,第一种是用x组件,第二种是自己设计组件和框架,第三种是不但要满足项目需要,还要把自己设计的东西做成开源通用框架。虽然三种方案做成的东西在项目中虽然效果是一样的,但它的难度,对程序员的要求以及对程序员将来的发展是决然不同的。一些微软派(不包括高手)想必会选择第一种方案,因为他们习惯如此。一些伪开源派(比如我),就想选择第二种,因为只有自己设计的东西才是放心的,才是最适合项目需要的。第二种方案基本上实现了,但当我想把它改成第三种方案时,发现其难度可不小,因为为了省事,我使用了很多ssh(struts+spring+hibernate)的东西,并且和项目其他模块耦合度很高,所以要想做成通用框架,就必须用最朴实的方式(jsp+xml)完成ssh所做的事情,并且要重新设计架构,降低耦合度。虽然很麻烦,但我一定会尝试这一步,因为我是向往开源一派的,并且如果我做到了,我的开发能力会有一个很多的提升。
   所以,我非常推荐同行们都能尝试一下开源方式,这会让你更开放,接触到更深刻的东西!

你可能感兴趣的:(spring,框架,Hibernate,linux,ssh)