閱讀全文
2006年8月24日 #
閱讀全文
我注意到一個關于oo工具和so工具關系并且很吸引人的討論正在Yahoo的論壇上進行。
這些討論闡明了為什么我們要在eclipse平臺上開發SOA的插件,這些由IBM,sybase等公司開發的插件顯然優于基于UML以及MDA上的。
Stefan Tilkov,討論參加者之一,在之前的博客中已經討論了這個問題。另一位論壇參與者Lukas Barton引用了他在之前寫的關于MDA的文章,主要從插件角度講一些OO和SO的區別。
自從這個討論看是以來,一些事情已經改變了,但是我想說的是UML和MDA仍然沒有從面向對象轉成面向服務。那些UML和MDA的工具仍舊要求用戶從對象的角度開始你的WSDL,XML Schemas,SOAP而不是其它的。
當然你也已使用UML去創建服務,也可以像被已經提到多次的那樣,使用面向過程的技術例如:CoBOL 或者 PL/I 或者存儲過程以及異步消息機制。這樣做的主要好處就是所有這些都是直接涉及其本質。可是由于你將SO和OO聯系的太緊密地話,你將會有所損失。
對于軟件開發,oo的概念的使用往往會帶來的問題比它本身所能解決的更多。(采用對象,過程,隊列等來實現服務是沒有問題的但我們應該采用別的方式來設計服務)由于OO很清晰的映射了業務功能,所以天生更適合于采用服務來建模,設計和開發。
軟件工具需要提升其抽象的程度。MDA以及UML沒有真正做到這點,自從這兩個東西讓我們開始學習如何重新采用對象方法的觀點解釋世界,更加抽象的認識服務。我們需要是一套基于Contract-First的SO工具來開發SOA (以面向服務為本質,而不理會是否用OO來實現)
昨天我們公司的3M team 的新人們在隔壁的辦公室KT, 身為新人的我也跑過去,一看在講JUnit,聽了一會兒,
講了很多Assert云云的東西,我想到了一點,為什么不先說說為什么要JUnit,否則我想任何人都在會和我一開始學Junit時候一樣,認為不霄一顧,想著
總想著這些東西,我用equals,print的組合都能實現的,更可以嵌在代碼本身,何必又獨立出來。
到這里大家知道我想說什么,我想說的是TDD的重要性。產生于XP的TDD,呵呵,(不知道我們敏捷開發組的同僚們用不用),這個TDD的思想是這樣的
我們不應該完成開發之后再去寫測試,這通常只是馬后炮,測試的本質上相當于設計文檔,而不是花大量的時間去擺弄一個復雜的圖形化工具,
你要直接在代碼里擬畫一個類。開始時候先為一些小功能模塊編寫測試。很多情況下,測試不能編譯,因為類本身不存在。
所以我們要做的就是用最少量的代碼完成這個類,以便通過測試,并增加更多的測試。這里說一下,xp編程中,基本過程是這樣的:
構思->編寫測試代碼->編寫代碼->測試,而且編寫測試和編寫代碼都是增量式的,寫一點測一點,
在編寫以后的代碼中如果發現問題可以較塊的追蹤到問題的原因,減小回歸錯誤的糾錯難度。
(回歸讓我想到了回溯的算法,嘿嘿,大學的噩夢)
于是測試框架來了,--JUnit,衍生到XUnit,請開始使用他們巴。那位寫Taconite的Ryan Asleson說:測試會上癮的,一開始接觸JUnit的人都心存疑慮
但是最后都會愛上他們。因為當你發現增加新的特性只需要幾分鐘的測試過程的時候,你就會意識到今天我們所說的。
最后說一下JsUnit,據我看用的人很少,說白了是Junit的JS版本,自然也是RTF(Regression Testing Framework)的東東,,很多用法都差不多,不過它是基于函數的,不是方法哦
地址www.edwardh.com/jsunit,弱弱的問一下,有人用這個來測試ajax嗎?嘿嘿!
明天又要去看可惡的BPM文檔了。
今天裝了PRPC(PegaSystem)用于以后BPM工作流的開發,配置比較復雜,國內也沒有相關材料,拿出來共享一下,呵呵!
自己寫的安裝流程如下
Environment Requied:
JDK, Tomcate, JDBC Driver, SQL Server2000. (For example: jdk1.5.0_04, Apache Tomcat 5.0.28)
?????? 1) ?Set Class Path:
a)?????? CATALINA_HOME
????? Path :-< Tomcat’s location>
(e.g.: - C:\Program Files\Apache Software Foundation\Tomcat 5.0)
b)?????
JAVA_HOME
?? Path :-< Java location>
(e.g.: - C:\Program Files\Java\jdk1.5.0_04)
c)????? JAVA_OPTS
????? Path :- -Xms256m -Xmx768m
2)????? Deploy Application:
a)?????? Copy file “prweb.war” which is located “PegaV4Installation\PRPC INSTALL\PRPC_v0402_SP4_Software\PegaRULES\archivesNoApp” to “<CATALINA_HOME>\webapps”.
b)????? Restart Tomcat. If there is a new folder “prweb” in “<CATALINA_HOME>\webapps”, you are successful.
3)????? Upload Application Files:
a)?????? Start Tomcat, Open the URL: http://localhost:8080/manager/html/, Click “/prweb” link which is in Applications Path.
b)????? Click hyperlink “Upload Application Files”, open a new page “PegaRULES Upload Manager”, Upload the file “PRPCV4.jar” which is localed “PegaV4Installation\PRPC INSTALL\PRPC_v0402_SP4_Software\PegaRULES\applicationJar\”.
4)????? Create a Connection of Database:
a)?????? Create a new registration of database server(IP:10.225.69.248) in SQL Server Enterprise Manager.
b)????? Import the DDL code which is in “PegaV4Installation\PRPC INSTALL\PRPC_v0402_SP4_Software\schema\DDL\mssql\mssql_install0402.sql” to SQL Server Query Analyzer Editor and execute it, it will create several PRPC table in SQL Server.
c)????? Copy the three JDBC driver file msbasse.jar, mssqlserver.jar, msutil.jar to “<CATALINA_HOME>\common\lib”.
d)????? Restart Tomcat.
5)????? Load PegaRULES Application Instances:
a)?????? Open URL http://localhost:8080/prweb/admin/FirstSteps.html, Click hyperlink “Load PegaRULES Application Instances”.
b)????? In the new page, set “Database Driver” as “MS SQL Server”, set “URL or DSN” as “jdbc:microsoft:sqlserver://10.225.69.248:1433;SelectMethod=cursor;SendStringParametersAsUnicode=false”, input Username and password and then submit. The installation is achieved until the progress complete
6)????? Connect to PegaRULES:
a)?????? In previous page, Click “Connect to PegaRULES” or open URL http://localhost:8080/prweb/PRServlet, it will show a PegaRULES’s entry page, login with username:administrator@pega.com & password:install.
b)????? After that the PRPC will demand you to install some program, Please click ‘yes’ to install all
c)????? The installation is OK.