• Learn Coding With Open Source
  • 介紹
  • 1. 前言
    • 1.1. 这份文档的目标读者
    • 1.2. 基本条件
    • 1.3. 你需要明确的一些事情
  • 2. 预备
    • 2.1. 学习软件开发的几条主要途径
    • 2.2. 为什么借助开源学习是最有效的
    • 2.3. 在学习一门语言之前
    • 2.4. 选择一门语言
    • 2.5. 必须初步掌握的基本功
    • 2.6. MOOC 课程
    • 2.7. 关于开发工具
      • 2.7.1. 关于开发工具的分类(by 李路)
      • 2.7.2. 各种参考资料
    • 2.8. 版本管理,包管理和语言环境搭建
      • 2.8.1. 下载源代码的N种办法
      • 2.8.2. 关于源代码管理与版本控制
      • 2.8.3. 寻找早期开源项目的源代码
      • 2.8.4. SVN、Git、Mercurial快速介绍
      • 2.8.5. 基于包管理的方式获取源代码
      • 2.8.6. 让代码运行起来
      • 2.8.7. Ruby版
      • 2.8.8. PHP版
      • 2.8.9. Java版
      • 2.8.10. Python版
      • 2.8.11. JavaScript版
      • 2.8.12. C/C++版
      • 2.8.13. 如何克服可能遇到的困难
  • 3. 如何选择开源项目
    • 3.1. 到哪里去寻找开源项目
    • 3.2. 什么样的开源项目适合初学者
    • 3.3. 值得推荐给大家的开源项目
  • 4. 理解源代码
    • 4.1. 寻找文档,熟悉功能,先玩一遍,记下功能。
    • 4.2. 静态理解:
      • 4.2.1. 目录结构
      • 4.2.2. 包名与文件名
      • 4.2.3. 类名、函数名与变量名
      • 4.2.4. 注释与Readme
      • 4.2.5. UML图
      • 4.2.6. 外部文档
    • 4.3. 动态理解
      • 4.3.1. 输出日志
      • 4.3.2. 设置断点与单步跟踪
      • 4.3.3. 抛出异常
      • 4.3.4. 修改代码,破坏性尝试
    • 4.4. 主线与支线
      • 4.4.1. 寻找入口
      • 4.4.2. 跟踪关键流程
      • 4.4.3. 寻找挂接点
    • 4.5. 外围代码
      • 4.5.1. 必须存在的外围功能
      • 4.5.2. demo/example
      • 4.5.3. 单元测试
    • 4.6. 知其所以然
  • 5. 修改开源项目
    • 5.1. 从需求出发,修改代码
    • 5.2. 顺藤摸瓜,寻找可以参考的代码
    • 5.3. 动一个大手术——结构性的调整
    • 5.4. 寻求认可的艰难历程
  • 6. 为开源项目做贡献
    • 6.1. 提bug与建议
    • 6.2. 帮助完善文档
    • 6.3. 提交代码(功能代码与测试代码)
    • 6.4. 周边代码(demo/扩展/子项目)
    • 6.5. 外部宣传
    • 6.6. 其他各种杂务
  • 7. 成为组织的一员
    • 7.1. 交流圈
    • 7.2. 组织结构
    • 7.3. 开源项目的组织方式
    • 7.4. 基本礼仪
  • 8. 自己发起一个开源项目
  • 9. 延伸阅读
    • 9.1. 指导开发者快速学习编程的网站推荐
  • 10. 贡献者
  • 11. 开源问答
Powered by GitBook

Learn Coding With Open Source