Foxtable(狐表)用户栏目专家坐堂 → 如何精简代码


  共有2435人关注过本帖树形打印复制链接

主题:如何精简代码

帅哥哟,离线,有人找我吗?
hbhb
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
如何精简代码  发帖心情 Post By: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

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

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/10 22:36:00 [只看该作者]

 呃,如果处理是一样的,可以提前出来写成循环啊。如果是不同的代码,肯定不能精简。

 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2016/8/10 22:50:00 [只看该作者]

那代码肯定有部分是相同的,抽取出来,也够烦的?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/10 22:52:00 [只看该作者]

 如果不是大部分相同,就不需要抽取。

 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2016/8/10 22:56:00 [只看该作者]

那代码量是不是不好?不是说越精简越好吗?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/10 23:04:00 [只看该作者]

以下是引用hbhb在2016/8/10 22:56:00的发言:
那代码量是不是不好?不是说越精简越好吗?

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2016/8/10 23:19:00 [只看该作者]

dim tb as table = tables("表a")
代码中我不用tb变量,直接用tables("表a"),这样看的清楚,有无影响。字符量是不是大?

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/11 8:40:00 [只看该作者]

如果有多处用到tables("表a"),那么还是定义成变量使用,看似代码量是省了,实际上效率却低了。

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2016/8/11 8:54:00 [只看该作者]

只要你的代码里存在大量的复制黏贴,并且仅仅是为了修改几个变量,那么你的代码就需要提取和优化。
另一种优化就是,你逻辑要正确,可以节约很多代码

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2016/8/11 15:36:00 [只看该作者]

上个例子。不应该有么多的代码

 回到顶部