前陣子
,
有幸經
liusong1111
介紹
,
做了一陣子
SOHO.
收獲不小
.
項目是基于
Appfuse(struts
+ spring +hibernate)
開發的
.
我以前只用過
Struts,Hibernate
自己只學過一點
,Spring
只聽過沒用過
.
所有一開始挺緊張的
.
到官方看
tutorial.
然后做了幾個例子
.
那上面的例子是采用
TDD
的流程的
.
先用
JUnit
寫
Unit Test,
然后
run,
紅燈證明
failed,
然后
coding
繼續寫或者修改真正的業務類
,
然后繼續
run,
直到變成綠燈
.
證明這個類合格了
.
然后編寫下一個
Unit Test.
一開始確實覺得有夠繁瑣
,
但是當整個步驟都結束了
.
發現集成測試的時候
,
直接啟動服務器
,
發現一切都是正確地
.
這在以前的開發中是不可能的
,
第一次寫完程序
start appserver,
總有各種各樣的問題
.
或是非常簡單的字符的一時失誤
,
或是邏輯存在漏洞
,
而采用了
TDD,
一切都那么的舒服
.
當然
,
例子是自帶的
Test Case,
我只是照抄
,
估計我自己寫的話
,
可能我寫的
Unit Test
就沒有
Example
的好了
.JavaEye
有人
(
似乎是
Robbin)
說過
”
編寫單元測試證明了一個人
OOP
的水平
”,
十分贊同
.
然后又明白了
Spring
為啥要面向接口編程了
.
為啥要有
Ioc,
為了方便
Mock
啊
.
特別是數據庫連接和
Servlet
的
Request,Response
這種玩意
,
不
Mock
的話
,
真的不好
Unit Test
了
.
而如果不采用
Ioc,
那么就沒辦法在不改變程序代碼的情況下切換測試
/
運行兩種不同的狀態了
.
?
再說一下
ant
吧
,
說起
Appfuse,
真想說成也
ant,
敗也
ant,
那
N
多多多行的
build.xml
真的可以把人看暈
.
不過為了學習來說
,Appfuse
對
ant
的使用
,
真是典范啊
.
但是我對
ant
沒有太大的好感
.
實在太長看起來太不爽了
.
我覺得如果團隊能統一
IDE,
那就利用
IDE
內置的
Deploy
功能就好了
.
譬如
MyEclipse
所支持的
Deploy,
簡單而好用
.
相比而言
,Ant
雖然強大
,
卻有點讓我害怕
.
特別是每次修改了任何一點點東西想在
app server
下看一眼
,
都得
ant
出一個新的
war
包
,
如果打包的時間短點還好
,
如果會耗費一分鐘以上的時間
,
再加上啟動
app server
的時間那真的是很惡心的一件事情
.
?
還有一些
open
source
的小
toolkit,
譬如
log4j, displaytag, sitemesh
都使用了并且是正確的使用了
.
譬如
log4j,
以前的項目不是沒有
log4j,
就是用的亂七八糟的
,
打印的滿屏幕的日志
,
有跟沒有一樣
,
反而看的更心煩
.displaytag
使項目經常用到的表格這塊有個現成的輪子
,
而
sitemesh
解決了
jsp
上的
<jsp:include src=”XXX”>
類似的代碼
,
并且可以簡化
<%
If (XXX) {
%>
<jsp:include src= “XXX”>
<%
} else {
%>
<jsp:include src=”YYY”>
<%
}
%>
?
類似這樣看起來很不爽
,
很惡心的
jsp
代碼
.
?
發現“不重復制造輪子”的感覺真好,但是偶爾輪子不太合適,如果第一次用這種輪子,那么改造的時候也可能有點麻煩。譬如一開始不太懂得
DisplayTag
的本地化。有點郁悶,弄明白了之后。稍微一改,就可以用了:)