rainlist

来源:互联网 发布:什么是阿里云 编辑:程序博客网 时间:2024/06/05 02:51

 这次小学期教了个很有用的东东,struts,当然是简单的struts。

    简单的struts在本web项目中起到了一个配置行为的作用。

    配置行为很方便,所以的行为都被写入了配置文件,而作为一个外部的配置文件,修改是集中的并且方便的。

    在操作的行为数目很大的时候,这种方式会显得很方便。这种方式类似于写书,新的索引(action)被加入到目录页的末尾,而具体的内容(class)被加入到内容的末尾。这种这种方式降低了复杂度,因为传统的编程就像是一本每章的文字中中穿插着其他章节索引的书,而且那本书居然2b的没有目录,而这种方式的思维很简单,新的类索引信息,(action)写入目录;新的类,直接加入。

    突然间有种新的理解,所谓这个程序的架构是不是就是对这类索引信息的安排?最终目的把所有和具体字符串相关的提出到代码外部,然后还可以整理那些索引信息?maybe,但是现在根本不太了解stuts,以后多看看就知道了。

    这个easystruts有缺点。重新写一个新的项目的时候,代码复制时,会产生各种错误。

    原因是原有的项目名字被写在了代码里面,比如com.tarena项目改成了com.rainlion项目这样就产生了移植的问题。

    所以那个时候我想到了两个解决办法:

    办法一:将所有的所有的字符串信息都写到一个额外的文本文件中(xml或许更好),所有的配置只发生在文本配置文件中,所有代码不得修改。

    办法二:整理出一个修改步骤列表,把修改步骤列表和代码放在一起,每次移植到新项目时,按照修改步骤一步一步做。

    方法一和方法二其实都涉及一个成本的问题,方法一涉及的成本是你也许需要花很多的时间想出一个更加复杂的架构,这个架构可能技术上比较繁杂,考虑的意外情况应该更多,但是这种时间话费只限于第一次时的情况。方法二是你需要每次移植时,都需要花出一定的时间检查步骤列表。

    如果仅限于我所碰到的问题时,我会选择第一种,因为我并不需要花出太多的时间去把所有字符串都提出到文件中,而且将来我的使用频率很高,所以我的受益将远远大于我的cost,我会毫不犹豫选择第一种。

    但是我并不认为第二种方法就没有价值,当我碰到一个很复杂的架构,而我使用的频率不高的时候,我觉得第二种的cost将小于我的收益的时候,我可能选择第二种。但是,注意到,第二种的收益还应该包括对架构修改时候你所获得的技术研究方面的收益。这种收益在你修改完成之前很难衡量,所以,第二种方法选择的时候不好选择。

    第一种方法最后似乎拓展出一个软件设计的原则,让修改集中。    

    第二种拓展出一种东西,我可以设计一些表,来帮助我减少一些时间,提高一些效率。其中应用的原理应该是减少了思维条目的思考时间,把更多的时间放到了目标本身。

    比如我可以设计一个错误调试表,将我遇到的调试错误都计入一个表中,因为思维的一些缘故,很多错误明明发生很多次人们还是会去犯,而且基本上每个人犯错的类型都不一样。错误调试表帮助我来检查错误。

    在比如我可以做出一个常用功能的制作流程表,表里包含了一定的步骤和一些有代表性的示例代码,在写某个功能的时候通过检索出那个功能的流程,照着流程做。

    我还可以创建一个常见技巧表,将常见的算法,应用技巧做一个表。在编程的时候来查询。

    我还可以创建其他的一些表,只要是能提高效率的我就会创建。

    然后当我发现当表中的一些东西被反复大量的使用时,我可以把它单独做出来。

    比如如果我发现我常犯某个错误,我可以将这种错误检查写入eclipse中,当检测到这种错误的时候,提供一个warning

    比如我发现一些常用功能真的是常用功能时,做成一个可以调用的函数是一个比较好的选择。

    在比如我发现一些技巧,我可以做成另一种小工具。

    (这里面抽象出工具了的概念,我觉得当一样东西被大量重复的使用的时候,它就可以做成工具来简化这个行为,所有应用领域都适用,比如字典被大量查询,所以诞生了电子词典;饼干可以被大量制造,所以有流水线;温度可以被经常测量,所以可以有温度计;血糖需要经常被测量,所以出现了血糖仪;造假需要被经常使用,所以出现了ps;凤姐需要经常被吐槽,所以产生了论坛。。。哈哈开个玩笑,个人觉得工具是必须的,如果哪天你遇到了大量重复事,别犹豫,使用工具,你的获得收益肯定会大于你的cost)

    这里面涉及一个频率,当使用频率较高的时候,它被做成工具是有价值的,当使用频率太低的时候,我的建议还是让它乖乖的躺在列表里面比较好。

    但是检查表不仅只要检查的作用,它还有帮助你思考,减少遗漏等等很多的作用,芒格推荐滴。。。

    


以上是我想要打造我的第一个工具软件的由来,直接在我的平时的日记中黏贴,现在我认为,一个自己用工具是必须的,它肯定提高了一些你的效率,尽管你可能在工具上耗费了一定的时间,但是基本上,在理性的分析后,大部分情况下,工具带来的效益是大于你花在工具设计上的时间的,

那么我产生了以下的需求

 软件包含各种列表。

    列表有使用频率统计,每点一次加一。

    有加条目,修改条目。

    支持各种检索快捷键。。。


未完成。。。明天再写