- 文/Roy T.Burns(爱笑的小pp)
- 源/www.royburns.cn
- 链/www.royburns.cn/wei-shi-yao-cheng-xu-yuan-yao-can-jia-kai-yuan-xiang-mu/
多结识更多优秀的程序员。
通常能把本职工作做好并且还有精力去做开源项目的人,能力跟精力都是相当厉害的,多认识一下这样的人可以学到很多。
了解最先进的团队的工作模式。
一般开源组织都是自组织团队,分工明确,成员积极。团队中的每一位成员都是团队的Owner,都为团队的目标负责,在团队事务上没有一位绝对的管理者,每位团队成员都可以作为团队事务的管理者,组织团队中的所有成员一起完成团队事务。
了解最前沿的编程技术、设计模式与系统架构。
一般开源项目都是为了做研究,就是在某一领域的尝试,会用到很多最新的技术、框架、架构等等。
无形中约束自己的代码规范。
如果说代码是程序员的语言的话,代码规范就是翻译软件。保证程序员之间的正常交流。
这个。。。有经验的程序员都有这种体会,就是。。。没人愿意去接手别人的代码,也讨厌别人修改自己的代码。其中一个主要的原因就是代码规范的不一致。我们工作的代码一般都是写个自己看的,稍微大一点的公司可能会有代码评审,leader或者其他组员也会看到,但是这也形成不了绝对的压力,因为基数太小了。
如果是在一个开源项目,你的代码是要给项目里面的几十个人看的,而且相互之间改动代码的几率会非常大,如果你的代码不规范,文档不完善,大家就会跟你讲,说你的代码写的太烂。而且你也会看别人的代码,将心比心你会有同样的感受。另外,如果你有幸参加的是比较大型的项目,说不定有成千上万的new guy fork你们的项目,拿去学习,如果写的太烂,你自己也觉得不好意思吧。
国际化。
这个也是我比较看重的。基本上国外的项目,保守点说80%的项目都在产品的设计初期就开始支持国际化,所以你们发现他们的这块做的非常完善。而我们国内的程序员很少有重视这块的,也难过,国内的市场就够大了,谁还愿意去国外占领市场呢。你真正做起来这块,其实发现这块的工作量并不大,只是在产品设计之初设计预留一个接口就好了,相比你后期要做国际化,重构这一块,简直可以忽略不计。当初我们做***的时候,国际化这块就头疼死,一开始这块没弄好,到后来就是各种山寨,不同国家的字符集转换,翻译。
标准化、工程化、流程化
- 最明显的就是项目的各种config,是否方便运维部署。
- 接口的定义是否规范,是否方便测试。
改善我们的心态。
有个笑话,就是国外一开源,我们就创新。目前开源社区,国外的声音还是比较大的吧,优秀的开源项目大部分都是国外的团队在做。这个世界是合作与竞争并存的,我们也应该让国外的团队听到国内的声音。
多阅读优质的开源代码
即使没机会参加开源项目,要尽量留出点时间阅读优质的开源代码。
开源好去处
oschina.net - 开源中国,有事找红薯。
GitHub - 全球最大的同性交友社区?GitHub是与朋友、同事、同学和陌生人共享代码的最佳场所。
StackOverflow - StackOverflow是面向专业程序员和技术爱好者的问答网站。
OpenHatch - OpenHatch是一个非营利的平台,致力于通过社区、工具和教育聚集潜在的自由软件爱好者。
SourceForge - SourceForge是开源软件开发者进行开发管理的集中式场所,也是开源软件开发平台和仓库。有点老了,大部分人都迁移到Github上了。
Google Code - 应该差不多全都迁移到Github上了吧?