以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何精简代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88884)

--  作者:hbhb
--  发布时间:2016/8/10 22:31:00
--  如何精简代码
大师:实现一个功能就写了2000行代码,怎么人家几行代码就好了,什么情况?究竟怎么精简?
比如,有个判断。
第一种写法:
for  each a  as string  in 集合
一段代码
next
if 变量 = a then
一段代码
elseif 变量 = b  then
一段代码
end if

第二种写法:
if 变量 = a then
for  each a  as string  in 集合
一段代码
next
一段代码
elseif 变量 = b  then
for  each a  as string  in 集合
一段代码
next
一段代码
end if

请问两种写法,第二种写法有何不妥?

--  作者:大红袍
--  发布时间:2016/8/10 22:36:00
--  
 呃,如果处理是一样的,可以提前出来写成循环啊。如果是不同的代码,肯定不能精简。
--  作者:hbhb
--  发布时间:2016/8/10 22:50:00
--  
那代码肯定有部分是相同的,抽取出来,也够烦的?
--  作者:大红袍
--  发布时间:2016/8/10 22:52:00
--  
 如果不是大部分相同,就不需要抽取。
--  作者:hbhb
--  发布时间:2016/8/10 22:56:00
--  
那代码量是不是不好?不是说越精简越好吗?
--  作者:大红袍
--  发布时间:2016/8/10 23:04:00
--  
以下是引用hbhb在2016/8/10 22:56:00的发言:
那代码量是不是不好?不是说越精简越好吗?

 

不是越精简越好,是能精简的才精简,不能的,也没办法啊。要看实际问题


--  作者:hbhb
--  发布时间:2016/8/10 23:19:00
--  
dim tb as table = tables("表a")
代码中我不用tb变量,直接用tables("表a"),这样看的清楚,有无影响。字符量是不是大?

--  作者:Hyphen
--  发布时间:2016/8/11 8:40:00
--  
如果有多处用到tables("表a"),那么还是定义成变量使用,看似代码量是省了,实际上效率却低了。

因为tables("表a")每次都要到tables集合中查找名叫"表a"的表,表数量越多查找消耗越大。

代码精简不等于效率高!!相反有时为了提高效率往往要写多几行代码。

--  作者:jspta
--  发布时间:2016/8/11 8:54:00
--  
只要你的代码里存在大量的复制黏贴,并且仅仅是为了修改几个变量,那么你的代码就需要提取和优化。
另一种优化就是,你逻辑要正确,可以节约很多代码

--  作者:lihe60
--  发布时间:2016/8/11 15:36:00
--  
上个例子。不应该有么多的代码