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

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

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

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

步骤如下:

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

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

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

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

步骤二:了解应用程序

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

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

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

步骤四:做假设

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

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

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

步骤六:分析代码

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

1、目录以及文件架构

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

2、功能文件的映射

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

3、单元测试

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

4、注释

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

5、可视化工具

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

6、设置断点

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

结论

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

 文章来源:larsavery.com

抛弃DRAM、拥抱闪存,Facebook重做Memcached 夏普三星联姻 电子行业或将多元化发展 从下拉菜单设计细节看Amazon对用户体验的把握 Chartboost美女CEO:40人团队服务3亿移动玩家 Distimo:新晋开发者想让产品得到关注越来越难 OpenFeint绝迹后,开源项目OpenKit继续前进 美FDA通过搜索引擎和社交平台预警药品副作用 挖坟三星“眼球追踪技术”背后的技术团队 为什么开发者热衷在Stack Overflow上查阅API文档? Facebook推新News Feed 欲造就“个性化报纸” 女神程序员的一天:暴力测试social爬虫代码 2013IBM云存储路线图:更快,更简单,更安全 二战大数据故事:数学家、物理学家、概率论击败德国潜艇 软件定义网络服务商Pertino B轮融资2000万 Scringo社交组件,让你的应用“热闹”起来! Android开发必备:Eclipse 4.2 SR2版本发布 32场!2013年360HTML5校园行首站告捷 移动周报:不做内容,只钻技术的快播 一周消息树:中国开源发展缓慢的“病因” 百度应用引擎BAE正式开放 新增支持Node.js CloudVelocity,下一个VMware? Buffer创始人谈开发:先验证,后编程! 谷歌可穿戴式产品再度来袭:会说话的鞋子 未来Chrome OS或取得Android般成功 云落地@北京,北京市北斗公共平台或开放API? GitHub再遭攻击 主要服务中断约一小时 移动开发者将有望拥有.app域名使用权 微信将推“游戏中心”?移动互联网入口圈地加剧 美国航空公司首次开放API 并举办“黑客马拉松”编程大赛 谷歌数据中心设计的10条“黄金法则” GitHub时代:为什么我们都在开源 c++ 求学 (更上一层楼) 请教零长度问题(不好意思没分了救命啊) 高分寻求jtest4.5的破解 或注册方法 关于批量删除不同目录下相同文件的问题。 如何在VFP中运行VFP代码? 如何调用chm帮助文件? iptables问题 请教零长度问题(不好意思没分了救命啊) 大家來討論工作的問題 能用c语言编有关网络的程序吗?谢谢大侠们了:) 要在程序中控制在DBCHART显示不同颜色部分的内容及数值,如'34 丰田',来者有分? 提个建议:在祝福 璇玑大力 的贴子中,有不少的“名句妙词”,我们花点时间,搜集于一贴,同意的举手!(我的分数太紧张) 低级问题:如何把TFileStream中的一个字节读到一个byte变量中? 串口编程问题 jsp+mysql用的的resin服务器,运行一段时间,网站访问速度就很慢了,一般会是什么原因引起的呢? 两个字符串,前面是任意字符,后面必须是数字,怎么验证这两个字符串前面的字符是否一样? 怎么才能不关?? 祝大家中秋节快乐,进来帮小妹一把!关于JavaMail收邮件的问题! 一段列表筐代码不知道能不能短一些(请高手帮忙) 一个关于安装控件的问题? 请教SNMP的命令? Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 如何在formload时就确定TabControl1显示第3页?菜鸟提问 css的问题,如何使字体大一点??? 紧急求救 datagrid选中的颜色(我重新画了一个datagrid,设置颜色) 在access中如何控制查询 avg(某字段)的小数位数,比如要两位小数 如何起死回生 一道题目 做文件上传系统时,当上传较大容量的文件时如大于2M的文件时出差,请问是什么问题? 请教一个insert into select...语句的问题! 简单的问题,取出头n条记录的select语句怎么写? 谁可以介绍一下关于HMM(隐马可尔夫模型)方面的资料? 在windows2003下能上网,不能下载东西,为什么? strtolower 的问题 各位大侠谁知道,哪里能下到LEI或ESB? 在LotusScript中如何输出到控制台? 各位中秋节快乐! 怎样不通过post传输方式传输数据(肯定给分) eMvb中的image和picture控件怎么插入不了图片啊。。。。 有关路径问题 在jsp中的 文件是否存在file.exists()的监测和打开这个文件的疑惑 中秋节了,睡个好觉吧 怎样合并字符串? SQL SERVER 2000为什么安装不了! ■■■■■■十万火急。。公司里,急需给全体员工的一份中秋贺信,谁帮我找一分,拜托了! 關于數據庫系統表的說明和pb本身的自主創建的四個系統表的相關細節 关于App.path的丢失 如何动态设置cedit中可输入数据的长度呢 关于用c读取文件 我有一个内网,怎么使外网能访问内网的网页. 我靠,JBuilder 9怎么就那么那么那么那么那么那么那么那么慢啊??? (快速前进)用英语怎么写 斯大林格勒2013 斯大林格勒的简介,不要太复杂. 雨过潮平是什么意思 “雨过地皮湿”是什么意思或者是怎样的一种现象,本人理解的不是很清楚,望知道的人告下, 英语翻译But as a share of their economies,recorded remittances are highest in the Middle East and North Africa.【来自voa specail English 2006-12-16 report】请问 为什么 highest 前面不用加the?我记得形容词的最高级前必须加 this is also common for pupils themselves to form their own bands.求翻译 决战斯大林格勒 STALINGRAD怎么样 斯大林格勒的少年英雄 THE BOY FROM STALINGRAD怎么样 There will be smaller and smaller (f ) in the future. 迈进英语 浦发银行设立伦敦代表处巴西“张开双臂”欢迎中国企业投资卫计委:将逐步探索新农合跨省就医结报吉林松原前郭尔罗斯蒙古族自治县发生5华媒聚焦三中全会:中国新改革“分好蛋商务部回应“批评报道针对外资”:媒体中国建设银行落户卢森堡俄罗斯达吉斯坦共和国首府爆炸致1死8俄罗斯举行核遏制力突击战备演练精品画展向英国人展示中国水墨艺术的旧“被遗忘的天才”画展展现卡斯蒂廖内出传阿里牵头财团以5亿人民币投资国内财很多年轻人都选择了这几款自主品牌车,谨记4条让刷卡支付更安全谷歌最近在倒腾啥?进入太空、涉足电力闲置银行卡别“抛弃”!别买卖!电影超人答案图文篇 最新电影超人所有厄瓜多尔历史性“Tren Cruce2015不买房,那就再等30年!创业是一条永远在变的路限期切断配资会否引发新一轮下跌?30只新股来送钱,做好准备周一见天妖乱龙腾古荒横祸杀神奇谭天道诛心逆天行破天地昊玄神传天道打手幻魔法前进吧秀英韩娱之永久的守护垦丁牧场旅游静安寺旅游药王谷旅游宝兴旅游重渡沟旅游浙东大峡谷旅游贺龙体育馆旅游摩天轮游乐购物中心旅游开福寺旅游芙蓉广场旅游森波拉奇妙世界旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