`
hyj1254
  • 浏览: 336054 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
    带着问题学习是最高效的学习方法;当然,不同阶段能够提出问题也不一样,但一定不能忘记提。否则无论看多久都会混混沌沌,直到某一天清醒了,回头一想,之所以变清醒还是因为突然向自己提了一个或几个恰到好处的问题。     一、眼下着手研究Spring的AOP,问题列表如下。基本的配置流程已经掌握了,但还有一些功能不知道如何实现。     1、切面类(命名为Aspect)如何、在何处获取被代理类(命名为target)的具体信息?提出这个问题的目的是实现这个功能:根据被代理类的某些属性决定是否执行、如何执行被代理的方法;比如权限控制,假设只允许“管理员”执行特定的操作。     2、spring如何实 ...
   经过一上午的艰苦试验验证,得出如下结论:    1、将元素传入闭包,并在其中注册事件,这是导致内存泄露的根源之一;另一必要条件是:元素必须脱离文档树,亦即类似执行了语句:elm.parentNode.removeChild(elm)。    2、解决方式:避免上述情形;在window.onunload中取消事件注册。    示例如下:    1、 <div id="test" style="border:1px solid blue;width:100px;height:100px;"></div> <input t ...
再记住一点, EasyMock.replay(); PowerMock.replay() 这两者无法相互替代,需要分别调用,不要想当然地以为用其中一种就够了。

tdd的粒度

   发现这个问题目前还处于空白状态,搜了很久没看见讨论。希望管理员不要把它移到问答区,大家发帖子或多或少都会有些疑问,没疑问的帖子还会有讨论价值吗。    进入正题。一个系统的功能结构都是树形的,底层的最简单,越往上就越复杂,因为它对底层功能的集成越来越多。刚开始时的测试都是针对底层编写的,这很轻松,基本上没问题;可当需要编写高层功能时,问题就来了:要不要写测试? 1、写。这就是每一层都写测试,层级越多就意味着底层的代码重复测试的次数也越多,tdd强调频繁运行测试,这不是很浪费时间?这还不够严重,假如该层集成的某些功能不是自己写的,无法保证其可靠性,这又该如何?其实问题可以总结为:我希望“A依 ...
请看图: 这是一个典型的树形结构,层次分明,结构严谨。想查找什么东西费的劲比较而言少得多。我看着看着就发觉编码跟这个很相似。    我们最忌讳的就是铁板一块,试图一个方法搞定所有功能的代码;说到本质上,就是这种代码层次不清,缺乏高层的抽象来对整体和各个重要部件进行概括,就像一个没有目录的字典。而针对它进行重构,很大一部分工作就是搭建这种抽象结构,将整个代码按抽象层次的高低依次归纳、排列,最终形成类似上图的结构。这样的代码无论是阅读还是修改,乃至重用都大大地改进了。    外观模式就是典型的例子,将各个子流程抽象为一个单一的动作,好比树的一个节点;而多态也可以理解为一种抽象,不管具体实现是什么, ...
    如果真找到了感兴趣的工作,相信我会处于这种状态:无时无刻不在思考与之相关的东西,上班、下班、吃饭、乃至睡觉;我的创造力会被充分发挥,潜力会被最大程度地挖掘,进步会在任何时刻发生,隔不了多长时间就会取得一次质的飞跃。     这种状态我有过,可惜与工作无关。只有找到了感兴趣的工作,才不会浪费自己的生命力,才能做到最好;只可惜现在还没有,不知道什么时候才会有。
   本以为钱不是问题,能力才是重要的,有能力还怕没钱?没能力靠那些小伎俩也守不住那几个可怜钱。于是对理财一词不屑一顾,我辈不稀罕。     但昨天登陆了银行的网上帐户,看到活期转定期一项,心生好奇,那位说,不是对理财不屑一顾吗,怎么还看这个?其实也不全是,比如说看到脚底下有张10块钱,您捡不?但不看不知道,一看吓一跳。乖乖,我亏大了。     目前我所有的存款都是活期的,利率是0.4%;如果办理整存整取,最少也得2.6%,而我最终选择了三年期整存整取,利率4.5%。以上全当它是年利率。这样算下来,三年过后,利息就是14.12%(1.045^3-1)对上1.2%(1.004^3-1),相差了多少 ...
   今天自己重新建了工程,想测试点东西,为图方便,直接把现成的工程里面的jar包复制了进来,没想到竟然报了这个错误: java.lang.NullPointerException at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:203)    我了个嚓,老子没用Spring,它凭什么报这种错?回头把web.xml上上下下研究了七七四十九遍,证实,确实没用Spring。怕你了,把Spring相关的包都给删了,却又报了这个错: java.lang.Cla ...
  灰熊在08年时与湖人的交易大家一定还印象深刻,家嫂只换来了一瓶可乐+咖啡+啤酒等。类似这种以优秀的老球员换年轻球员的举动都可以被视为重建的信号。   巴蒂尔换来了一名年轻中锋和一个首轮选秀权,这名中锋很可能无法证明自己的实力,火箭却愿意担负着这样的风险,合理的解释是选秀权分散了风险,这一切都说明火箭已放眼未来。
   安东尼的合同应该马上就到期了吧?到时他就是自由人了,既然他铁了心要去尼克斯,那即使掘金现在把他卖到了篮网他也会以自由人身份加盟尼克斯。现在花这么大代价相当于只买了安东尼半年的时间。如果沉住气,让他暂时加盟篮网,到了夏天再收回来,那不就什么也不用付出了吗?只少了半年时间,跟现在这么大的代价相比,孰轻孰重?
   TDD到底是什么,它是怎么做到演进出一个优良的设计的?这些疑问驱使着自己不断地思考,并看了很多讨论,下面是自己的一点心得。    testCase反映的应该只是需求,不能把设计掺杂进来,设计不是它考虑的问题,它只提出你要做什么,至于怎么做,它不管。TDD是需求驱动,在读kent的《tdd》时这样的想法若隐若现,没想到还真有人也这么说,与偶暗合。    设计,由重构来负责。每次让testCase测试通过后,就应该试图进行重构,恰当的重构能够带来恰当的设计。    另外,参考如下帖子:http://www.iteye.com/topic/6551。我的理解是,如果需要算法优化,则需要进一步进行 ...
  测试驱动,本质并不是以测试来驱动,而是以小步构想来驱动。我最关心的是如何达到最终的设计目标,而不是在已经知道实现的思路的前提下如何按部就班地完成事先的构想。我知道它是一小步一小步地前进,但不管步伐多大,始终回避不了方向的问题,方向错了,什么样的步伐都是白费功夫。现在犯晕的就是它为什么要朝东,而不是朝西,或者其他。    测试只是用来保证事先的构想能够成功地实现;但它貌似并没有帮助你创造这个构想的能力。它是执行者,不是领导者。    测试驱动要求必须一小步一小步地构思并实现,这里有2条主线:    1、固有的业务逻辑。    2、代码质量本身;    这么说来,前者就是搭建代码整体架构的依据, ...
  一小段总结,可能不甚准确,请不吝指教。   tdd工作过程:   1、明确需求,设计“故事”梗概。   2、从较为简易的“故事”入手,将其转化为测试程序。   3、编写最简易的正式代码,使测试程序编译通过。   4、最小步地改进正式代码,使测试程序运行通过。   5、继续改进正式代码,用变量替换常量,使其一般化,消除测试程序与正式代码之间的重复设计。   6、寻找正式代码存在的可用性问题,将其转化为测试程序。   7、重复3--6,直至形成"整洁可用"的代码。   问:tdd如何做到良好的代码结构设计?   答:不断地解决代码的可用性问题,以此驱动结构设计。  
◇     自由:你能够随心所欲地折腾。 ◇     幸福:你折腾的结果满足了你的预期。 ◇     迷茫:不知道为什么折腾和该如何折腾。 ◇     怜悯:看着别人不会折腾或折腾得不如自己时产生的一种良性心理。 ◇     宽容:容许别人有不同的折腾方式。 ◇     孤独:你的折腾无人搭理。 ◇     追求:折腾的理由与借口。 ◇     乐观:相信明天的折腾比今天更好。 ◇     错误:折腾的方式或结果影响了别人或结果与自己折腾的目的不同。 ◇     创新:换着法子折腾。 ◇     成就:自己折腾的结果得到了别人的肯定。 ◇     时尚:一种新的折腾方式。 ◇  ...
    腾讯和360厮打得再火热也只是为了争夺咱桌面的右下角;移动的确是个超级巨头、财大气粗,可它也只是让某人在极度无聊时能找朋友发发牢骚;新浪刚和NBA签订了什么战略协议,实行比赛视频直播,说实话,我也只是在有空和无聊时才会用它;娱乐记者豁出性命获取的猛料其实也就仅供喷饭而已。     什么立志存高远,要干什么轰轰烈烈的大事业,哪来那么多大事?把鸡毛蒜皮的事干好了,它就是大事。大事就是干好了的小事。人家干的再大的事也只是替我把小事做到极致。
Global site tag (gtag.js) - Google Analytics