《借助开源项目,学习软件开发》
著作权申明
- 本作品选择采用:署名-非商业性使用-相同方式共享 的CC协议。
- 您可以:复制、发行、展览、表演、放映、广播或通过信息网络传播本作品。以及创作演绎作品。
- 惟须遵守下列条件:
-
署名 — 您必须按照作者或者许可人指定的方式对作品进行署名。
- 署名方式为:在转载或新作品开头的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与本作品在Huihoo Code上的原发地址建立链接
- 非商业性使用 — 您不得将本作品用于商业目的。
- 相同方式共享 — 如果您改变、转换本作品或者以本作品为基础进行创作,您只能采用与本协议相同的许可协议发布基于本作品的演绎作品。
-
署名 — 您必须按照作者或者许可人指定的方式对作品进行署名。
如何参与这个写作项目
- 注册成为 http://code.huihoo.com 的会员,并在申请说明里注明参与开源学习的写作项目。
- 发送邮件到zhuangbiaowei # gmail dot com,介绍你希望参与的章节,如果能够附上过去曾经写过的blog,则更好。
- 经过几次来回邮件的简单交流,我能够理解你的基本思想,则会帮你激活会员帐号,并将你的帐号加入这个项目。
- 共同编辑这个wiki。
- 如果对于这个写作的内容,有任何意见和建议,也欢迎随时给我发邮件。
- 在讨论区 可以发起各种话题的讨论。
- 在问题区 可以提交各种issues,监督进度。
- 如何认领某一小节并开始写作?先写起来,大家可以再后续帮助修改,先到先得。
目录
-
开始之前
- 这份文档的目标读者
- 基本条件
- 你需要明确的一些事情
-
开始
- 学习软件开发的几条主要途径
- 为什么借助开源学习是最有效的
- 选择一门语言
- 必须初步掌握的基本功
- 关于开发工具
- 关于开发工具的分类(by 李路)
- 各种参考资料
-
选择一个开源项目
- 到哪里去寻找开源项目
- 什么样的开源项目适合初学者
- 值得推荐给大家的开源项目
-
Hello World
- 下载源代码的N种办法
- 关于源代码管理与版本控制
- 寻找早期开源项目的源代码
- SVN、Git、Mercurial快速介绍
- 基于包管理的方式获取源代码
- 让代码运行起来
- Ruby版
- PHP版
- Java版
- Python版
- JavaScript版
- C/C++版
- 如何克服可能遇到的困难
- 下载源代码的N种办法
-
理解开源项目
- 静态理解
- 目录结构
- 包名与文件名
- 类名、函数名与变量名
- 注释与Readme
- UML图
- 外部文档
- 动态理解
- 输出日志
- 设置断点与单步跟踪
- 抛出异常
- 修改代码,破坏性尝试
- 主线与支线
- 寻找入口
- 跟踪关键流程
- 寻找挂接点
- 外围代码
- 必须存在的外围功能
- demo/example
- 单元测试
- 知其所以然
- 静态理解
-
修改开源项目
- 尝试修改代码
- 提出一个小小的需求
- 如果不能搞定,试试看能不能乱来
- 寻求认可的艰难历程
-
为开源项目做贡献
- 提bug与建议
- 帮助完善文档
- 提交代码(功能代码与测试代码)
- 周边代码(demo/扩展/子项目)
- 外部宣传
- 其他各种杂务
-
成为组织的一员
- 交流圈
- 组织结构
- 开源项目的组织方式*
- 基本礼仪
- 自己发起一个开源项目
- 延伸阅读
- 贡献者
- 开源问答
via:http://www.teamhost.org/projects/learn-with-open-source/wiki/Wiki
版权声明:本文为hnrainll原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。