|
@@ -204,6 +204,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|
|
<li><a href="#提取变量">提取变量</a></li>
|
|
|
<li><a href="#提炼函数">提炼函数</a></li>
|
|
|
<li><a href="#内联函数">内联函数</a></li>
|
|
|
+<li><a href="#使用注释">使用注释</a></li>
|
|
|
<li><a href="#高级重构">高级重构</a></li>
|
|
|
</ul></li>
|
|
|
<li><a href="#intellij-idea重构">Intellij Idea重构</a><ul>
|
|
@@ -2249,8 +2250,17 @@ $ git config --global user.email "电子邮箱"</code></pre>
|
|
|
<p>只是首先,我们要知道我们要自己需要这些。</p>
|
|
|
<p>首先要说的就是程序员认为最难的一个话题了——命名。</p>
|
|
|
<h3 id="命名">命名</h3>
|
|
|
-<p>命名是一个特别长的,也是特别忧伤的故事。我想作为一个程序员的你,也相当恐惧这件事。</p>
|
|
|
-<p>一个好的函数名、变量名应该包含着这个函数的信息,如这个函数是干什么的,或者这个函数是怎么来的,这个变量名存储的是什么。</p>
|
|
|
+<p>命名是一个特别长的,也是特别忧伤的故事。我想作为一个程序员的你,也相当恐惧这件事。一个好的函数名、变量名应该包含着这个函数的信息,如这个函数是干什么的,或者这个函数是怎么来的,这个变量名存储的是什么。</p>
|
|
|
+<p>正因为取名字是一件很重要的事,所以它也是一件很难的事。一个好的函数名、变量名应该能正确地表达出它的涵义。如</p>
|
|
|
+<p>在《编写可读代码的艺术》也提到了这几点:</p>
|
|
|
+<ol type="1">
|
|
|
+<li>选择专业的词。最好是可以和业务相关的,它应该极具表现力。</li>
|
|
|
+<li>避免像tmp和retval这样泛泛的名字。不得不提到的一点是,tmp实在是一个有够烂的名字,将其变为timeTemp或者类似的会更直观。它只应该是名字中的一部分。</li>
|
|
|
+<li>用具体的名字代替抽象的名字。</li>
|
|
|
+<li>为名字赋予更多的信息。</li>
|
|
|
+<li>名字应该有多长。</li>
|
|
|
+<li>利用名字的格式来传递含义。</li>
|
|
|
+</ol>
|
|
|
<h3 id="函数长度">函数长度</h3>
|
|
|
<h3 id="函数嵌套">函数嵌套</h3>
|
|
|
<h3 id="重复代码">重复代码</h3>
|
|
@@ -2269,9 +2279,21 @@ $ git config --global user.email "电子邮箱"</code></pre>
|
|
|
</blockquote>
|
|
|
<p>假设我们写这些代码只要半天,而别人读起来要一天。为什么不试着用一天的时候去写这些代码,让别人花半天或者更少的时间来理解。</p>
|
|
|
<h3 id="重命名">重命名</h3>
|
|
|
+<p>在上一节中,我们提到了命名的重要性,这里首先要说到的也就是重命名。</p>
|
|
|
<h3 id="提取变量">提取变量</h3>
|
|
|
+<p>先让我们来看看一个简单的情况:</p>
|
|
|
+<div class="sourceCode"><pre class="sourceCode javascript"><code class="sourceCode javascript"><span class="cf">if</span> (<span class="va">$scope</span>.<span class="va">goodSkills</span>.<span class="at">indexOf</span>(<span class="st">'analytics'</span>) <span class="op">!==</span> <span class="op">-</span><span class="dv">1</span>) <span class="op">{</span>
|
|
|
+ <span class="va">skills</span>.<span class="at">analytics</span> <span class="op">=</span> <span class="dv">5</span><span class="op">;</span>
|
|
|
+<span class="op">}</span></code></pre></div>
|
|
|
+<p>在上面的代码里比较难以看懂的就是数字5,这时候你会怎么做?写一行注释?这里的5就是一个Magic Number。</p>
|
|
|
+<p>而实际上,最简单有效的办法就是把5提取成一个变量:</p>
|
|
|
+<div class="sourceCode"><pre class="sourceCode javascript"><code class="sourceCode javascript"><span class="kw">var</span> LEVEL_FIVE <span class="op">=</span> <span class="dv">5</span><span class="op">;</span>
|
|
|
+<span class="cf">if</span> (<span class="va">$scope</span>.<span class="va">goodSkills</span>.<span class="at">indexOf</span>(<span class="st">'analytics'</span>) <span class="op">!==</span> <span class="op">-</span><span class="dv">1</span>) <span class="op">{</span>
|
|
|
+ <span class="va">skills</span>.<span class="at">analytics</span> <span class="op">=</span> LEVEL_FIVE<span class="op">;</span>
|
|
|
+<span class="op">}</span></code></pre></div>
|
|
|
<h3 id="提炼函数">提炼函数</h3>
|
|
|
<h3 id="内联函数">内联函数</h3>
|
|
|
+<h3 id="使用注释">使用注释</h3>
|
|
|
<h3 id="高级重构">高级重构</h3>
|
|
|
<p>上面介绍的都是一些简单、基础、实用的重构技巧,更多精彩内容还是需要大家去好好掌握的。</p>
|
|
|
<h2 id="intellij-idea重构">Intellij Idea重构</h2>
|