如何保持代码整洁有序? [关闭]

Posted

技术标签:

【中文标题】如何保持代码整洁有序? [关闭]【英文标题】:How to keep code clean and organized? [closed] 【发布时间】:2015-06-26 07:51:35 【问题描述】:

保持代码整洁有序对于未来的维护很重要,特别是对于程序员循环(或被解雇,希望不会)的公司。

我一直在谷歌上四处寻找,我发现了一些有用的东西,例如:正确命名变量和方法等......但是,尽管我尝试正确应用这些规则中的大部分,但我仍然有无法正确组织我的代码,我会评论所有内容,以便维护变得更容易。

我迷失在复杂的代码中,其中有许多嵌套语句,例如:if inside if inside for,等等......

为了解决这些问题,我可以使用 Netbeans 来解决,如下所示:

Netbeans 允许通过<editor-fold> 标记压缩代码。现在还可以,但问题在于其他人必须修改此代码,因为该 xml 标记依赖于 IDE。

问题是:什么是正确的方式或模式,同时使代码易于理解和清洁,而不是依赖于 IDE。

【问题讨论】:

做好文档并遵循 Java 的约定。差不多吧。如果不能自我解释,您可以在代码中添加一些 cmets。 这是一个相当广泛的问题,并不是真正的特定编程问题。也许它最适合Programmer's Stack Exchange?不确定.. 无论哪种方式,请查看on-topic。保持代码整洁有序的一个好方法是遵守SOLID principles 阅读:amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/… 你会得到很多关于如何简化复杂代码逻辑的想法(许多嵌套的 if/else - 正如你所描述的)。 @VinceEmigh 这个问题不适合程序员——它会很快被否决并在那里关闭,见meta.programmers.stackexchange.com/questions/6483/… 推荐阅读:What goes on Programmers.SE? A guide for Stack Overflow 只是不要这样做。将您的方法保持在 20-30 行以下,您不会觉得需要在其中折叠。复杂代码唯一合理的做法是避免它。 “提取方法”是你最好的朋友。 【参考方案1】:

从哪里开始

如果您有许多难以理解的片段,我敢肯定您不会应用所有最佳实践:

if 内部if 内部for

从干净的代码开始的一个很好的地方是阅读与该主题相关的书。尽管书籍有时会受到批评,但它可以一次涵盖多个方面,并使教程,博客笔记所拥有的知识更加系统。就个人而言,我可以推荐 Robert C. Martin 的 Clean Code。

如果您熟悉某个理论,请多多练习。编写代码并改进它。一次又一次。找一个更有经验的人向他询问更困难的案例也很有用。

我建议以下三点,从我的角度来看非常重要。

自记录代码

首先,我会将 cmets 的数量减少到最低限度,避免使用虚线、“编辑器折叠”等。如果你需要用分隔符分割你的代码——这个类可能太长了。请阅读更多关于好的 cmets 和自记录代码here。

无条件编程

很多时候,用一些 OOP 原则替换 if-elseswitch 指令是个好主意。 This answer 包含几个有用的链接。

包/类/方法大小

重新组织所有例程,这些例程太大而难以理解。使用 OOP 范式将长方法拆分为更小的、重新设计的上帝类。该规则也适用于项目 - 您可以将其拆分为模块或子项目并重用。单一职责原则可能会有所帮助 - some examples。

【讨论】:

【参考方案2】:

一个好的代码几乎就是它自己的文档。

Java 文档提供了大量关于如何以更好的方式编写代码的详细信息。

我的建议是:

使用正确的命名约定:

在您的代码中,我可以看到一些代码异味,变量 test 和 test2 可能是给其他程序员带来麻烦的主要原因。

尝试制作模块:

制作模块还可以使代码易于理解。例如,从长代码中创建可能的方法并正确命名它们。我的老师曾经告诉我:“如果你不能命名一个方法或为你的方法想一个合适的名字,那就意味着你做错了”

评论被认为很重要,但我认为好的书面代码不要依赖于 cmets。您可以添加它们来解释什么是复杂的。

适当的缩进也很重要。

【讨论】:

以上是关于如何保持代码整洁有序? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

一个保持服务器文件整洁的简单方法

一个保持服务器文件整洁的简单方法

[译] 怎样(以及为什么要)保持你的 Git 提交记录的整洁

如何让字典保持有序

如何让字典保持有序

保持 TYPO3 sys_log 干净整洁的最佳方法?