关于开源,关于 GitHub, 关于 Android
介绍下个人觉得如何用开源项目及一个开源项目的标准,欢迎吐槽。
1. 开源发展
首先看两张图
第一张是 2007-2013 年全球智能手机增长曲线,第二张是 2008-2013 年 GitHub 上开源项目总数的增长曲线,大家注意看下 Android 设备增长曲线和 GitHub 增长曲线,我不确定两者是不是有一定联系,但我经常告诉 Andorid 开发的小伙伴们他们比 iOS 开发幸福,因为 Android 开源,因为 Java 开源。
2. 怎么用开源项目
关于这个问题年中我吐槽过,如下
所以针对 Android 我们拉了个协作的开源项目,先从原理分析开始
不出意外元旦后这个项目就有第一期的产出,感谢几十位辛苦优秀的小伙伴们,你们是最棒的。
那么说下我对开源库选择的考虑
(1) 开源协议
谨慎使用 GPL 协议,GPL 协议规定使用了该开源库的代码也必须遵循 GPL 协议,即开源和免费。更多请大家自己 Google “gpl bsd apache mit license”。
(2) 原理
必须能驾驭该库,这就要求必须了解该库的实现原理,关于这点请任何人不要跟我争辩。
(3) 功能、文档、稳定性、扩展性
功能是否能满足业务需求,是否足够稳定(稳定性测试)、文档是否齐全、扩展性是否足够。
性能要求较高库需要性能对比测试。
(4) 源码修改
a. 个性化业务带来的修改
请尽量使用 Wrap 方式,而不要直接改源码。实在绕不开,请在 Git 上打上 Tag,并注明详细原因。
b. 通用需求的修改
请按源项目要求修改代码,并提交 PR,反馈回开源社区,请求合并进主分支。
源代码修改原则只有一个不要让你 clone 的副本脱离开源广袤的大陆,变成孤岛。
(5) 其他
GitHub 现在四五百 star 的开源项目很水的多的是,对于一个项目大家可以更多关注 contributors、commits、Pull Requests、Issues、Fork 个数。
3. 一个开源项目应该包含哪些内容
(1) 合适的文件和代码
合适的文件指的是要有自己的 gitignore,合适的代码是指代码要符合代码规范(如很简单的四空格缩进很多 Java 开源项目都做不到)。
(2) README.md
README.md 是一个项目必不可少的,其中要求示例、文档、引用方式、开源的 Licence 齐全。对 Android 来说示例可能包括 Demo APK、截图。引用方式可以是 Maven 和 Gradle 引用方式。
(3) 联系方式
总有很急的 Bug 需要 GitHub Issue 外的即时沟通。
(4) 开源协议和精神
声明开源协议。同时请大家遵守开源精神,遵守其他人的劳动成果,如果有借鉴或是部分拷贝其他开源库,请在明显地方声明感谢!
欢迎大家讨论吐槽,一起把开源做的更好。=
建议继续学习:
- 15个最好的免费开源电子商务平台 (阅读:10994)
- 介绍几个QQ开源项目及协议下载 (阅读:8884)
- 晒晒我们的开源项目 (阅读:4405)
- GitHub中的README.MD文件编写语法 (阅读:4204)
- 我对开源的看法 (阅读:3812)
- github 上 Fork 别人的项目后的常用的操作指南 (阅读:3749)
- 谁说开源不能赚钱? (阅读:3727)
- 如何选择开源许可证? (阅读:3658)
- 为什么GPL是更好的开源许可证? (阅读:3079)
- 三款面向 Amazon S3 的开源文件同步工具之对比 (阅读:3079)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:Trinea 来源: Trinea
- 标签: GitHub 开源
- 发布时间:2016-03-22 22:15:51
- [55] Oracle MTS模式下 进程地址与会话信
- [54] IOS安全–浅谈关于IOS加固的几种方法
- [53] 如何拿下简短的域名
- [52] Go Reflect 性能
- [51] android 开发入门
- [51] 图书馆的世界纪录
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [47] 【社会化设计】自我(self)部分――欢迎区
- [40] 程序员技术练级攻略
- [31] 视觉调整-设计师 vs. 逻辑