文章博客

技术团队文档示例


1. 我们在做什么?

<h4>编程式规则</h4> <ul> <li>DRY(不要重复自己,don't repeat yourself),</li> <li>高内聚低耦合(loose coupling high cohesion),</li> <li>YAGNI (你不会用到它的,ya ain't gonna need it),</li> <li>最小意外原则(Principle of least surprise),</li> <li>单一责任(single responsibility)等等。</li> </ul> <p>下面这种写法也更优雅,不过代码肯定是越直白越好,所以如果我们再深入挖掘,看看这段代码究竟做了什么事,我们会发现,它不过是在进行简单的加(add) 和乘(multiply)运算而已。</p> <pre><code class="language-java">var add = function(x,y){ return x+y ; } var multiply = function(x,y){ return x*y } var flock_a = 4; var flock_b = 2; var flock_c = 0 ; var result = add(multiply(flock_b, add(flock_a, flock_c)), multiply(flock_a, flock_b)); console.log(result) //16</code></pre> <h5>上面用到的数学公式</h5> <pre><code class="language-java">// 结合律(assosiative) add(add(x, y), z) == add(x, add(y, z)); // 交换律(commutative) add(x, y) == add(y, x); // 同一律(identity) add(x, 0) == x; // 分配律(distributive) multiply(x, add(y,z)) == add(multiply(x, y), multiply(x, z));</code></pre> <h5>依据上面的共识修正</h5> <pre><code class="language-java">// 原有代码 add(multiply(flock_b, add(flock_a, flock_c)), multiply(flock_a, flock_b)); // 应用同一律,去掉多余的加法操作(add(flock_a, flock_c) == flock_a) add(multiply(flock_b, flock_a), multiply(flock_a, flock_b)); 例如:4*3+4*3 // 再应用分配律 multiply(flock_b, add(flock_a, flock_a)); 例如:4*(3+3)</code></pre>

页面列表

ITEM_HTML