代码应具有逻辑性强,什么不需要了解代码的逻辑结构

  代码应具有逻辑性强,什么不需要了解代码的逻辑结构

  在我看来,一个程序最重要的是“逻辑表示”的优化,其次才是“性能”。当然,肯定会有需要性能的场景,但这不是“追求”,而是用大量积累的经验做出的正确决定。即使在那种情况下,“逻辑表示”仍然非常重要。

  “逻辑?

  “表现”的意思就是如何用程序清晰地体现你的逻辑。每一个程序的目标都是解决一个具体的问题,有一个解决问题的思路。这个想法被程序表达出来就是逻辑。还有初中

  证明高中的数学题是一样的,逻辑清晰,并表达出来,才是最终目的。现在,只不过是把原本写在纸上的文字通过代码表达出来。

  实际上是写代码

  它还使用一种特殊的语言,——编程语言,而不是文字来表达一个意思。平时写文章要注意分段、分层、组织,写程序也是一样。可能因为你水平有限,一时半会儿还不了。

  你写不出华丽优美的文字,但写文章的首要目标是“清楚”,让别人明白你的意思。写程序也是如此。写程序的时候,不要总想着用什么技巧,追求这些技巧。

  聪明的好处。

  老赵承认,每一项技能都有它的作用,否则就是“笑话”,而不是“技能”。但是,有得有失,某项技能必然有其缺陷。比如上一个题目“数组元素交换”,有个朋友认为不应该用额外的变量来交换两个元素,即:

  数组[j]=数组[i]数组[j];

  array[I]=array[j]-array[I];

  array[j]=array[j]-array[I];

  他认为这段代码节省了额外的空间,这在内存紧张时是必要的。但老赵认为,可读性到这里就丧失了。对于一段标准的交换代码,每个人都知道它的用途,但是正在看这篇文章的你能马上反应出上面三行代码的作用吗?

  在编程领域有一个广为流传的真理:快速制作干净的代码远胜于快速制作代码。

  简单来说,这里的clean无疑就是“清楚”的意思。因为代码清晰,所以我们可以找出它的性能瓶颈,然后有针对性地进行优化。要知道调用一个

  20%的进程被优化,比80%的进程被调用10次(假设两个进程的原始消耗接近)要明显得多。

  就拿那个朋友的观点来说,记忆紧张的时候怎么办。也许他确实省了一些钱(但高级语言中的“省”对于最终编译结果是两回事)。但是在记忆中

  当你紧张的时候,首先要做的就是努力找出最耗费资源的地方,然后进行优化。所以有可能针对某个问题重新设计它的数据结构,比如压缩数据存储方式,份额数量等。

  根据空间等等,而不是试图保存一个单词长的记忆。那么,我们如何促进瓶颈的发现呢?

  安全。

  当然,上面的代码不是不可用,但是如果真的要这么做,请封装成一个子方法:

  私有void Swap(int[] array,int i,int j)

  数组[j]=数组[i]数组[j];

  array[I]=array[j]-array[I];

  array[j]=array[j]-array[I];

  一旦你分离了这个逻辑,在代码中只应用了Swap方法,程序马上就变得清晰了。而且这时候这三行代码就变得好理解了,别人也能一眼看出它的作用,因为方法的名字已经说的很清楚了:交换。

  所以我们写程序的时候,要仔细思考如何把变量名、方法名或者参数名说清楚,如何让程序的逻辑更清晰,如何更好的把你的意图告诉别人。

  剩下的细节优化,什么内联子流程.让编译器来处理这一切。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: