说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

让你轻松学习新代码库的六个步骤

HTML文档下载 WORD文档下载 PDF文档下载
学习新的代码库是一项艰巨的任务。如果依靠自己研究该库是一个很复杂的过程。如何学习新代码库,本文通过六个步骤为读者详解学习中的困惑。

学习新的代码库是一项艰巨的任务。如果你不能和创建该库的研发人员进行交流,自己研究该库是一个很复杂的过程。本文给出六个步骤指引开发者学习。

步骤如下:

步骤一:创建业务词汇表单

如果你是一位开发者,你或许会出席过一些软件设计会议,会议可能会涉及到创建新术语,以便于更好的软件设计交流。在创建该术语的同时可能会发生与该术语同义的情况,会议成员不可避免地讨论这些具有相同概念的术语,这会让人感到混乱。

这时,业务词汇表单就变得尤为重要,它能记录这些新的术语。在软件设计的每个阶段,你会不断碰到新的术语和概念。把这些术语保存起来非常重要,并且边学边存储,绝对有益无害。

业务词汇表单应该包含几个不同的列,分别是:“术语名称”、“语境”、“定义”。当你看到一个有趣的术语和短语时,可以更新该表单。该表单有可能包含大量的同义词,也有可能有对同一术语的不同定义解释。出现上述的情况,你需要结合上下文的语境进行分析使用。

步骤二:了解应用程序

运行应用程序并且获知该程序提供的功能。如果你不知道该程序是做什么的,就无法在源代码中寻找有关信息。

步骤三:浏览有效的类库文档

迄今为止,是不是任何的体系结构或设计类库文档的内容都是合理呢?这有待考量。类库文档是一个极好的资源。如果旧的体系架构已经历了数次修订,它就不再值得你花时间去阅读整个文档,不过,你可以大概浏览一下。如果你足够幸运,你可以在文档中遇到你所需的术语。

步骤四:做假设

几乎所有的应用程序中,开发者都会碰到如下情况:环境的配置、I18N(语言的国际化)、应用程序的文件格式、用户界面、应用程序的启动和关闭。针对这些情况,可以进行假设。开发者可以假设应用程序中的任何一段代码块,哪个代码块是应用程序的核心,这个才是学习的重点。

步骤 五:定位第三方库文件

代码库很有可能存在一些的依赖。如果检查到项目中包含第三方库文件,可以查看该库文件是如何与应用程序的功能联系起来的,某处的模块或组件是如何使用第三方库的。

步骤六:分析代码

本部分列举几个选项来分析新的代码库:

1、目录以及文件架构

可以把目录名中的一些术语添加到业务词汇表单中。文件架构可以提供一些基本的线索,如:前台代码及后台代码。它们可以分别放在独立的文件中。开发者会发现,凡具有特定功能的模块代码都被放在独立的文件夹中。按照这个线索,就知道如何进行查找了。

2、功能文件的映射

在用户界面上写一些可执行的功能代码块。把重要的代码块放到一个单独的文件夹中,并对文件夹进行命名。这个文件夹有可能对团队中的其他人有用,他们可以把该功能应用到项目编程中。

3、单元测试

如果采用单元测试,开发者可能会用到第三方框架。你可以用第三方框架来辅助测试。即使没有找到合适的框架,仍然可以来做单元测试。当然,你也可以不采用单元测试,但我依然推荐你用,因为有助于你对源代码中组件的理解。

4、注释

源代码中可能包含一些注释,有的注释对开发人员很有帮助,有的会让人有所误导或有的注释可能过期了。如果你觉得注释有问题,你可以通过调试器追踪有关代码,了解相关代码的意思。如果你发现错误的注释,修改或删除它们。

5、可视化工具

在新的代码库中使用语言代码分析工具。如:ObjectAid是一个极好的Java代码分析工具。这是 Eclipse IDE中的一个插件。你可以创建对象来协助类图,把java文件拉到类图中,就自动画出类图。

