开放文档:《借助开源项目,学习软件开发》。
Open document: learn software development with the help of open-source project

诚邀您的参与!
We sincerely invite you to join us!

著作权申明

LICENSE

  • 本作品选择采用:署名-非商业性使用-相同方式共享 的CC协议。
    The content in this repo is licensed CC-NC-BY-SA.
    • 您可以:复制、发行、展览、表演、放映、广播或通过信息网络传播本作品。以及创作演绎作品。
      Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
    • 惟须遵守下列条件:
      • 署名 — 您必须按照作者或者许可人指定的方式对作品进行署名
        Attribution - you must give the credit the author or licensor have made
        • 署名方式为:在转载或新作品开头的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与本作品在Github上的原发地址建立链接
          If supplied, you must provide the name of the creator and attribution parties, a copyright notice, a license notice, a disclaimer notice, and a link to the material.
      • 非商业性使用 — 您不得将本作品用于商业目的。
        NonCommercial - You may not use this work for commercial purposes.
      • 相同方式共享 — 如果您改变、转换本作品或者以本作品为基础进行创作,您只能采用与本协议相同的许可协议发布基于本作品的演绎作品。
        If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.

目录

Contents

  1. 开始之前
    Before Start
  2. 这份文档的目标读者
    Target Audience
  3. 基本条件
    Basic Requirements
  4. 你需要明确的一些事情
    Something Need to know First
  5. 开始
    Start
  6. 学习软件开发的几条主要途径
    Several Main Methods of Learning Software Development
  7. 为什么借助开源学习是最有效的
    Why Open-source is Helpful
  8. 选择一门语言
    Choosing a Language
  9. 必须初步掌握的基本功
    Basic Skills You Should Have
  10. 关于开发工具
    On Development Tools 1. 关于开发工具的分类(by 李路)
    Classification of Development Tools 1. 各种参考资料
    References
  11. 选择一个开源项目
    Select an Open-source Project
  12. 到哪里去寻找开源项目
    Where to Find Open-source Projects
  13. 什么样的开源项目适合初学者
    What Kind of Open-source Projects are Suitable for Beginners
  14. 值得推荐给大家的开源项目
    Highly Recommended Open-source Projects
  15. Hello World
  16. 下载源代码的N种办法
    Methods of Downloading SC 1. 关于源代码管理与版本控制
    On Source Control and Version Control 1. 寻找早期开源项目的源代码
    Find SC of Early Open-source Projects 1. SVN、Git、Mercurial快速介绍
    Whirlwind Introduction to SVN, Git and Mercurial 1. 基于包管理的方式获取源代码
    Way to get SC Based on Package Management
  17. 让代码运行起来
    Make It to Run 1. Ruby版
    For Ruby users 1. PHP版
    For PHP users 1. Java版
    For Java users 1. Python版
    For Python users 1. JavaScript版
    For JavaScript users 1. C/C++版
    For C/C++ users
  18. 如何克服可能遇到的困难
    Overcome the Problems You May Encounter
  19. 理解源代码
    Understanding the Source Code
  20. 静态理解
    Static Understanding 1. 目录结构
    Directory Structure 1. 包名与文件名
    Package Name and File Name 1. 类名、函数名与变量名
    Class Name, Method Name and Variable Name 1. 注释与Readme
    Comments and README file 1. UML图
    UML Diagram 1. 外部文档
    External Documents
  21. 动态理解
    Dynamic Understanding 1. 输出日志
    Output Logs 1. 设置断点与单步跟踪
    Setting Breakpoint and Stepping Through 1. 抛出异常
    Throwing Exception 1. 修改代码,破坏性尝试
    Try to Change
  22. 主线与支线
    Main Line and Branch Line 1. 寻找入口
    Where to Begin 1. 跟踪关键流程
    Tracking Critical Process 1. 寻找挂接点
    Find the Mount Point
  23. 外围代码
    Surrounding code (?) 1. 必须存在的外围功能
    Sub-functions Must Existed 1. demo/example 1. 单元测试
    Unit Testing
  24. 知其所以然
    Knowing How
  25. 修改开源项目
    Modify the Open Source Project
  26. 从需求出发,修改代码
    Changing from Requirements
  27. 顺藤摸瓜,寻找可以参考的代码
    Finding Codes for Reference by following clues
  28. 动一个大手术 -- 结构性调整
    Making bigger changes -- Structural Adjustment
  29. 寻求认可的艰难历程
    Hardships of seeking Approval
  30. 提bug与建议
    Finding Bugs and Making Proposals
  31. 帮助完善文档
    Helping to Improve Documentation
  32. 提交代码(功能代码与测试代码)
    Pushing Your Codes (Function Code and Test Code)
  33. 周边代码(demo/扩展/子项目)
    Surrounding Code (Demo/Extension/Subproject)
  34. 外部宣传
    Promotion
  35. 其他各种杂务
    Other Odd Jobs
  36. 成为组织的一员
    Join the group
  37. 交流圈
    Partners
  38. 组织结构
    Organization Structure
  39. 开源项目的组织方式*
    Organization of Open-source Project
  40. 基本礼仪
    Basic Etiquette
  41. 自己发起一个开源项目
    Create an Open Source Project
  42. 更多
    Read-more
  43. 贡献者
    Contributor
  44. 常问问题
    FAQ