技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Linux --> 我对开源的看法

我对开源的看法

浏览:3591次  出处信息

    有这么一种观点:程序员要想提高技术水平,多读开源代码、多参与社区讨论与开发就好了。我以前很赞同,现在发现不是这样。

    panpan和xuhui对我的批评是,多看看技术以外的东西。我的理解是这样,很多东西它之所以这么做,不是因为技术上是最优的,而是因为工期、领导的旨意、需求变更留下的历史问题等等。这些原因是无法通过阅读代码而得知的,我只能看到实现细节,却不能知道作者的设计意图。像Qt、leveldb这样的项目,名为开源,但是它并没有采用开放式的开发。只是这个公司将其技术成果共享出来了而已,中间的过程完全不可得知。举个例子,Nokia和Intel说要合伙做一个叫Meego的操作系统。Intel说好啊,我对Linux熟,我来优化底层系统,Nokia你来搞QT及上层软件。结果Intel很郁闷的发现,Nokia的Meego项目组有两套BUG管理系统,一套是对内的,只有Nokia自己的员工可以访问(intel的不行),一套是对外的,放在社区里让任何人都可以去提BUG。然后Intel就怒了,你这让我们怎么合作?Nokia也很委屈,因为对任何一个手机厂商来说,未上市的手机的硬件细节是很重要的商业机密,这些东西很容易通过BUG管理系统中的日志文件和coredump流露出来。所以,大多数软件厂商最终选择的都是Nokia这样的做法。

    很多时候要想清楚自己的目的,是让项目尽快完工,还是追求纯技术?如果是后者,不如老老实实在学校或者研究所呆着。做项目最重要的不是解决一个多么大的技术问题,而是尽可能的把所有技术困难都绕开,然后再解决那些不得不解决的。这时便会引申出一个重要原则:Simple is the best。

    读代码跟读小说不一样。写小说的人心里一定是有读者在的。所以每拿起一本古典小说的时候,就仿佛穿越了时空在跟一个已经死去的人对话。而代码不一样,代码主要还是给机器读的,以及给自己读。举个例子,如果你对C++的模板推导很擅长,你会因为这门技术太晦涩,有人有可能看不懂,而不用吗?所以如果想通过代码猜透作者的设计企图,不管能不能做到,总之为其花费的代价实在是太高。那么有别的方法吗? 有啊! 跳到这个公司去,中午跟作者一起吃个饭,随便套两句,就出来了。

    对我自己来说,很有幸能在一流的互联网公司工作。如果我想去百度、腾迅、阿里中的任何一家,应该都是有机会的。所以,总有比我资深的老员工,如果有幸遇到一个比较开明的,跟着这样的人做项目,会学到很多从开源项目、从书本学不到的东西。

    这些,大概就是我跟1年前之比的转变吧。

建议继续学习:

  1. 15个最好的免费开源电子商务平台    (阅读:10850)
  2. 介绍几个QQ开源项目及协议下载    (阅读:8690)
  3. 晒晒我们的开源项目    (阅读:4189)
  4. 谁说开源不能赚钱?    (阅读:3450)
  5. 如何选择开源许可证?    (阅读:3399)
  6. 为什么GPL是更好的开源许可证?    (阅读:2923)
  7. 三款面向 Amazon S3 的开源文件同步工具之对比    (阅读:2925)
  8. 开源在线编辑器推荐    (阅读:2746)
  9. 五大开源许可协议    (阅读:1692)
  10. 从WordPress看开源平台的发展    (阅读:1609)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1