如何看懂源代码--(分析源代码方法)

如何去分析开源的代码,例如tomcat?

如何阅读程序源代码?

如何更有效地学习开源项目的代码?

[知乎回答]如何提高阅读源代码的能力?

主要分六个部分

( 1 )读懂程式码,使心法皆为我所用。
(a)读懂别人写的程式码,让你收获满满
(b)先了解系统架构与行为模式,再细读
(c)熟悉沟通语言与惯例用语
(d)掌握程式码撰写者的心态与习惯

( 2 )摸清架构,便可轻松掌握全貌。
(a)阅读程式码的目的,在于了解全貌而非细节
(b)由上而下厘清架构后,便可轻易理解组成关系
(c)了解架构,必须要加上层次感
(d)探索架构的第一件事:找出系统如何初始化

( 3 )优质工具在手,读懂程式非难事。
(a)善用文字编辑器或IDE中,加速解读程式码
(b)grep按(读者:推荐来源透视)是一个基本而极为有用的工具
(c)gtags可建立索引,让搜寻更有效率
(d)再搭配htags制作的HTML文件,更是如虎添翼

( 4 )望文生义,进而推敲组件的作用。
(a)好的说明文件难求,拼凑故事的能力很重要
(b)探索架构的第一步─ ─找到程式的入口
(c)系统多会采用相同的架构处理插件程式
(d)随着实务经验,归纳常见的架构模式
(e)善用名称可加速了解

( 5 )找到程式入口,再由上而下抽丝剥茧。
(a)展开的同时,随手记录树状结构
(b)无法望文生义的函式,先试着预看一层
(c)根据需要了解的粒度,决定展开的层数

( 6 )阅读的乐趣,透过程式码认识作者。
(a)阅读程式码是新时代程式人必备的重要技能
(b)好的名称能够摘要性地点出实体的作用
(c)转换立场,理解作者的思考方式
(d)从程式码着手认识作者独有的风格,进而见贤思齐

[学习方法]如何解析源代码相关推荐

  1. Java Web项目源代码|CRM客户关系管理系统项目实战(Struts2+Spring+Hibernate)解析+源代码+教程

    客户关系管理 (CRM) CRM一般指客户关系管理 客户关系管理是指企业为提高核心竞争力,利用相应的信息技术以及互联网技术协调企业与顾客间在销售.营销和服务上的交互,从而提升其管理方式,向客户提供创新 ...

  2. 联系人管理-客户拜访记录| CRM客户关系管理系统项目 实战七(Struts2+Spring+Hibernate)解析+源代码

    联系人管理-客户拜访记录| CRM客户关系管理系统项目 实战七(Struts2+Spring+Hibernate)解析+源代码 客户拜访记录的列表的显示, 客户拜访记录的保存, 客户拜访记录查询(条件 ...

  3. GitHub趋势榜第一:超级命令行工具Semantic,比较解析源代码

      新智元报道   来源:GitHub 编辑:大明 [新智元导读]作为开发者,天天都要与源代码打交道,面对不同版本,不同语言的代码进行比较.分析,理顺开发流程往往是开发者的日常.近日,一款名为Sema ...

  4. 计算机二级C语言程序设计题+答案解析+源代码(一)

    例题一 题目 使用VC++2010打开考生文件夹下prog1中的解诀方案.此解决方案的项目中包含- -个源程序文件prog1.c 在此程序中,编写函数fun,该函数的功能是:统计-行字符串中单词的个数 ...

  5. 客户管理模块(保存查询客户)| CRM客户关系管理系统项目实战二(Struts2+Spring+Hibernate)解析+源代码

    引入数据字典,配置一对多的关系 异步加载 (JSON的使用,将list集合封装为json的数据,然后删除部分数据,JSON的数据发送到前端,前端页面获取对应的数据,遍历json的数据) 数据字典(下拉 ...

  6. 欢乐拼购商城APP系统软件模式解析源代码

    欢乐拼购系统开发功能详解,欢乐拼购模式开发案例,欢乐拼购APP开发,欢乐拼购APP商城开发. "互联网+"浪潮的到来,社交电商得到新的发展,社交电商以其较强黏性.互动性.精确用户细 ...

  7. 解析html,批量下载图片(java实现)

    import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org. ...

  8. fortify源代码扫描问题分析汇总

    编号 漏洞名称 漏洞危害 修复建议 1 Dynamic Code Evaluation: Unsafe Deserialization 动态代码评估:不安全的反序列化 Actuator正是Spring ...

  9. Boost学习之语法解析器--Spirit

    Boost.Spirit能使我们轻松地编写出一个简单脚本的语法解析器,它巧妙利用了元编程并重载了大量的C++操作符使得我们能够在C++里直接使用类似EBNF的语法构造出一个完整的语法解析器(同时也把C ...

最新文章

  1. 十、调度算法----时间片轮转、优先级调度、多级反馈队列
  2. gradle第二天(Building a RESTful Web Service)
  3. python取均匀不重复的随机数
  4. 重写Notification有感~~
  5. 不间断电源ups标准_什么是ups不间断电源,ups电源的重要性。
  6. 2020 操作系统第二次习题
  7. Java代码质量检测评估工具-Findbugs
  8. rserve php,使用Rserve远程执行R脚本
  9. 浅谈SDN中的OverLay与UnderLay技术
  10. AI时代学习新的技术,方向为计算机视觉--欢迎来我的简书blog拔草
  11. Kotlin 和 Flutter 对于开发者究竟意味着什么?
  12. R语言向matlab转化,我有一段MATLAB的程序,现在想转换成R语言代码
  13. python设计一个爱心_python画一个玫瑰和一个爱心
  14. 常用的python模块及安装方法
  15. 计算机文言,中国最具有概括性的文言文文字?本人学计算机编程的
  16. 广州最最最牛逼的 IT 公司全在这了!
  17. SecureCRT zmodem
  18. 计算机中函数的括号怎么输,Excel函数中括号的使用
  19. 玩转windbg软件调试视频教程发布-windbg入门教程
  20. android apk 重新签名工具,安卓apk重新签名教程,快来定制自己的apk吧

热门文章

  1. windbg学习.formats--转换成各种进制
  2. Oracle--SQL技巧之二(多行记录用逗号拼接在一起)
  3. java访问jar中的资源问题代码
  4. 实验6 控制结构综合程序设计 7-3 简单计算器
  5. 图像坐标球面投影_坐标系统及投影概述
  6. java 多线程同步_浅谈Java多线程(状态、同步等)
  7. 珠海 第十届亚洲机器人锦标赛_2016年第十届亚洲机器人锦标赛在广东珠海成功举办...
  8. Java黑皮书课后题第1章:1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里。编写一个程序显示以每小时为多少千米为单位的平均速度值(1英里等于1.6千米)
  9. oracle 三层嵌套查询,oracle 三层嵌套分页查询
  10. ruby on rails 站点