开源项目开发基本知识


1. IP (intelligent Property)意识, 项目中经常会引用他人模块的代码,另外自己的项目也可能会被其他人用到,这里就有一个知识产权问题,具体而言就是source code的license或者软件的patent问题。 一般项目开始之前就得设计好 IP plan,这需要考虑到项目中其他人/公司的代码是什么License(例如GPL,LGPL,BSD),以及从商业目的出发,自己准备如何license自己的code,这种plan一般都要经过上级部门批准,尽量绕开一些知识产权问题。我们经常看到project下面有Author文件,其中会有版权声明,另外source code文件的开始都会有license header,其中包括了具体的license信息。


2.  开源社区的合作开发模式,很多开源的项目都会放在知名的开源社区,例如freedesktop,Gnome,以方便全球程序员联合开发,他们有一套自己的资源去协作所有人的工作:

   1)Maillist, 用于讨论具体项目的开发,相当于是一个邮件群,开发者经常会在里面发自己的patch,所有的群成员都可以看到这个patch,并可以对其提出意见和建议,patch的作者可能会依据讨论的结果重新写patch,重发,重新讨论,直到project maintainer认为patch OK了,他才会去merge这个patch(当然,也有可能根本没人鸟你的patch,因为大家都很忙,没空也没义务去看或者merge你的patch,所以在开源社区混,很需要耐心)

   2) Bugzilla,用于report bug,所有人都有权限在上面报bug,也可将patch放在上面,可以在下面comments。

   3) Project repo,一些社区有自己的专门code server,用于存储项目,例如freedesktop,当然也可以使用一些免费通用的code server,例如github,gitorious等等。


3. 代码质量和安全

     开源项目对代码的质量和安全会要求比较高,所以自己提交的patch最好能follow 项目已经定下的代码风格,并能用一些工具去检查代码中的常见技术和法律风险。

    1) 对于代码风格,一般包括代码缩进风格和 函数变量命名规则, 以统一格式可以使得code看起来更加规范和美观。

        Linux下常用的代码缩进格式工具有Indent和astyle,它们可以控制代码如何缩进,空行,空格,设置comment格式等等,用户可以直接指定某一中style,如K&R , Linux indent style(可以参考我的博文: Indent tool and K&R style), 一般可以在code repo里面添加一些脚本来检查 code indent format。

         函数和变量的命名也要符合一定的规则, 具体style有很多种,选择一种,然后写code时候都按照style来。

         Doxygen 文档,如果希望自己的code能很便捷的生成一些帮助文档的话,需要按照doxygen格式去添加代码注释,尤其是针对函数和变量的定义说明,方便读者快速查询函数 功能或者变量意义。       

    2)对于代码安全,

          技术安全, 最好是能用一些工具(例如clocwork)做些基本的检查,避免内存泄露或者基本的逻辑错误。

          法律风险,如果有条件的话,可以对自己项目的code做个IP scan,检查是否有从其他地方copy过来的code,坚持是否违反了 IP plan,如果是,就需要想办法解决


4.  精通代码管理工具,例如git



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值