Foxtable(狐表)用户栏目专家坐堂 → [原创]狐表中能否增加一个代码管理器!增加对一个项目的所有代码进行集中管理!


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

主题:[原创]狐表中能否增加一个代码管理器!增加对一个项目的所有代码进行集中管理!

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
[原创]狐表中能否增加一个代码管理器!增加对一个项目的所有代码进行集中管理!  发帖心情 Post By:2009/4/15 19:39:00 [显示全部帖子]

贴子已被锁定

     狐表的代码全部是面向对象的,代码分布于所有的对象中。这是典型的面向对象,条理清晰,所见即所得。但是,在一个项目中,当数据表很多,窗口很多的时候,又出现了一个新的问题:那就是代码过于分散。一个稍微复杂一点的项目,至少有几十个表,至少有几十个窗口,一个窗口中至少有几十个控件。这样一来,这个项目中的代码就会变得非常分散,甚至分散到几百个不同的地方。这样,就给代码的管理带来很大的不便。
    在实际中,发现代码过于分散至少有两个方面的问题:一是要不容易看到代码的全部,更重要的是在修改代码时容易遗漏某一个地方的代码!(例如在一个窗口中修改代码时,很难一下子想起来这个窗口中共有多少个控件、多少个地方有代码,以保证能把所有的代码修改一致)当修改项目中的某一个设置时(例如修改一个全局变量的名字),要到很多个地方去修改代码,一不小心,漏掉了一个地方,就会给系统带来很大的问题。二是效率很低,当修改代码时,要不停的切换表,切换窗口,切换控件,再切换控件的不同事件。把太多的时间浪费在来回切换上,感觉效率很低。
    所以,建议在狐表中能否设置一个代码管理器。对保留系统原有功能的基础上(即仍然可以在某个表、某个控件中修改代码),增加一个对项目中的所有代码进行集中管理的方式。初步考虑,对一个项目中的所有代码可以采取树形的方式进行管理,例如首先把代码分为项目事件代码、表事件代码、窗口事件代码、菜单事件代码等,表事件先按不同的表名区分,每个表的代码又分为表相关、列相关、行相关等事件,窗口事件代码先根据不同的窗口名区分,每个窗口的代码再根据不同的控件区分等。以此类推,就能在一个地方很方例的管理项目中的所有代码,即提高效率,又能减少漏改某一个代码的可能性。
    我对其他的面向对象的编程工具不太熟悉,不太清楚其他系统中是怎样管理代码的,我想着应该有类似的或者更好的对代码的管理方式吧,希望大家参与讨论!同时希望反对者也高抬贵手,不要马上说不行,一枪给毙了!

