lwt 发表于 2019-11-16 09:24:08

关于模板命令的体会和需求

本帖最后由 lwt 于 2019-11-16 09:31 编辑

      使用了一段时间的模板命令感觉很尴尬,活字格的开发方式现阶段很难模块化,在共享命令上就有很大的局限性。因为数据表,页面无法参数化(就算能参数化,其它变量要做到通用也会很难)这样算下来应用的场景就非常少了。      为了不辜负**开发这个功能的一片心血我也还是做了几个共享命令,这几个命令有个共同点就是简单,就是在论坛找到js命令或调用一个共用页面(如弹出页面显示大图,或做一个附件上传框)其实用不用模板命令都无所谓,更复杂的命令就没法做了(不知其他道友有没有同感)。
   现在谈到痛点了,开发中会有一些代码重用的需求,用过excel vba的都知道,有打开事件、单元格按钮事件等、有些代码会需要测试在不同事件中的表现,复制到其它按钮中改一改减少开发量,在excel vba中只需把代码进行复制到相应事件中就行了。这种需求达不到活字格模板命令的标准。其实活字格缺少的是“复制命令”。
   可以谈需求了,开发时希望有类似“命令库”的功能,能把做好的命令存入这个“临时共享库”或“全局共享库”中,方便从其它按钮或事件中从“仓库”中取出,取出的命令可以进行更改达到开发的需求。
 这是我对使用一段模板和开发中的体会,道友们你们觉得呢?欢迎提出其它意见!





meteor 发表于 2019-11-16 13:33:30

本帖最后由 meteor 于 2019-11-17 09:43 编辑

1.数据表,页面无法参数化的确是限制了模板命令很大的功能想象空间。此点附议,十分希望官方下个版本能解锁这个技能~
2.诚如老梁所说,如果能将模板命令复制取出,并加以修改,变成“私有命令”的确是个很有意思的功能思路,这个从名字概念上看更契合"模板"一词的含义。这点深表赞同
3.接下来就是但是了^_^ .代码和功能的重用分成几个层次
3.1 最初级的方式: 复制一份代码到另一个地方,如果需要的话略微改动后使用。这样做好处是快速直观地解决当下问题;弊端是一旦复制的这段代码需要有所修改(可能是有个bug需要修正),那所有被复制出来的副本都得人肉检查过去。除非所做的都是一锤子买卖,一次性完成,终生不再改动。。。。
3.2 略微高级一点的方式,就是抽取通用的部分,把可能变化的部分参数化。简单的说就是代码复制出来后之所以要改动,是因为有变化的部分,把变化的部分改成参数传入,那通用的部分就不变了。所有用到这个功能的地方都只是传入参数就好。万一以后这个功能有bug,或者需要修改,只需要改 一处即可。这是代码复用的本意和通常认为正确的姿势。 这样方式的好处已经说了,坏处就是必须强迫自己重新思考和改动原来已经可以用的部分,这是很多时候很多人纠结的地方:我tm就只多用一次,有必要去改吗?到底去改还是就这么凑活? 不幸的是,无数代码界的血泪史告诉我们,在大部分情况下,改比不改好。。。对了,这个改,有个专有名词,叫重构(Refactoring)
3.3 更高级的方式,是涉及到设计架构以及设计模式的范畴了,一般我们用了诸如hzg这样的快速开发平台,就不用太刻意去想这个问题了,假定官方会帮我们想好并实现~~
4.回到咱们的模板命令的场景中,我以为,在没有数据表参数化之前,模板命令当前的适用场合时和具体业务紧密相关的,而不是和某个功能集合紧密相关。这是因为当前的限制可能做不了太通用的功能性的命令集合(所谓功能性的命令集合就是指全局性用到的功能),所以老梁会产生这样的焦虑。但是,如果是一个页面的具体业务,需要进行A-->B-->C-->D-->E这样的功能段,而且存在不止一处的触发时机,那模板命令就会派上用场了。至少可以梳理思路,让整个页面的逻辑更有条理,便于自己回头再次阅读以及团队其他人阅读。当你发现你的一个命令集合里面包含了数十条命令时,就会觉得这个功能太有必要了。
5.至于复制命令功能,我也是觉得是十分需要的。因为咱们活字格应该是个兼容并包的平台,不仅支持复杂业务的开发场景,也应该适合简单业务的开发场景,对于相对简单的业务场景,复制命令是最直观且最高效的实现方式,存在即合理,并不一定要太刻意去强迫这部分场景升级成符合某些开发规范的标准用法,那样的话一般也有个专有名词(过度设计Overdesign)。系统的开发和使用也是一个不断升级的过程,不仅对活字格这样的平台而言,对用户以及正在做的系统而言也是如此:刚开始开发可能觉得增删改查就够了,接着觉得需要复制命令更方便,如果系统更复杂了,就有了复用模板命令的需求,再往后,也许会产生更多的思考,而去采用更好的方式来解决问题。但是不应当回头去否定最初的增删改查的基础功能的提供是错误的。
6.模板命令现有的不足,除了第一条所说,我感觉还有就是使用范围的问题,即有点像老梁所说的”临时共享库“ 和”全局共享库“。我认为是要分为 本页面内使用的 和 跨页面使用的。 这对定义的名称变量是否会报警,以及模板命令多了,如何分类管理越来越多的模板命令是有效的。

successit 发表于 2019-11-16 15:34:52

支持楼上两位大神所言!!!!表和页面的参数化以及命令的可复制化,在实际应用中,确实可以大大提高效率。。。

qq8009 发表于 2019-11-18 14:05:02

我之前也在想这个问题,个人理解解决当前问题就是,能够支持复制表格命令,或者类似于按键精灵那样,可以切换为代码模式,在代码模式中复制粘贴,当然也能够支持当前模式,如下图所示,如果能转为代码模式,那么未来如果要分享新功能可以不用重新写一个小demo,直接复制粘贴源代码,岂不是更好,也不会受到各种版本限制(目前我还是用旧版,我下载论坛里面的源文件,都没法用...只能用虚拟机提取出来相应的功能),以上纯属个人见解。
不过我个人理解这模板命令其实就是为了大家避免重复造轮子,理想虽好,但是还是有种种限制就如同上面所述,在此希望活字格越来越强大。



Simon.hu 发表于 2019-11-18 18:23:38

谢谢老板的整理和分享,您的刘老板的第5点,我之前没想到
不过,我建议如果能够使用模板命令就尽量不要复制命令,
因为:“当一个方法你想要复制的时候,那你就应该将他抽成一个公用的方法(模板命令)”

meteor 发表于 2019-11-20 09:54:38

Simon.hu 发表于 2019-11-18 18:23
谢谢老板的整理和分享,您的刘老板的第5点,我之前没想到
不过,我建议如果能够使用模板命令就尽量不要复 ...
这东西就像是你说的是对的,我也知道你说的是对的,但是对很多人在某些时候不一定觉得你是对的。所谓曲高和寡就是如此。
从另一角度说,有些问题必须是亲身体验过才可能领悟,但在体会到之前并不一定会接受。
所以,既要有高雅音乐,也要有些民间小调,民间小调的作用是吸引向往音乐的人入门并产生兴趣,而不会一开始就将他们拒之门外~

Simon.hu 发表于 2019-11-20 18:18:26

刘老板,每次说的话,都这么“有内涵” :hjyzw:

Aa金砂 发表于 2021-8-19 19:09:36

看这些文字 如同看神仙打架

David.Zhong 发表于 2021-8-19 19:21:04

Aa金砂 发表于 2021-8-19 19:09
看这些文字 如同看神仙打架

感谢的大佬的支持~祝大佬学习顺利~:hjyzw:
页: [1]
查看完整版本: 关于模板命令的体会和需求