关于“开源”的思考

简介:

最近,我经历了一次有意思的讨论。讨论的主题是代码开源,尤其是指那些用作商业用途的代码,比如用于创造你自己的产品或者服务的代码。以下就是这次讨论所得的,对“开源”的各个方面的思考。同时我也真心希望读者能进行讨论,分享自己的经验。

质量

不论何时,只要你决定公开地做一件事,你就会倾向于对其付出更多的努力,力求将其做好。不管是一场演讲,一次营销活动,还是一个软件项目。只要你想把这个软件项目公开,你就绝不会希望你提交的代码糟糕透顶,使你蒙羞。正因为其他人可以轻易地浏览,甚至评价你的代码,所以你会开始思考,自己到底在做什么。另一方面,你也希望写出漂亮而有效的代码,这样,其他的程序员会欣赏,并在他们自己的代码中使用你的方案,或者对你的代码提出修改意见。

社区

不管你使用的是哪一种技术,也不管你做的项目有多小众,可以肯定的是,只要你付出最低限度的努力,在一些论坛或者用户小组中为你的项目做点宣传,就一定会有人对你的项目感兴趣。当你的代码出现第一个分支,你就可以为自己感到骄傲,因为有人觉得你的代码有用。这整个过程实际上与写博客非常相似。所有人都很喜欢读那些能够解答我们正在面临的问题的文章。同时,我们也很喜欢使用一些免费和开源的软件,不管它是一款应用还是只是我们使用的一个库。既然其他的开发者们用他们自己宝贵的时间,分享了他们的成果,为什么我们不分享点什么呢?不要只做一名消费者,也做一名生产者吧: )。

透明

在应用中处理用户数据是常常发生的事,因此,透明就显得尤为重要。部分用户对于使用我们的服务会心生疑虑,因为他们会怀疑我们用他们的私人数据做一些不太正当的事。而当你的服务对象是政府部门时,这一点更是非常关键。如果代码不是开源的,势必会产生怀疑。反之,如果你的项目是开源的,那么所有人都能看到,并确认这款应用并没有侵犯他的个人隐私,没有泄露他的个人资料,也没有后门程序等。这可能是让用户相信你的唯一方法。

效益

不管你是独自开发一个项目,还是管理着一群人,随着你的项目越来越大,代码开源都将会给你带来巨大的效益。对你个人来说,你将会更容易获得一份好的工作。因为你的目标公司,可以轻易地浏览到你写的代码和你的思路。同样的道理,如果你经营的公司是代码开源的,那么,潜在的客户们就可以轻易的看到你的代码,并判断你的服务是否是他们想要的。

管理

不便于管理可能是开源的一个劣势。当你在管理一个大项目时,好几只团队同时工作,许许多多的参与者们都会提交他们的修改。此时,你就必须要做好两件事——首先,坚持按照最初的计划,进行核心部分的开发,同时你还应该处理所有发现的bug或者需要加强的地方,给所有员工的工作排出优先级。如果你完全不考虑(或者很少考虑)参与者的建议,那么很可能会民怨四起。所以,对于开源项目来说,这个问题可能比较棘手。

禁忌

当然,我们不能让所有的项目都开源。大部分的公司都不希望将代码公开,这是完全可以理解的。比如,有些项目可能使用了某种特别的算法,公开则有可能被盗用等等。不过,如果你只是在开发自己的项目,不要害怕与世界分享你的经验和知识。实际上,不会有人真的偷你的代码,而你却为整个开发者社区提供了高质量的代码。

本文来自开源中国社区 [http://www.oschina.net]

目录
相关文章
|
JavaScript Linux 编译器
c++开源协程库libgo介绍及使用
c++开源协程库libgo介绍及使用
|
前端开发 API 开发者
【raETable】🎉开源啦!开源啦!开源啦!🎉
【raETable】🎉开源啦!开源啦!开源啦!🎉
|
数据处理 开发工具
开源开源啦
开源开源啦
96 0
|
人工智能 自动驾驶
MiniGPT4,开源了!
MiniGPT4,开源了!
359 0
|
弹性计算 Dubbo Java
开源领域服务
开源领域服务
136 0
|
程序员
把自己开源了
用文字或视频记录自己的生活和想法,让我突然有种感觉,像是把自己给“开源”了。
182 0
|
Web App开发 测试技术 C#
C#开源汇总
原文:C#开源汇总 商业协作和项目管理平台-TeamLab 网络视频会议软件-VMukti 驰骋工作流程引擎-ccflow 【免费】正则表达式测试工具-Regex-Tester Windows-Phone-7-SDK Excel-读写组件-ExcelLibrary .
5437 0
|
大数据 云计算 Cloud Native

热门文章

最新文章