6、设置断点

使用调试器,设置一些断点并运行查看。这是第一次学习新的代码基础。

结论

上述的分析过程采用自上而下的方法,能够更好的帮助开发者学习新的代码库。

 文章来源:larsavery.com

程序员界“香饽饽”、大神级别人物集体亮相——SDCC 2015编程语言专场议题曝光 【CTO沙龙】CDN在共享经济下的创新应用 深入浅出Fetch API 带你入解应用场景及适用问题 SDCC 2015讲师专访精彩集锦(二):途牛网、饿了么、快的等大牛都来了 百度、饿了么、美团专家齐聚SDCC2015,剖析前端开发核心技术 【SDCC讲师专访】百度乔刚:前端可视化难点分析及探索实践 【CTO讲堂】Growth Hacking背后,数据分析平台的架构调整 BAT、巨杉、南大、柏睿等齐聚SDCC—新一代数据库专场议题曝光! 《近匠》BeeCloud创始人黄君贤:三行代码集成支付的技术实现 【SDCC讲师专访】AdMaster技术副总裁卢亿雷:分布式数据库挑战与分析 tvOS真的代表了应用的未来吗? 使用Fetch API和ES6生成器构建异步API Android应用性能优化实践 华云数据:OpenStack的技术践行之路 【SDCC讲师专访】腾讯潘安群:腾讯云金融级数据库TDSQL分析 高颜值、高品质——安全技术论坛议题曝光! 移动应用开发者正饱受折磨 在Android平台上加载本地库的危险性 《近匠》程序员客栈,程序员背后的经纪人 【CTO讲堂】浅析工业级物联网项目的快速开发 云适配陈本峰:平台型企业级浏览器是未来办公移动化的核心 警报:XcodeGhost已扩散至第三方框架 我们眼中的应用另一端是什么? 【SDCC讲师专访】百度马如悦:不写代码的架构师不是好架构师 企业级应用避免臃肿混乱的6大黄金法则 SDCC 2015讲师专访精彩集锦:程序员界“香饽饽”、大神级人物都在! 从技术经理的角度算一算,如何可以多快好省的做个App(一) 【SDCC讲师专访】Java泛型作者Gilad Bracha:优秀的程序员应该未雨绸缪 【CTO讲堂】微服务架构在云端的应用 SDCC 2015创业项目路演火爆征集:寻找中国好项目 被遗忘的设计模式——详解Swift语言中的Null Object Pattern 大家帮忙看个程序 ACCESS数据库的小问题。 怎样使自己的问题成为热点问题的绝招! 关于c++builder中scanline的应用 跨数据库查询,请教各位高手! 这样的问题也没人会????????????????? 如何使用QuickRep制作简单报表?不牵涉任何DataSet的 关于Transaction的问题 请问 ListCtrl Item里的 Checkbox 被点击时对应的消息是什么? 100分~~100分~~高分求购。。。我也‘倾家荡产求购优秀系统分析案例’(paste from yyzh)。。。100分~~ 全中文的用Rose做的实际项目的UML模型! 救命!!我的机器不能下载东西了,怎么回事?? 求教邮件编程问题,邮件客户端如何实现“在服务器端保留备份的功能“? ciscoworks 各位大哥大虾,VC下如何用ADO连SQL SERVER?(急) ShellExecute和CreateProcess有什么区别? 关于海量数据、最有效率的排序、硬盘缓冲与映射、专业数据库的讨论 如何用VB编启动是可以带参数的程序呢?(例如:我自定义了一种文件,双击用我的程序打开,程序自动会打开这个文档 昨天我过生日,今天分蛋糕给大家 请问哪有《java图形设计2Swing篇》可以下? 我要用一个数据库去实时访问另一个据库,我该怎么办 URLghj1976@csdn.net----别吓我,有请您老人家! 谁给我介绍一下sql server7.0教材的比较好的下载网站,我给他20分。 我都急死了,到搜索引擎里搜到的好几个站点都不能用,到底哪儿可以当到3DMAX? 谁有写的比较好的邮件收发程序? 一个微软证书的私钥问题 微软证书的私钥问题 求助,简单问题 男人最快乐的十个瞬间! solaris下装oracle8.1.6遇到jre环境问题 怎抹加分?我准备给别人加40分,可我最多只能加20,请问另外20分怎末加分,为此我可能已得罪了一些人了。 请教下载的问题 如何在运行时动态修改Quick Report的打印机设置? 怎样做一个接受拽拖的LISTBOS(例如,把资源管理器里的文件拖到上面,就自动增加一项 ,就是拖的文件名) 怎样才能隐藏在ctrl+atl+del中进程列表中的项目啊 用C写DLL 请问:airhorse(编程至尊宝),infopower3000的注册码可以用于商业目的吗? 结构化异常处理 linux下如何配置内置Mondem? red hat linux7.0下安装oracle8.1.6遇到问题 我是菜鸟,问一个关于类的问题 问题:TWebbrower中,InnerHtml和OuterHtml以及InnerText和OuterText之间的区别 (加急)我要傻了,快救命啊!高分求救!!(回答正确者尽管开口要分!) ==============VC中怎样调试控制台程序=============? 再问:MS SQL6.5 的.DAT文件怎么恢复,请高手帮忙,(100分绝对对线) 白桦林 我需要自定义一个鼠标按下的事件,可我不知道该去那个参数?有人能告诉我吗? 有谁有比较好的javacript教学方面的电子文本? 两个关于数据库的问题(上次写的不太清楚),我的分快用完了,只能随便给点意思意思了! DotNet时代真正来临了/VB.NET/Beta2正式版下载地址/大家要就快点/如果FTP停了/可不要怪我 那里有DIRECTX编程的书或资料呢?(用VB编) 若代数式根号(2-a)的平方+根号(a-4)的平方的值是常数2则a的取值范围 已知a为实数,求代数式根号a+1减根号4-4a加根号-a²的值 化简二次根式 (根号b/a-根号a/b)/(根号a-根号b) 无论x取任何实数,代数式根号x的平方减6x加m都有意义,则m的取值范围是多少? 已知x=2-根号3,y=2+根号3,求代数式x平方+y平方的值 我在百度查到了你写的这道题的答案.x+y=4、xy=(2-√3)×(2+√3)=2²-(√3)²=1请问这个步骤怎么来的 已知xy大于0,二次根式x根号负y除以x平方=? 已知x=二分之一(根号7+根号5),y=二分之一(根号7-根号5),求X的平方-XY+Y的平方的值 当x=7时,求代数式根号x+5+根号x-4-根号4x-1的值 先化简,再求值:x+根号xy/根号xy+y+根号xy-y/x-xy,其中x=根号3+1,y=根号3-1 已知y=二分之一+根号下2x-1+根号下1-2x,求x的平方+xy+y的平方的值 当x=( )时0,代数式根号(4x+5)有最小的值,其最小值是( ). 化简根式根号10-4根号3+2根号2 已知实数xy满足|x-根号2|+根号(y+根号2/2)=0,求代数式x^100·y^101的值 已知x=1+根号5,求代数式x3-2x2-4x-5的值 化简根式a倍根号下a分之b+b倍根号下b分之a 【内有图片】 已知x=根号2+1,y=根号2-1,求代数式x-根号xy分之x-2倍根号xy+y的值.不是很清晰哈,破手机. 若根号下x加1乘2减x等于根号下x加1乘根号下2减x成立化简x加3的绝对值加根号下x*x减4x加4等于 急,把下列各式化成最简二次根式 第一题 5分之27倍根号下27分之13的平方减去12的平方第二题 负的2分之abc根号下2*a的四次方*b分之c的立方 已知实数x,y满足关系式│x+y-3│+根号(xy-6)=0,求代数式(x+2y)/y-x的值 化简:根号6减根号2的绝对值加根号2减1的绝对值减3减根号6的绝对值. 八年级数学题(先化简二次根式)根号12-根号4分之3-根号3分之1+根号27 若实数xy满足x^2+6x+根号(x-y+1)+9=0 求代数式((根号1/x-y)+(根号1/x+y))÷x/x^2-y^2 化简:根号2减去根号5的绝对值加上根号5减2的绝对值加上根号3减根号2的绝对值 二次根式 化简 根号下面(-a3次方)+根号a² xy是实数,且y=根号x-4+根号4-x+1/3,求代数式9y*2-6y+1的值. 已知0小于x小于1,化简根号(x减x分之1)的平方加4减根号(x加x分之1)的平方减4 化简二次根式根号下7+4根号3 设x=根号三减2分之一,y=根号三加二分之一,求代数式x+y分之x2+xy+y的值好的 设x=1/√3-2,y=1/√3+2 求代数式x2+xy+y2/x+y看的懂吗 已知X,Y都是实数,且满足Y<根号X-1+根号1-X+二分之一,化简:y-1分之1*根号(1-Y)平方 若最简二次根式三分之二根号5a²+1与5倍根号7a²-1能进行合并,则合并的值是? 先化简在求值;(x=2)平方—(2x—1)(2X—1)+4x(x—1),其中x=—2的根号下 若a ①根号5a ②根号4-B² ③c²④根号1-d分之1,是二次根式的有 已知1 化简根号[-(x+1)]的平方那个平方是加在x+1上面的 根号 18a²b五次方 化简二次根式 已知xy小于0 ,则根号x平方y 化简后 如果xA.4+x B.-x C.-4-x D.x 我知道选C, 求不等式负3小于等于4x减4x平方小于等于o的解集,这题怎么写? 已知0 (x减2分之x加2 减x平方减4x加4分之x减4)除以x平方加x 分之x平方减1 其中x=2+根号2先化简,再求值 若关于x的不等式(1减a)x的平方减4x加6大于0的解为x大于负3小于1则a等于? 先化简再求值:(3x+2)(3x-2)-4x(x+1)-(2x-1)的平方,其中x=根号3 已知x=3-2y,求3根号x-2y除以根号4x平方-16y平方 求不等式4x的平方减4x加1大于0的解集 根号((X+根号2)平方+1/4)减根号((X-根号2)平方+1/4)=2,求X根号((X+5)平方+Y平方)+根号((X-5)平方+Y平方)=10,求X 9减4倍根号5的算术平方根是多少最好有过程! X平方减4X大于0的不等式怎么解? 已知x=根号2减1分之根号2加1,y=根号3加1分之根号3减1,求x的平方减y的平方 当x的算术平方根=2,则x2=16,三次根号负4x=? 不等式x的平方减4x+5大于0 的解集 要过程 已知x=2减根号3分之1,y=2加根号3分之一,求3x平方+5xy+3y平方 下列二次根式中,化简后被开方数与根号2的被开方数相同的是A根号0.2B根号2的平方C根号22D根号1/2A.根号0.2 B.根号2的平方 C.根号22 D.根号1/2为什么? 已知关于x的方程x^2-(k-1)x+k=0的两个实数根的平方和等于4求实数K的值 已知y=根号(x-8)+根号(8-x)+18,求代数式[(x+y)/(根号x+根号y)]-2xy/(x根号y-y根号x)的值 已知y=x+2分之根号x的平方减4加根号4减x的平方加2012成立,求x的平方加y减3的值 合并下列根式中的同类二次根式:1/2m乘以根号4m加上6m乘以根号9分之m减去2m的平方乘以根号m分之一明天1:00之前一定要,好的会追加分的 已知Y=根号X-8+根号8-X在加18,求代数式X-Y/根号X-根号y再减去2xy/x倍根号y-y倍的根号x的值. 若a为实数,求代数式√a+2-√8-4a+根号下负a的2次的值 已知XY
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn