职场新人如何阅读公司业务代码

现在已是5月,春招已经接近尾声,许多大学生已经开始踏入互联网公司进行项目开发(比如我),不得不阅读公司的文档和代码。对于搞后端开发的朋友们来说,不同的业务复杂度也各不相同。对于通信、金融和电商这类领域来说后端的业务也会相对比较复杂。刚到公司和同事们工作时,应届毕业生往往不知如何下手。目前我已经实习几个月了,整理一下这段时间的收获,希望对刚进入互联网公司实习的朋友们有所帮助。

理解业务领域模型

领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。
业务领域基础知识要先掌握,熟悉业务领域的相关概念,以及概念之间的关系。软件系统是现实生活的映射,某一个领域相关的业务代码,里面都有现实生活中概念的映射。比如电商领域有销售额、品牌、转化率等概念,他们映射到代码中的模型是怎么样的。

搜集代码相关文档

向同事索要相关的文档,包括

  1. 用例图、类图、时序图等UML图:这些图要会看会理解,学习过面向对象软件设计的朋友应该对这类图不陌生,如果没了解过,一定要去掌握。
  2. API请求响应参数及其说明的文档:知道有哪些API,各自的参数是什么。
  3. 项目的架构图:微服务架构?单体架构?用到哪些技术?没听说过就去了解。
  4. 数据库表的设计
  5. 其它

代码阅读

了解程序流程和总体框架

明确一些函数大概是实现什么功能就够了,不要去过多的关注和沉迷在功能模块的实现细节中。当须要定位到详细的某个功能实现模块的时候,再切换到函数实现中一点点分析代码就ok。假设对某个地方不太清楚,能够自己改动下源码,执行一下看看执行的结果如何。
第一遍乃至于第二遍一定不能钻的过深,开始的时候往往会因为一个小功能而打开了IDE十几页的标签页、如果你是这样的,那么你接下来看代码会越来越乱,心神不宁。

阅读方式一:自底向上

迅速了解这个项目是解决什么问题的,另外TA是什么技术解决这个问题的。
从一个模块开始看起,知道这个模块在干什么,提供了哪些接口,功能是什么。借助IDE,下断点,修改一些代码,看看被你修改过的代码会出现什么样的作用。
一个个模块看下来,最后再看看这些模块是怎么被组织起来的,这个项目你也就了解了。

阅读方式二:自顶向下

适合结构清晰、组织有序的项目。
阅读的时候,从一个较高的抽象层次进行阅读,看到一个函数,或者一个类,不去看里面的实现,而是从函数或类的名称推测其是做了什么。这样,很快就能看完一遍代码,然后内心想:嗯,这个东西大概就是在做xxxx事情
第二遍继续从头看代码,可以开始看里面函数的实现,同样的,遇到函数里面的函数或类的调用,通过函数名或者类名去猜测其用途。
以此类推,一层层看下去,某些不重要的部分,可以直接跳过,不要像我一样,某个函数的实现没看,心里就痒痒。其实你去看了,对你从宏观上理解项目帮助不大。

结合文档进行阅读

对照代码相关文档,看一下具体哪些文档的描述是怎么实现的。
使用UML帮助我们整理思维,使用类图来分析类与类之间的关系,使用UML里的活动图。配合IDE工具分析核心业务流程,理解软件是怎样工作的。

自我驱动看代码

比方思考某个功能是怎样实现的呢?然后推測可能是怎样实现的。然后再项目代码中一点点去跟踪源码,慢慢的剥茧抽丝,相信你会有恍然大悟的感觉。单纯的看代码真心没劲枯燥,并且效率不高

使用强大的工具

  1. 利用IDE的跳转、全局搜索等功能
  2. 使用Understand等代码分析工具
  3. 思维导图工具,构建你对代码的理解

心理状态的调整

项目源码的代码量多没啥。可是我们自己心里不要着急,慢慢来。自己努力的功夫到了,多花点时间在看代码思考代码上,公司的代码会被你一点点啃透的。

沟通

项目文档,和项目开发者(维护人员)进行沟通 ,在看代码的过程中,遇到模糊不清或者自己拿不住的代码,要及时和同事沟通,他们对代码的熟悉程度比我们强。虚心有礼貌的问人家。否则自己在那憋着瞎猜代码的含义,费时费力还得不偿失,开口求人帮忙就那么难?嘻嘻,你帮我下,我帮你下。咱俩慢慢就熟悉了嘛 。
But,问过的问题就请不要问第二遍,否则人家内心一万个草泥马奔腾而过。问问题的时候准备好纸笔记录,有问题最好马上解决,当面一次性解决所有的疑惑,效率最高,也最大程度不去打扰同事。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352