✿ Product:产品代码,一个可用的产品代码。比如一些开源软件,还有当前工作整天面对的代码。
✿ lib:库代码,对某一种功能封装的模块,一个工具库。
✿ framework:框架代码,某种业务常用逻辑的封装,就形成改业务逻辑的框架库。比如,游戏客户端来说就是游戏引擎,MFC是window下的一个GUI框架,等等。
三种代码的编写与设计,抽象层次依次递增,对编写者能力的要求也依次递增。
无论是作为产品、库、还是框架,代码发布的形式一般都有下面的内容:
✿ Source Code:源码
✿ Product/Example/Demo:产品/示例/演示
✿ Test:对源码的全面单元测试(现在项目的产品代码几乎是没有的,质量无法保证,只能靠功能测试)
✿ Docs:分析/设计/代码/测试 文档。方便后来者学习。
开发的正向流程:
分析 -> 设计 -> 编码 -> 测试
每一步的成果:
✿ 分析:分析文档(需求分析,可行性分析,等)
✿ 设计:整个架构设计文档
✿ 编码:程序接口文档 + 源码
✿ 测试:测试用例等
✿ 最终成果:Source Code
理解程度:
★ 知其然。知道是干什么用的,有什么优缺点。对多数代码的理解都应该在该层次,以后做东西时候,可以权衡使用那个代码,并且作出合理选择,然后再进一步学习。这样,可以了解许多新技术。
★★ 可以熟练使用,但不知其所以然。对经常使用的代码,达到这个程度就可以了。
★★★ 知其然,并且知其所以然。不但要知道是干什么的,会熟练的使用,还要知道来龙去脉,整个代码的架构设计,都要了如指掌。非常感兴趣,或着非常重要的代码,可以进入深入的分析。加深理解。学习代码的封装技巧和架构。 根据理解程度的不同,方法肯定不同了:
** 对于有详细文档的代码**:
★ 粗略浏览文档,特别注意介绍部分的阅读。不必计较细节。
★★ 详尽的学习文档,和例子源码的学习,了解如何正确的使用。某些部分文档没有描述清楚的,可以参考下源码,切勿深陷源码的泥潭,大体浏览即可。
★★★ 在上面的基础上,研究源码。可以正向,根据设计来研究代码,也可通过源码逆向出架构和设计。
** 对于没有文档或者文档简洁的一塌糊涂的代码**:
★ 运行几个可执行的东西,看看这个玩意到底是个什么。没有可执行文件,那就只能大体浏览下源码了。看看文件里面的注释之类的就可以了。不必深究代码到底是什么。
★★ 要熟练使用该代码,必须要读代码了,先模仿已有的各种写法。若有不明白之处,可以问问别人,查查资料,或者跟进实现代码,看个究竟,也不要纠结于具体实现,只要保持自己在应用层就可以了。
★★★ 想要知道一切,只能深入研究代码了。
注意:上面的方法还是比较笼统的。需要进一步细化。
学习的过程中,可能要产生些想法,或新知识,或自己写的一些试验代码。最好都保存下,也可与其他人分享学习所得,讨论并进步。不管你是转行也好,初学也罢,进阶也可,如果你想学编程,进阶程序员~
【值得关注】我的 编程学习交流俱乐部 !【点击进入】
C语言入门资料:
C语言必读书籍: