最近rails很火,我也不落俗套的看了一下。觉得其开发方式很直接了当,十分符合人的思维习惯,并且记住了一句话:“约定优于配置”。 于是我对一个现有的小项目进行了重构,来看一下一个struts的action-mapping配置: <action path="/*/index" forward="sample.{1}Frame" /> <action path="/*/get*" name="{1}Form" scope="request" type="com.whcyit.framework.s ...
目前采用SSO来对不同的应用系统进行整合。发现如下问题,当在frameset结构下引入另一个站点的页面,就会导致cookie丢失,也就同样导致服务端的session会话的丢失(firefox 无此问题),从而使得每次请求都要到SSO服务器去验证大大降低运行效率。查询 MSDN 得知加入Response Header:response.addHeader("P3P","CP=CAO PSA OUR"),就可以解决该问题。
提取输入的命令历史set -o viESC,k或者set -o emacsCtrl + P--看运行的线程数#ps -emo THREAD -o thcount--看内核的位数#bootinfo -K--看操作系统版本#oslevel -r--查看当前系统所打的补丁instfix -i|grep ML--改变异步io#smitty aio 最大为10X并行磁盘数<80,最小为最大的一半--从32位切换到64位ln -sf /usr/lib/boot/unix_64 /unix ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix lslv -m ...
案例中 Movie 的 setPriceCode 方法还是存在着 case 语句,站在代码美学的角度上来讲这显然是不可容忍的,而且对以后的扩展也不是很方便。比如现在要加一种 Price 策略需要修改哪些地方?首先加入一个 Price subclass,那个 case 是肯定要修改的,还要加一个 priceCode 常量,好麻烦,即然都 Strategy 了,那就 Stragegy 到底。   把所有的 Price subclass 的 getProceCode 方法里面返回自已所代表的ProceCodepublic class ChildrensPrice extends Price {  p ...
同一个 class 内的两个或多个方法有重复代码:使用 Extract Method 提抽取复代码。多个互为兄弟的 class 含重复代码:对这些 class 使用 Extract Method 提抽取复代码,再使用 pull up method 把重复代码向上拉到父类中。多个不相关的 class 出现重复代码:应该考虑使用 Extract Class,将重复代码抽取到一个独立的 class 中。抽取时应注意这些代码是否真的需要一个独立的类,应照 OO 原则将这些代码归属到 应该拥有这些代码的 class 中。   理清 class 的职责,把一些成员变量和方法抽取到一个新的 class ...
重构再定义名词:对软件内部结构的一种调整,目的是在不改变软件之可察行为前提下,提高其可理解性 ,降低其修改成本。动词:使用一系列重构准则,在不改变软件之可察行为前提下,调整其结构。 重构的目的是使软件更容易被理解和修改。可以在软件内部做很多修改,但对其 public 的接口 造成很小的变化或甚至不能造成变化,在决定改变接口时一定要慎之再慎。   两个方面1、添加新功能:不应该修改已有的代码,只管添加新功能和对应的测试。2、重构:不应该再添加功能,也不应该更改对应的测试,只管改进程序结构并使改进后的程序 通过测试。   为何重构?程序设计是与计算机交谈,程序告诉计算机做什么,怎么做,它的响应则是 ...
重构保障1、建立测试环境(比如单元测试),确保重构后的代码不会带来新的 bugs。   重构前提1、当一个函数或类履行了太多的职责。2、当一个变更存在多个相同的修改点。3、当需要为程序添加一个特性,而代码结构使你无法很方便地那么做。   重构原则1、尽量以最小的步伐修改程序。如果你犯下错误,很容易发现它。2、使用有意义的命名,增强程序的可读性,代码本身应该能够表现自己的目的。任何一个 fool 都能写出计算机可以理解的代码,惟有写出人类容易理解的代码,才是优秀的程序员。3、函数应该放在它所使用数据所属的 object 内。   重构手段1、Extract Method,把一个昂长的方法按职责 ...
        听说这本书好长时间了,一直没有时间去读,也可以说一直没时间静下心来去读,如果静不下心来读,读了也是白读。本人记性虽好无奈忘性更好,唯有寄于文字,记录于此。呵呵,废话少说,下面开始... 什么是重构?        重构就是指在不改变程序外在行为的前提下,对代码做出修改,改进程序内部结构的过程。        书中说到本质上说,重构就是在代码写好之后改进它的设计。这句话听上去有点怪怪的,好像跟重构的定义本身有少少冲突,使人容易误解为一开始应该实现之再设计之,这样的话在重构时不可避免的要对程序外在行为进行改变岂不是违背了重构的初衷?但是想深一层,如果以测试先行为前提呢?答案就很浅显 ...
切换用户并执行一个命令 su - otheruser -c your command   切换用并执行一批命令 su - otheruser - c your other shell file
取当前路径 currentpath = $PWD   遍历根目录 for file in /*   do   if test -f $file   then     echo 是文件   fi   if test -d $file   then     echo 是目录   fi   if test -x $file   then     echo 可执行   fi   if test -w $file   then     echo 可写   fi  echo $file done  
$0 程序名 $* 全部参数 $n 程序的第n个参数值,n=1..9 $# 程序的参数个数 $$ 程序的PID $! 执行上一个背景指令的PID $? 执行上一个指令的返回值
  类别 标识符 描述 JSP pageContext PageContext 实例对应于当前页面的处理 作用域 pageScope 与页面作用域属性的名称和值相关联的 Map 类 requestScope 与请求作用域属性的名称和值相关联的 Map 类 sessionScope 与会话作用域属性的名称和值相关联的 Map 类 applicationScope 与应用程序作用域属性的名称和值相关联的 Map 类 请求参数 param 按名称存储请求参数的主要值的 Map 类 paramValues 将请求参数的所有值作为 S ...
注:下面的教程都是以Win2000Pro(SP3)+Delphi6(SP2)+KOL1.42+MCK1.42为平台讲解的。 一、KOL是什么?KOL能做什么? MCK是什么?MCK能做什么? KOL是一套对象库,免费而且开放源代码,大家可以http://bonanzas.rinet.ru/去下载到它。它能够使Delphi编出尺寸非常小的32位Windows图形用户界面的应用程序。 目前支持的Delphi版本:Delphi6,Delphi5,Delphi4,Delphi3和Delphi2。 使用KOL在D2-D5中编写的最小图形界面程序(只有一个窗体的空应用程序),只有13K左右。在D6中为20 ...
1、在对象中 EAX 寄存器将永远存放 Self 指针,第一个参数放在 EDX,第二个参数放在 ECX,其它的参数放入栈中,如果企图使用类方法做比如系统回调函数的应用将会把 Self 破坏掉,从而产生 AV 类型的异常。 2、在 Delphi 中参数的存放是从右向左的顺序,如果函数或过程在类中 EAX 寄存器中将存放 Self 指针,EDX 存放第一个参数,ECX 存放第二个参数,其它的参数将放入栈中(EBP 中存放栈的基地址,EBP+8为栈中的第一个变量)。如果函数或过程不在类中 EAX 寄存器中将存放第一个参数,其它同上。由此可见,在 Delphi 中永远将前三个参数放入寄存器中达到优化的 ...
squall
搜索本博客
最近加入圈子
存档
最新评论
评论排行榜