美文网首页
快速了解一个开源代码的用法

快速了解一个开源代码的用法

作者: 墨菲樱 | 来源:发表于2020-03-01 00:28 被阅读0次

最近在做基于vertx的重构,两周时间,从仅仅知道vertx的存在,到弄懂基本原理,再到完成服务端的代码,包括提供rest接口,基于redis的session共享,整个过程学到很多。

会看代码才会写代码

纵观市面上的书籍,大的讲系统架构,中等的讲框架,再细化就是语法,更深的便是原理,基本看不到讲怎么读代码。以前我恨不能理解那些磕源码的人,因为大多数问题只要提供关键字,在google都能找到答案,根本用不到源码,但是要写出一款程序,不会看源码是万万完成不了任务的。

不会看源码的弊端一——版本太低

通过汇总搜索代码片段可能版本太低,达不到产品对软件优选级别,这个时候就必须改造代码,不兼容轻则接口参数不一样,重则包路径、类构造都彻底变更,比如vertx-redis-client的3.6.0和3.8.0就有存在不兼容,网上大部分的案例都是基于3.6.0的

不会看源码弊端二——不知道为什么要这么设计

网上搜索的参考代码可能包含了没有见过的注解语法或者工厂类,或者接口实现类,如果不了解源码,我们就可能面临不知道如何调整接口类,工厂类的问题。比如网上给出案例基本都是基于SharedDataSessionImpl,但是这个类并不适用只有读Session的场景,这个时候就需要我们设计一个类替换SharedDataSessionImpl,只从redis读session,没有任何的存储、删除、新增session的操作

不会看源码弊端三——无法深入理解框架原理

我在做基于redis的session共享方案时,参考给出的案例总是调用不到我实现的SessionStore类,最后实在没有办法,才去看SessionHandler的源码,才知道在必须要指定session的名字,并且这个名字从cookie中获取,因此要在SessionHandler前面先注册CookieHandler,然后指定session的名字,终于获取到了想要的session

我很少主动看源码,通常都是由问题驱动才看,并不是一名对源码深耕挖掘的人,所以只提供一些快速了解源码的方法

方法一——看官网示例

官网示例有专门的人更新,基本能保证是最新版本。且官网的示例简单,麻雀虽小五脏俱全,功能基本能在五十行内实现,非常有参考价值

方法二——Github源码的Readme.md

这里有每个版本对应的介绍和使用方法,绝对不会将不同版本弄混

方法三——接口的注释说明

要实现一个接口,它的注释说明会讲清楚它的依赖等各种初始化条件,或者参数适用的场景

方法四——打断点,看调用逻辑

有了前面三步,基本上能写出跑到断点的代码,这个时候打断点看看系统调用。静态调用层次无法显示动态加载,只有在运行的时候才知道完整的调用链

方法五——接口实现逻辑

这个也是花时间最长的。有了调用链,却还是得不到预想的结果,就必须回溯整个调用逻辑,必然是前面某个条件不满足,才没有走到正确的分支。

对于开源软件,要记住,接口比默认类实现更重要。比如在vertx中,核心概念的Vertx,Vertical,Router,Route,Handler都需要了解,跟着deploy的过程就可以基本了解加载过程。

相关文章

  • 快速了解一个开源代码的用法

    最近在做基于vertx的重构,两周时间,从仅仅知道vertx的存在,到弄懂基本原理,再到完成服务端的代码,包括提供...

  • 第七周随笔(3)--JSON

    关于JSON的写法: 常用的解析JSON的开源代码: GSON fastJSON······· GSON的用法: ...

  • docker compose

    compose Compose 项目是Docker官方的开源项目,负责实现Docker容器集群的快速编排,开源代码...

  • TabBarController In Swift 3.1

    目录: tabbar的基础用法,xib,storyboard GitHub开源好代码 xib 实现 新建俩个空co...

  • 快速分列及提外话

    今天学了三四遍快速分列,知道了解它的基本用法、进阶用法、文本转数值、不规则日期巧转换、怎么样快速拆分时间、...

  • C#中 var 与 DataTable DataRow循环

    自从c#出var这个匿名生命用法之后感觉写代码快速了不少。下面我们看看var的介绍及用法VAR是3.5新出的一个定...

  • Android项目组件化/模块化,用LiveData打造属于你组

    预备知识 Android 基础知识 LiveData的基本定义和用法 开源消息框架EventBus的基本了解 看完...

  • Git-day-02(Github,远程仓库,Git分支)

    了解开源相关的概念 什么是开源 通俗的理解 开源是指不仅提供程序还提供程序的源代码 闭源是只提供程序,不提供源代码...

  • 初衷

    1、记录一些开源界的故事,了解开源文化。 2、记录学习开源代码的过程。 3、熟悉Markdown语法。

  • Docker搭建SonarQube代码质量平台

    SonarQube 是一个开源的静态代码检测平台,里面涵盖了大多数开发语言的规则,能够快速扫描代码中的bug和不规...

网友评论

      本文标题:快速了解一个开源代码的用法

      本文链接:https://www.haomeiwen.com/subject/wpmnhhtx.html