veh*_*zzz 40 language-agnostic
在过去5年左右的时间里,我一直在使用截然不同的项目和系统.这些项目的代码在质量,风格,规模方面存在显着差异.我看到了两个例子:干净,令人厌恶的1000行函数以及条件代码.
我仍然不能很好地阅读其他人的代码,理解系统的内部等.
我想了解一下您使用哪些技术来提高阅读和理解其他人的代码的技巧,如何快速掌握,常用的工具,方法等.
我举这个答案,许多只会枪吧:你可以提高阅读技能的代码通过阅读代码
有一篇相关的帖子可以提高编程技巧,这可能很有用,并与这篇文章相提并论:你为提高编程技巧做了哪些最有效的工作?
Ree*_*sey 36
最重要的是,帮助我的是重构.
拿一个项目(这可以是一个工作项目,个人项目,开源项目,等等),然后开始重构.
随着时间的推移,你重构其他人的代码越多,你就越能"进入他们的脑海"并理解他们的思维方式,无论好坏.
ven*_*ter 23
我个人相信
"任何傻瓜都可以编写计算机可以理解的代码.优秀的程序员编写人类可以理解的代码." -Martin Fowler
所以我的方法是找到那个人并且吹掉他的头,这样他/她就不会说这种病毒.
不要只读取开源代码,加入一个.通过这种方式,你可以问"为什么这样写"而不仅仅是阅读它.通常情况下,有一个潜在的原因可以做一些不正常的事情,无论是否真实.
此外,如果您积极参与,您将能够看到代码库的进展.您将熟悉不同人的发展方式.当您遇到需要阅读的非附属项目时,这可能为您的大脑提供不同的途径.
"你可以通过阅读代码提高阅读代码技能"
正确.
要读什么代码?
任何吸引你的开源项目.大多数开源编码非常好.
不要读随机代码.阅读你真正关心的东西.您越了解问题域,您就越能体会到您正在阅读的解决方案.
除了导致更好地阅读代码的简单经验之外,我建议将调试器附加到应用程序,添加一些断点,并在数据通过系统时对其进行分析.这样你就知道发生了什么,而不是假设(通过逻辑或任何其他方式)发生了什么.
特别是2件事
重构 当你看到代码模糊了IDE的水域时,重构它以便它有意义,因此它很容易阅读.
注释 使用重构来划分"如何",但使用您的评论来说明原因.
就像Steve McConnell在Code Complete 2中所说的那样,遵循Psuedocode编程过程(在这种情况下,在编写代码之后).它将帮助您和任何未来的开发人员阅读代码.