zoukankan      html  css  js  c++  java
  • 如何高效地学习开源项目

     

    第一步:安装

    通过安装可知道:
    1.这个系统的依赖组件,而依赖的组件是系统设计和实现的基础
    2.安装目录也能够提供一些使用和运行的基本信息
    3.系统提供了哪些工具方便我们使用
     

    第二步:运行

    命令行和配置文件,它们主要提供了两个非常关键的信息:系统具备哪些能力和系统将会如何运行。这些信息是我们窥视系统内部运行机制和原理的一扇窗口。
    通常情况下,如果我们将每个命令行参数和配置项的作用和原理都全部掌握清楚了的话,基本上对系统已经很熟悉了。我们可以先把所有的配置项全部研究一遍,包括配置项的原理、作用、影响,并且尝试去修改配置项然后看看系统会有什么变化
     

    第三步:原理研究

    这里的关键就是“系统性”三个字,怎么才算系统性呢?主要体现在如下几个方面:
    * 关键特性的基本实现原理
    * 优缺点对比分析
      只有清楚掌握技术方案的优缺点后才算真正的掌握这门技术,也只有掌握了技术方案的优缺点后才能在架构设计的时候做出合理的选择。
     
    原理研究的手段,主要有三种:
    * 通读项目的设计文
    * 阅读网上已有的分析文档
    * Demo 验证:如果有些技术点难以查到资料,自己又不确定,则可以真正去写 Demo 进行验证,通过打印一些日志或者调试,能清晰的理解具体的细节。。
     

    第四步:测试

    通常情况下,如果你真的准备在实际项目中使用某个开源项目的话,必须进行测试。
    测试阶段需要特别强调的一点就是:测试一定要在原理研究之后做,不能安装完成立马就测试!原因在于如果对系统不熟悉,很可能出现命令行、配置参数没用对,或者运行模式选择不对,导致没有根据业务的特点搭建正确的环境、没有设计合理的测试用例,从而使得最终的测试结果得出了错误结论,误导了设计决策。
     
     

    第五步:源码研究

    源码研究的主要目的是学习原理背后的具体编码如何实现,通过学习这些技巧来提升我们自己的技术能力。
    通常情况下,不建议通读所有源码,因为想掌握每行代码的含义和作用还是非常耗费时间的,尤其是 MySQL、Nginx 这种规模的项目。带着明确目的去研究源码,做到有的放矢,才能事半功倍,这也是源码研究要放在最后的原因。
    对于一些基础库,除了阅读源码外,还可以自己写个 Demo 调用基础库完成一些简单的功能,然后通过调试来看具体的调用栈,通过调用栈来理解基础库的处理逻辑和过程,这比单纯看代码去理解逻辑要高效一些。
     
     
    时间分配
    通常情况下,以上 5 个步骤的前 3 个步骤,不管是已经成为架构师的技术人员,还是立志成为架构师的技术人员,在研究开源项目的时候都必不可少;第四步可以在准备采用开源项目的时候才实施,第五步可以根据你的时间来进行灵活安排。这里的“灵活安排”不是说省略不去做,而是在自己有一定时间和精力的时候做,因为只有这样才能真正理解和学到具体的技术。
     
     
    上面的观点来自资深技术专家 李运华 的极客专栏 《从0开始学架构》
  • 相关阅读:
    servicestack and redis
    图片服务器
    CRQS介绍
    javascript闭包之购物车加减及提示
    javascript best practices
    EOF
    2012年回顾
    volatile
    通过inode来操作文件
    采样问题
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/9515495.html
Copyright © 2011-2022 走看看