What's the best way to read and understand someone else's code?
Find one thing you know the code does, and trace those actions backward, starting at the end
Say, for example, you know that the code you're viewing ultimately creates a file with a list of movie titles. Figure out where in the code - the specific, few lines - it generates that file.
Then, move one step backward and figure out how it places the info in the file.
Them, move another step backward and figure out where the info came from
how the body of code is organized(where variables are defined, where different types of functions are located, etc)
the person's style of coding
how the person who wrote the code thinks and problem solves
[ a big file of code that doesn't really mean much at all to you ]
you'll now be looking at:
[ still a big file of code, but where you now understank a few specific sections ]
using "chains of actions" to gradually understand a never-before-seen piece of code
Rinse and repeat
Repeat that process multiple times, and you'll rapidly increase your understanding of more and more pieces of the overall codebase
The reason that works well is that, in all cases, a body of code is designed to tackle one or more complex problems. So you'll always have those "chains of actions" throughout
And the more you can gain an understanding of how different parts of the code are connected, the more you'll develop an understanding of the entire codebase
The more good code you see, the easier it becomes to read and understand all code, and the faster you cando so
The more you watch to expert examples, the better you can become. The less exposure you have to experts or result of expert workm the less likely you are to develope expert skills
What's the best way to read and understand someone else's code?的更多相关文章
- .net点选验证码实现思路分享
哈哈好久没冒泡了,最进看见点选验证码有点意思,所以想自己写一个. 先上效果图 如果你被这个效果吸引了就请继续看下去. 贴代码前先说点思路: 1.要有一个汉字库,并按字形分类.(我在数据库里是安部首分类 ...
- C# 在腾讯的发展
本文首发我的微信公众号"dotnet跨平台", 内容得到大家热烈的欢迎,全文重新发布在博客,欢迎转载,请注明出处. .NET 主要的开发语言是 C# , .NET 平台泛指遵循EC ...
- 你必须知道的EF知识和经验
注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式. 推荐MiniProfiler插件 工欲善其事,必先利其器. 我们使用EF和在很大程度提高了开发速度,不过随之带来的 ...
- 关于CryptoJS中md5加密以及aes加密的随笔
最近项目中用到了各种加密,其中就包括从没有接触过得aes加密,因此从网上各种查,官方的一种说法: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学 ...
- 试试SQLSERVER2014的内存优化表
试试SQLSERVER2014的内存优化表 SQL Server 2014中的内存引擎(代号为Hekaton)将OLTP提升到了新的高度. 现在,存储引擎已整合进当前的数据库管理系统,而使用先进内存技 ...
- CoreCLR源码探索(一) Object是什么
.Net程序员们每天都在和Object在打交道 如果你问一个.Net程序员什么是Object,他可能会信誓旦旦的告诉你"Object还不简单吗,就是所有类型的基类" 这个答案是对的 ...
- 【.net 深呼吸】细说CodeDom(3):命名空间
在上一篇文章中,老周介绍了表达式和语句,尽管老周没有把所有的内容都讲一遍,但相信大伙至少已经掌握基本用法.在本文中,咱们继续探讨 CodeDom 方面的奥秘,这一次咱们聊聊命名空间. 在开始之前,老周 ...
- 【.net 深呼吸】细说CodeDom(1):结构大观
CodeDom 是啥东东?Html Dom听过吧,XML Dom听过吧.DOM一般可翻译为 文档对象模型,那 Code + DOM呢,自然是指代码文档模型了.如果你从来没接触过 CodeDom,你大概 ...
- Asp.Net Mvc 使用WebUploader 多图片上传
来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是 ...
- 十分钟介绍mobx与react
原文地址:https://mobxjs.github.io/mobx/getting-started.html 写在前面:本人英语水平有限,主要是写给自己看的,若有哪位同学看到了有问题的地方,请为我指 ...
随机推荐
- react常见bug - 查询条件变化,但page未重置为1
问题1.多次触发请求,且存在潜在的竞态问题 const [page, setPage] = useState(1); const [keyword, setKeyword] = useState('' ...
- uniapp 模拟器的使用
uniapp 模拟器的使用 下载夜深模拟器 uniapp - 工具-设置 adb路径 模拟器路径 模拟器端口号 :26944
- char和int的类型转换
char类型是16位的,底层采用unicode编码保存.char类型是可以直接赋值给int类型的,因为是16位到32位低到高.举个例子比如int i='1';打印i的值是49.char类型跟int类型 ...
- django_url反向解析
**************************************************************************************************** ...
- String类、StringBuffer类、StringBuilder类
String类.StringBuffer类.StringBuilder类 String类的创建 // 方式一 直接赋值 String s = "woshihaoren"; // 方 ...
- toString能转换number类型吗
let num = 60console.log(toString(num)) // [object Undefined] console.log(String(num)) // 60
- "蔚来杯"2022牛客暑期多校训练营1 C.Grab the Seat!
C.Grab the Seat! 题目链接 https://ac.nowcoder.com/acm/contest/33186/C 题目大意 1.二维平面中,(0,1) - (0,m)为屏幕 2.有n ...
- 任意的形如 z = F(x,y)的曲面生成与显示---基于OpenGL Core Profile
运行结果: (圆锥面) (抛物面) (马鞍面) 其中的做法是:从顶部看上去就是一个平面网格.每个点的 z.x的位置都是程序细分出来的(指定起始.结束.步长).比较固定.但高度 y 的计算使用 用户 ...
- Windows10电源选项:睡眠、休眠、启用快速启动
参考链接: http://www.dnpz.net/diannaozhishi/2223.html http://www.cfan.com.cn/2018/0118/130151.shtml 在介绍w ...
- ps18.3.20
PS添加图层蒙版,然后画笔,括号是画笔的大小,,还要调,不透明度