Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何毫不费力地阅读代码_C++_Design Patterns - Fatal编程技术网

C++ 如何毫不费力地阅读代码

C++ 如何毫不费力地阅读代码,c++,design-patterns,C++,Design Patterns,我是一个新的专业发展。我的意思是我只有5个月的专业发展经验。在此之前,我曾自学或在大学学习过。所以我在查看问题时发现了一个关于代码质量的问题。我自己也有一个问题。如何提高我的代码理解/阅读技能?它还会提高我将要编写的代码的质量吗?有比匈牙利语更好的代码表示法吗?对于C++设计模式有没有真正好的书(或者语言没关系)? 提前感谢您回答这些问题并帮助我改进:) P.S.-我也忘了告诉你我正在用C++和C语言开发。 < P>我发现只有更好的方法来阅读别人的代码,也就是阅读别人的代码,当你发现一个你不理

我是一个新的专业发展。我的意思是我只有5个月的专业发展经验。在此之前,我曾自学或在大学学习过。所以我在查看问题时发现了一个关于代码质量的问题。我自己也有一个问题。如何提高我的代码理解/阅读技能?它还会提高我将要编写的代码的质量吗?有比匈牙利语更好的代码表示法吗?对于C++设计模式有没有真正好的书(或者语言没关系)? 提前感谢您回答这些问题并帮助我改进:)


<> P.S.-我也忘了告诉你我正在用C++和C语言开发。

< P>我发现只有更好的方法来阅读别人的代码,也就是阅读别人的代码,当你发现一个你不理解的方法或语言结构时,查找并玩它,直到你了解正在发生的事情。 匈牙利符号很糟糕,现在很少有人使用它,这在程序员中更像是一个笑话

事实上,匈牙利符号的名称本身就是一个笑话:

“匈牙利符号是 因为 无法发音的辅音串 模糊地像辅音rich 一些东欧国家的正字法 语言。”

“匈牙利符号是战术符号 核武器的源代码 模糊处理技术;使用它!由于 源代码的绝对数量 受这个成语的影响,什么也做不到 更快地杀死维修工程师 而不是精心设计的匈牙利符号 攻击。”

一直受欢迎的莱纳斯对此有几句话要说

“将函数类型编码为 名字(所谓的匈牙利语) (注释)大脑是否受损 编译器无论如何都知道类型,并且 你可以检查这些,这只会让人困惑 程序员。”

-

编辑:

摘自Tobias Langner的评论

“有关Apss匈牙利语和匈牙利语系统之间的差异,请参见”


Joel on Software提供了如何阅读他人代码的技巧。

阅读和理解技能是时间问题。随着经验的增加,你会提高他们。还取决于您正在阅读的代码的质量


请记住,有时直接从工作中看到的东西中学习并不是最好的办法。书籍将教会您最佳实践,您将能够根据自己的经验调整它们。

请其他人阅读您的代码试试看是否有同事或类似的人与您一起进行代码审查。让其他人梳理您的代码并向您询问有关代码的问题将为您的风格和技术提供新的见解和批评。从自己和他人的错误中吸取教训。

阅读代码就像阅读文学作品一样,有时你需要对作者有一些洞察,以了解你在看什么和期待什么。提高理解能力的唯一方法是尽可能多地阅读代码,并努力跟随


我认为上面提到的很多内容都适用于编码

我的代码可读性的最大改进是在我开始大量使用空白时。

给你一点鼓励,我已经做了30年的专业程序员,但我仍然觉得阅读别人的代码非常困难。不幸的是,主要原因是代码的质量遵循鲟鱼法则——90%是垃圾。所以如果你觉得很难,不要认为这是你的错

我发现Joel on软件与匈牙利记谱法的争论非常相关

似乎符号的初衷是对不明显的类型信息进行编码——不是一个变量是否是int(iFoo),而是它是什么类型的int——比如以厘米为单位的距离(cmFoo)。这样,如果您看到“cmFoo=mBar”,您可以判断它是错误的,因为即使两者都是int,一个是meters,另一个是cm,因此语句的逻辑是错误的,即使语法是正确的。(当然,我个人更喜欢使用这样的类,即该语句甚至不会编译,或者可以为您进行转换)

问题是在某个时候,人们开始使用它却不了解它,世界被大量的dwfoo和bbar所诅咒

每个人都需要阅读那篇文章-

如何增加代码 理解/阅读技能

读。从错误中吸取教训。检查SO和其他地方的答案。当你回想你写的一段代码时,你会说“啊哈!我应该改做xyz!”然后你就开始学习了。读一本适合你选择的语言的好书,超越基础知识,理解更高级的概念

那么,除了阅读:写!编码就像数学:如果不实际解决问题,你就无法完全掌握它。浏览一道数学题的答案不同于拿出一张空白纸自己解决它

如果可以的话,也可以做一些结对编程,看看其他人是如何编写代码和传播想法的

它还会提高代码质量吗 我会写吗

见上文。随着你的进步,你应该变得更有效率。读一本关于设计模式的书是不会发生这种情况的。它将通过解决现实世界中的问题和理解你所读内容的作用来实现

有没有比这更好的代码表示法 匈牙利的

视情况而定。通常我会避免使用它们,并使用描述性名称。我可能使用匈牙利类型的符号的一个例外是UI元素,如Windows窗体或ASP.NET控件,例如:使用btn作为提交按钮(btnSubmit)的前缀,使用txt作为文本框(txtFirstName)的前缀,等等,但它与project不同