关于代码学习的一些看法

代码的三中类型

  1. Product:产品代码,一个可用的产品代码。比如一些开源软件,还有当前工作整天面对的代码。
  2. lib:库代码,对某一种功能封装的模块,一个工具库。
  3. framework:框架代码,某种业务常用逻辑的封装,就形成改业务逻辑的框架库。比如,游戏客户端来说就是游戏引擎,MFC是window下的一个GUI框架,等等。

三种代码的编写与设计,抽象层次依次递增,对编写者能力的要求也依次递增。

代码发布的内容

无论是作为产品、库、还是框架,代码发布的形式一般都有下面的内容:

  1. Source Code:源码
  2. Product/Example/Demo:产品/示例/演示
  3. Test:对源码的全面单元测试(现在项目的产品代码几乎是没有的,质量无法保证,只能靠功能测试)
  4. Docs:分析/设计/代码/测试 文档。方便后来者学习。

代码开发流程

开发的正向流程:

分析 -> 设计 -> 编码 -> 测试

每一步的成果:

  • 分析:分析文档(需求分析,可行性分析,等)
  • 设计:整个架构设计文档
  • 编码:程序接口文档 + 源码
  • 测试:测试用例等

最终成果:Source Code

如何学习代码:

理解程度:
  • ★        知其然。知道是干什么用的,有什么优缺点。对多数代码的理解都应该在该层次,以后做东西时候,可以权衡使用那个代码,并且作出合理选择,然后再进一步学习。这样,可以了解许多新技术。
  • ★★      可以熟练使用,但不知其所以然。对经常使用的代码,达到这个程度就可以了。
  • ★★★    知其然,并且知其所以然。不但要知道是干什么的,会熟练的使用,还要知道来龙去脉,整个代码的架构设计,都要了如指掌。非常感兴趣,或着非常重要的代码,可以进入深入的分析。加深理解。学习代码的封装技巧和架构。

根据理解程度的不同,方法肯定不同了:

  • 对于有详细文档的代码:
    • ★     粗略浏览文档,特别注意介绍部分的阅读。不必计较细节。
    • ★★   详尽的学习文档,和例子源码的学习,了解如何正确的使用。某些部分文档没有描述清楚的,可以参考下源码,切勿深陷源码的泥潭,大体浏览即可。
    • ★★★ 在上面的基础上,研究源码。可以正向,根据设计来研究代码,也可通过源码逆向出架构和设计。
  • 对于没有文档或者文档简洁的一塌糊涂的代码:
    • ★     运行几个可执行的东西,看看这个玩意到底是个什么。没有可执行文件,那就只能大体浏览下源码了。看看文件里面的注释之类的就可以了。不必深究代码到底是什么。
    • ★★   要熟练使用该代码,必须要读代码了,先模仿已有的各种写法。若有不明白之处,可以问问别人,查查资料,或者跟进实现代码,看个究竟,也不要纠结于具体实现,只要保持自己在应用层就可以了。
    • ★★★ 想要知道一切,只能深入研究代码了。

注意:上面的方法还是比较笼统的。需要进一步细化。

保存学习成果:笔记/博客/代码/知识库

学习的过程中,可能要产生些想法,或新知识,或自己写的一些试验代码。最好都保存下。也可以成博客,与其他人分享学习所得。讨论并进步。

2011/07/08 22:01 david++ 上海·松江

posted @ 2011-07-08 22:13  david++  阅读(1082)  评论(0编辑  收藏  举报