[此贴子已经被作者于2009-4-15 19:58:45编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/15 19:49:00 [显示全部帖子]

以下是引用hnaysx在2009-4-15 19:48:00的发言:

提过N边了

怎么,老大意识不到重要性?
那大家就齐心协力,让他看看什么叫群众的力量!

[此贴子已经被作者于2009-4-15 19:49:49编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/16 8:33:00 [显示全部帖子]

以下是引用狐狸爸爸在2009-4-15 21:36:00的发言:

No

给个合适的理由好吗?
难道没有什么理由就否决了?贺老师说过,只要是大部分用户需要的,就应该去做,工作量大不是不做的理由.工作量大可以慢慢做,现在不紧急可以慢慢来,为什么一定要说NO呢?
个人认为至少开发版就提供这样的功能,不知大家怎么看?


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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/16 9:19:00 [显示全部帖子]

以下是引用yuansq在2009-4-16 8:46:00的发言:
面向对象就是这样,难。

    我也感觉面向对象就是这样。
    但我的想法是,这样改进后,代码仍然是面向对象的,只不过,我们另外增加了一个对代码进行集中管理的地方而已。这并不影响代码仍然是面向对象的,不影响代码是从属于各自存在的对象的。
    从理论上来讲,好像对现有的面向对象的内部实质不会作任何改变,只是增加一个外部管理器。


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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/16 9:32:00 [显示全部帖子]

以下是引用cpayinyuan在2009-4-16 9:19:00的发言:

    我也感觉面向对象就是这样。
    但我的想法是,这样改进后,代码仍然是面向对象的,只不过,我们另外增加了一个对代码进行集中管理的地方而已。这并不影响代码仍然是面向对象的,不影响代码是从属于各自存在的对象的。
    从理论上来讲,好像对现有的面向对象的内部实质不会作任何改变,只是增加一个外部管理器。

补充:如果贺老师能提供下面的两个方法,这样的代码管理器我们自己就可以做出来,就不用麻烦贺老师了:
(1)可以用树的方式列出项目中的所有对象的名称。包括表、窗口及窗口控件、菜单及菜单项等;
(2)可以根据对象的名称找出该对象每个事件的代码。
作为狐表的爸爸,好像做到以上这两点没有太大的难度,也没有太大的工作量吧!

[此贴子已经被作者于2009-4-16 9:47:28编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/16 12:30:00 [显示全部帖子]

以下是引用狐狸爸爸在2009-4-16 11:03:00的发言:
呵呵,我从dbaseIII开始用,接触了大量的开发工具,foxtable的代码管理和查看都很方便,唯一不足的就是没有一个统计的查找替换功能。

我现在用的.net 2005开发foxtable,我有1500个源代码文件,我还是要一个一个代码文件去查看。
在Foxtable和中选择某个控件的时候,哪些事件设置了代码一目了然,而且无需打开代码编辑器,即可预览代码,这点连.net 2005都没有的。
即使来一个集中管理,不也是要先选择某个窗口,再选择某个控件,再选择某个事件,然后查看代码,有多少本质的差别?值得另来一套代码管理和编辑系统吗?

.net 2005可以同时查看一个窗口的全部事件代码,不过除非有超能力,一般都没有办法在几百甚至几千行代码中找到自己需要的,还是要从编辑器左上角选择一个控件,右上角选择一个事件来定位自己的代码,值得为这个另来一套吗?
[此贴子已经被作者于2009-4-16 11:03:47编辑过]

个人认为:
(1)设置一个统一的代码管理并不复杂,应该并不需要再设一个新的编辑系统,双击相应的对象和事件时直接打开以前的代码编辑器即可。
(2)同时查看一个窗口的全部事件代码很有必要,至少可以大大提高工作效率。同时查看多个代码,要解决的问题是节约来回切换的时间,这与怎样在几千行中查找自己需要的无关(这需要利用查找功能来实现)不管是在一个界面中很快的切换,还是用很长时间慢慢的切换,在同一个代码中查找的时间都是相同的。一个窗口中多个对象分布的位置不同,可能有多个分页,甚至还有隐藏的对象,统一查看肯定会节约时间。
(3)既然.net2005中可以把一个窗口的全部事件集中起来,那么把所有窗口的全部事件集中起来管理应该并不复杂。只是多增加一个窗口列表,并链接起来就可以了。表的事件代码集中管理也是同样。这样说来,并不复杂。
(4)其他正规的开发工具中没有这项功能,不代表狐表中不能有这项功能。记得贺老师说过,用狐表开发软件的最大优势是开发效率高,说白了就是提供一些现成的中间工具,让许多原本由用户手工完成的功能由狐表自动完成。增加这个一个工具恰恰符合这样的宗旨,贺老师不应该嫌麻烦,狐表做的恰恰就是这类事!如果贺老师说其他开发工具中有的功能狐表中才添加,那就不应该有狐表的诞生和发扬广大。
(5)提供一个统一的查找替换功能非常有用。我不太清楚其他工具中统一的查找替换功能,它这个“统一”的作用范围是多大。我的考虑是作用范围应该是可选的,例如作用于一个窗口的所有代码,作用于一个表的所有代码,作用于一个对象的所有事件的代码;还是作用于当前的一段代码。狐表现在的查找替换功能,仍然不够方便,甚至不如操作的记事本中的查找替换方便和快捷,建议要进一步加强!
(6)希望贺老师不要总拿软件专家的角度来看待这个问题,要知道使用狐表的人都是想省事的!您说您可以管理1500多个源文件而不感觉麻烦,我感觉您不能总拿我们跟您比,如果我们有您的十分之一,恐怕我们就不用狐表而直接用.net作开发工具了!

[此贴子已经被作者于2009-4-16 12:58:56编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/16 16:47:00 [显示全部帖子]

以下是引用狐狸爸爸在2009-4-16 14:41:00的发言:


呵呵,易表的公式管理器是有存在理由的,易表的一些公式分布在各列中,而且有各种各样的公式,如果没有公式管理器,就不知道那些列设置了公式。
Foxtable已经没有针对列的代码了,打开表属性,那些事件设置了代码,代码是什么,一目了然,和易表的公式管理器一样的,所以没有理由再来一个代码管理器了。

   贺老师的说法有两点错误:
(1)贺老师说在易表中如果没有公式管理器,就不知道那些列设置了公式。其实这句话不太对,如果没有公式管理器,仍然可以一个列一个列的逐个查看列公式啊!只不过效率低了很多,浪费大家的时间!
(2)贺老师说打开表属性,已经没有针对列的代码了……,所以没有理由再来一个代码管理器了。前面的原因不能推断出后面的结果。应该说因为已经针对列的代码了……,所以没有理由再分列管理每个列的代码和公式了。但仍然需要分表、分窗口管理代码(狐表中的代码可比易表中的公式多得太多了,复杂得太多了)。

    既然贺老师说在易表中没有公式管理器就不能方便的知道哪些列设置了公式,同样的道理,我也可以说在狐表中,一个窗口中有50个控件,如果我不一个一个的点击,我同样无法方便的知道哪些控件设置了事件代码!既然贺老师知道在易表中集中管理各列的公式方便高效,同样的道理,假如在狐表中集中管理窗口的各个控件的事件代码,并设置一个选项(隐藏没有事件代码的控件),难道就不会方便高效吗?(以窗口中的事件代码为例,表事件代码是同样道理),我看不出两者有使用有有什么区别!

[此贴子已经被作者于2009-4-16 16:51:02编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/16 16:54:00 [显示全部帖子]

以下是引用shxiaoya在2009-4-16 16:52:00的发言:
代码管理器会让人看代码像一盆浆糊,你不晕才怪呢

   我的意思并不是必须在代码管理器中管理代码,而是保留以前的方式,即仍然可以在对象上设置事件代码,在此基础上,增加对代码的集中管理。平时的设置仍然在对象事件中,需要整理查看、管理的时候才使用代码管理器。两者各有两长,用途不太一样。


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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/16 17:53:00 [显示全部帖子]

以下是引用狐狸爸爸在2009-4-16 16:57:00的发言:

易表要一列一列查看,即使是同一列,也要分别单击不同的菜单去取查看计算公式、操作公式、默认值公式,才能知道到底有没有设置公式,公式是什么,这个时候自然应该有一个管理器方便,Foxtable有这个问题吗?

至于窗口,你随便选一个按钮,右边事件页就会显示该按钮设置了哪些事件代码,也可以预览,需要一个一个事件去查看和判断吗?

如果你觉得这样还不方便,你还以用窗口的全局事件,不需要去为每个控件设置代码,也不需要每个控件去查看。

就为了知道哪些控件设置了代码,就另来一套代码管理和编辑系统?

凡事都是需要取舍的,只有相对,没有绝对。

[此贴子已经被作者于2009-4-16 16:59:40编辑过]

    狐表中当然没有切换列、并切换列的各种公式的问题。但同样的道理,我们看一下在狐表中要切换不同窗口的不同控件的不同事件的代码需要几步:(1)退出当前窗口(2)切换表(不同的窗口可能从属在不同的表中、实在不知道窗口从属于表有什么意义)(3)打开新窗口(4)找到要编辑代码的控件 (5)找到相应的事件 (6)编辑代码。或许贺老师说即使有一个代码管理器,这几步基本上都不会少。但是,目前的狐表中操作以上6步需要在不同的位置来回点击切换,如果存在这么一个代码管理器,则所有的操作全部在一个窗口中进行。哪个快哪个慢,会差别多大,就不言而喻。而且如果代码管理器中可以隐藏没有事件代码的控件,效率会更高!
    怪不得阿翔说提了N遍了,贺老师都不支持。我认为贺老师仍然从一个软件专家的角度来考虑问题,我还是希望贺老师多为用户考虑一点,多为用户提供一点方便吧!或许贺老师,还有一些用户,都认为没有必要。 但现在的事实是,没有这个功能也不会影响狐表的使用,但增加了,肯定会增加效率。麻烦与麻烦,有多大工作量,当然是贺老师说了算,或许这个事也并不是当前最紧急的,还是希望贺老师换位思考一下吧!
   或许,很多人都不太欢迎我提意见,我总结过,第一我的语气不太好,过于坚决,有点自负;二是我提的建议总是工程量比较大,甚至总建议改变狐表的现有框架。尽管如此,还是希望贺老师认真分析一下我曾提的建议,不管是曾经采纳的、还是未曾采纳的,您可以对比一下我当时提建议时您和大家的态度(基本上当时都引起很大争议、您和大部分人都反对),以及改进到软件之后是否有意义、是否为大家所认可!(尽管还有许多方面的建议改进到目前为止仍然没有为大家所理解和认可,但我认为使用狐表时间长了,自然会明白意义所在!)

[此贴子已经被作者于2009-4-16 17:55:57编辑过]

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/4/17 7:51:00 [显示全部帖子]

以下是引用hnaysx在2009-4-17 7:11:00的发言:

图片点击可在新窗口打开查看此主题相关图片如下:未命1名.jpg
图片点击可在新窗口打开查看


如果要增加的话  其实直接修改一下foxtable 代码编辑器就可以了 不用新增

打个比方,我在写A表B窗口C按钮的代码,如果我想参考D表E窗口F按钮的代码 就比较麻烦

如果有类似上边的 我可以直接复制粘贴过来

[此贴子已经被作者于2009-4-17 7:17:52编辑过]

    难道上面的这种方式真的有那么不好吗?
    已经有几位老兄说把代码集中管理会眼缭乱,像一盆浆糊,还有几位老兄一直强调所见即所得的好处。其实这几位老兄无非是要强调一个观点:就是以前的那种所见即所得的管理代码的方式也是很优秀、很方便的、不可缺少的!其实我感觉这是对我这个建议的误解,我从未否认以前的那种所见即所得的管理代码的方式很优秀、很方便,我也从未建议取消以前的那种到对象中编辑代码、即所见即所得的方式,即使有了一个集中管理的代码管理器,我仍然离不开而且会经常采用以前的那种打开对象编辑代码的方式。如果哪位老师真的感觉集中管理代码会眼花缭乱,像浆糊,不用它不就行了吗,并会防碍使用老方式管理代码啊!
    但是,以前的那种方式再优秀、再方便,并不能说明没有任何缺陷,更不能说明集中管理代码的方式没有任何用途。大家知道出行时坐汽车很方便,是不是因为汽车很方便,就不需要发展火车和飞机了呢?恐怕不会吧?各有各的用途!倒是贺老说软件中有有所取舍,是有道理的。但我认为贺老师太小看这种集中管理代码方式的用途了,既然有很多人需要,为什么不能在保留原有功能的基础上增加一个呢?个人认为工作量也根本没有大家想象的那么大!贺老师以前说只有大部分人需要的功能才添加,个人认为这样说不太符合现实,如果这样,狐表中的功能至少需要再砍掉一半。我在一本书上看到说:软件功能和使用人数仍然符合二八定律,即20%的功能是给80%的人用的,而80%的功能是给20%的人用的。很明显,增加这个功能,对于需要的人提供了方便,还可能成为软件的其中一个卖点多卖几套软件,对不需要的人则没有任何妨碍,只不过贺老师费点时间;不增加,也不影响使用,但会影响一部分用户的使用效率,会感觉不方便。从以上的讨论中看出,需要这个功能的人绝对不止20%,贺老师为什么因为一部分人不需要(哪怕是占50%),甚至自己也不需要,就否决这个功能呢? 不理解。

[此贴子已经被作者于2009-4-17 7:53:59编辑过]

 回到顶部
总数 11 1 2 下一页