zoukankan      html  css  js  c++  java
  • 关于代码学习的一些看法

    代码的三中类型

    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++ 上海·松江

  • 相关阅读:
    手机号码正则表达式
    POJ 3233 Matrix Power Series 矩阵快速幂
    UVA 11468
    UVA 1449
    HDU 2896 病毒侵袭 AC自动机
    HDU 3065 病毒侵袭持续中 AC自动机
    HDU 2222 Keywords Search AC自动机
    POJ 3461 Oulipo KMP模板题
    POJ 1226 Substrings KMP
    UVA 1455 Kingdom 线段树+并查集
  • 原文地址:https://www.cnblogs.com/mywolrd/p/2101476.html
Copyright © 2011-2022 走看看