|
@@ -193,7 +193,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|
|
<li><a href="#可读的代码">可读的代码</a><ul>
|
|
|
<li><a href="#命名">命名</a></li>
|
|
|
<li><a href="#函数长度">函数长度</a></li>
|
|
|
-<li><a href="#重复代码">重复代码</a></li>
|
|
|
+<li><a href="#其他-2">其他</a></li>
|
|
|
</ul></li>
|
|
|
<li><a href="#代码重构">代码重构</a><ul>
|
|
|
<li><a href="#重命名">重命名</a></li>
|
|
@@ -2231,7 +2231,11 @@ $ git config --global user.email "电子邮箱"</code></pre>
|
|
|
<li>减少复杂函数的出现(如,不超过三十行)</li>
|
|
|
<li>然后,你要去测试它。这样你就知道需要什么,实际上要做到这些也不是一些难事。</li>
|
|
|
</ul>
|
|
|
-<p>只是首先,我们要知道我们要自己需要这些。</p>
|
|
|
+<p>只是首先,我们要知道我们要自己需要这些。对于没有太多编程经验的人,建议先从两个基本点做起:</p>
|
|
|
+<ul>
|
|
|
+<li>命名</li>
|
|
|
+<li>函数长度</li>
|
|
|
+</ul>
|
|
|
<p>首先要说的就是程序员认为最难的一个话题了——命名。</p>
|
|
|
<h3 id="命名">命名</h3>
|
|
|
<p>命名是一个特别长的,也是特别忧伤的故事。我想作为一个程序员的你,也相当恐惧这件事。一个好的函数名、变量名应该包含着这个函数的信息,如这个函数是干什么的,或者这个函数是怎么来的,这个变量名存储的是什么。</p>
|
|
@@ -2264,10 +2268,14 @@ public void setNumber(String number) {
|
|
|
<blockquote>
|
|
|
<p>函数是指一段在一起的、可以做某一件事儿的程序。</p>
|
|
|
</blockquote>
|
|
|
-<p>这就意味着从定义上来说,这段函数应该只做一件事——但是什么才是真正的一件事呢?实际上还是TASKING,将一个复杂的过程一步步地分解成一个个的函数,每个函数只做他的名称对应的事。</p>
|
|
|
+<p>这就意味着从定义上来说,这段函数应该只做一件事——但是什么才是真正的一件事呢?实际上还是TASKING,将一个复杂的过程一步步地分解成一个个的函数,每个函数只做他的名称对应的事。对于一个任务来说,他有一个稳定的过程,在这个过程中的每一步都可以变成一个函数。</p>
|
|
|
<p>因此,长的代码意味着一件事——这个函数可能违反了单一职责原则,即这个类做了太多的事。通常来说,一个类,只有一个引起它变化的原因。当一个类有多个职责的时候,这些代码就容易耦合到一起了。</p>
|
|
|
-<p>对于函数长度的控制是为了有效控制分支深度。如果我们用一个函数来实现一个复杂的功能,那么不仅仅在我们下次阅读的时间会花费大量的时间。而且如果我们的代码没有测试话,那么这些代码就会变得越来越难以理解。</p>
|
|
|
-<h3 id="重复代码">重复代码</h3>
|
|
|
+<p>对于函数长度的控制是为了有效控制分支深度。如果我们用一个函数来实现一个复杂的功能,那么不仅仅在我们下次阅读的时间会花费大量的时间。而且如果我们的代码没有测试话,那么这些代码就会变得越来越难以理解。而在我们写这些函数的时候就没有测试,那么这个函数就会变得越来越难以测试,它们就会变成遗留代码。</p>
|
|
|
+<h3 id="其他-2">其他</h3>
|
|
|
+<p>虽然只想介绍上面的简单的两点,但是顺便在这里也提一下重复代码~~。</p>
|
|
|
+<h4 id="重复代码">重复代码</h4>
|
|
|
+<p>在《重构》一书中首先提到的Code Smell就是重复代码(Duplicate Code)。重复代码看上去并不会影响我们的阅读体验,但是实际上会发生这样的事——重复的代码阅读体验越不好。</p>
|
|
|
+<p>DRY(Don’t Repeat Yourself)原则是特别值得玩味的。当我们不断地偏执的去减少重复代码的时候,会导致复杂度越来越高。在适当的时候,由于业务发生变更,我们还需要去拆解这些不重复的代码。</p>
|
|
|
<h2 id="代码重构">代码重构</h2>
|
|
|
<p>什么是重构?</p>
|
|
|
<blockquote>
|