kiral的執著之道
          一個有故事的人
          posts - 10,comments - 0,trackbacks - 0

          安裝步驟

          1: 安裝數據庫,mingle只支持兩種數據庫,postgresql8.3/8.4和Oracle。

          2: 在數據庫里建一個數據庫,名稱叫“mingle”

          3: 安裝mingle。安裝完畢之后mingle會給出一個訪問地址。 (沒有安裝成功會看不見這個訪問地址)

          4:訪問mingle提供的地址,進行相關配置。

          5: 安裝完成之后注冊mingle。

          6: 注冊碼為

          ?

          --- License key starts below this line--- XX05IkcLVx8D4lzyxbO/AoNcsOsJEA0fvRqH/74kSmAyPRCjTQhIcX9ki+n6 rXxe2Cc0TOQLNuVW5IkZ61KUNRf5lClm/0Y2L7Rx4PsDZNMKDBPKRhgc+d4k /oGwcJpUj46txnkKFARKQwkeBcR8MAZyNnliTjKot+IOs3QnrwciMbmgbHsc qCQpJedF0ukX+mXX+/PtWerw8pRozFVpKm1zEkqLXSNrimeJJxdhgkNpvvt5 Kvip1Fi5PHpXCDRa3FjsQT9+wsY+3OPjPCDAXCSaC/a39VGZhmMkPXLnNsVj z7sUDHKNJcs3rq7fyemutVFqDfIbi4pPdMTgOlnhQw== --- License key ends above this line--- 
          
          This License is valid for the following terms: 
          
          * Licensee = tengfei fang
          
          

          ?

          其他說明

          1:mingle3.2不支持IE8

          2:mingle3.2對中文支持不理想,如不能上傳中文附件。

          3:硬件環境要求為:內存2G



          已有 0 人發表留言,猛擊->>這里<<-參與討論


          JavaEye推薦



          posted @ 2011-02-05 21:50 方騰飛 閱讀(459) | 評論 (0)編輯 收藏

          總結一下自己在開發上的一些小心得,持續更新,歡迎大家補充!

          ?

          測試需要注意的問題

          1:測試需要涵蓋所有的業務邏輯: 自動化測試不需要覆蓋所有的代碼,但需要覆蓋所有的業務邏輯,因為一處的修改可能造成其他業務邏輯的不可用。考慮所有情況如單個刪除,批量刪除。一對一移動,多對多移動。
          2:瀏覽器:測試產品支持的瀏覽器,具體到瀏覽器版本號,如支持IE6,IE7和IE8。
          3:分辨率:測試產品支持的分辨率,如支持1024X768以上的分辨率。
          4:現場環境測試:一部分功能出現問題,可能是現場環境導致,所以必須在現場環境進行嚴格測試,如現場網絡問題,數據庫所在硬盤滿了。
          5:原則上測試代碼應該覆蓋所有的業務邏輯,但是基于投入產出比的考慮(所有的代碼都寫測試,代價太大,效果不一定更好),可以只在核心和你需要驗證的業務邏輯上寫測試代碼。 測試主要是驗證各種輸入是否得到預期的輸出,那么只需要提供幾種常見的輸出進行驗證就可以,注意測試的輸入是無限的,所以就算做了自動化測試,也不能完全保證程序沒有問題。
          6:建議使用TDD按照業務場景來進行測試,用戶如何使用我們的功能,我們就寫哪些測試代碼,這樣能夠幫助我們按需開發代碼和做有效的測試。 TDD只需覆蓋所有的業務代碼,并不需要覆蓋所有的代碼,所以建議在服務層做TDD。
          ?
          使用SVN:
          1:提交注釋:提交代碼需要提交注釋。注釋主要是方便團隊成員知道你提交了什么和代碼回滾,如當出現重大錯誤的時候能回退到某一版本。
          2:代碼提交和更新:為了減少沖突,建議每天上班之后更新程序,下班之前必須將穩定的程序提交,最好是做整體提交,有時候就是因為少提交了一個類導致編碼錯誤。
          3:少做全文格式化:全部格式化是最容易造成沖突的,所以假如當前類還有其他人在維護,建議不要做全文格式化,可以選中你自己的代碼,做局部格式化。
          ?
          編寫代碼:
          1。警告:警告有時候也是很有用的,為了避免有用的警告被人忽略,代碼里不允許出現警告。有警告的地方注釋掉。
          2:編碼:先理清需求再寫代碼,可以先寫注釋再寫代碼,也可以用TDD的方式。
          3:TODO:可以在未完成和存在壞味道的代碼里加上TODO注釋,以便下次解決。
          4:多用快捷鍵,少用鼠標: 如Eclipse自動填充geter和seter的快捷鍵是alt+shirft+s后點r。
          ?
          前端開放:
          1:盡量用百分比:窗口和表格的寬度和長度盡量用百分比定義,而不用像素,用以在不同的分辨率下達到同樣的效果。
          2:使用FireBug和HTTPwatch調式樣式和腳本
          3:使用Fontpage做一些前端測試。如Flash遮住Iframe的問題。
          ?
          Flex工程編譯緩慢的解決方法:
          1:將Flex工程按照模塊拆分為多個工程。
          2:AS文件不要經常修改。因為編譯as文件很慢,但編譯mxml還是很快的。
          ?
          Flex模擬數據測試
          我們可以在不啟動服務器的情況下就對Flex程序進行測試。方法是是首先新建一個文件,名字叫XX.action,里面存放JSON數據或者XML數據,讓Flex程序直接與這個XX.action進行通訊。可以在公共通訊方法上做一個開關,可以隨時切換模擬數據和真實數據,用于客戶演示和現場使用兩種場景。
          ?
          調式Flex?
          調試的時候可以直接在URL后面加上?debug=true#
          ?
          Flex的性能調優
          我覺得Flex的垃圾回收不是很好,內存很難被回收掉,所以自己做了下Flex的性能監控,發現性能主要消耗在表格里帶圖片的渲染器,每當我滾動表格的時候,Flash會重新渲染圖片生成新的對象,而舊的對象沒有這么快被回收,內存會直線上升。
          Flex IDE提供Flex profile插件進行性能監控,性能監控分為內存監控CPU監控。?進入Eclipse的“Flex Profile”視圖,點擊“Profile”。 新建一個監控的swf,然后雙擊這個SWF。 系統會自動彈出IE,訪問你所監控的SWF。


          已有 0 人發表留言,猛擊->>這里<<-參與討論


          JavaEye推薦



          posted @ 2011-02-04 01:13 方騰飛 閱讀(147) | 評論 (0)編輯 收藏

          名詞解釋:

          • Junit:眾所周知的單元測試。 官方網址:http://junit.sourceforge.net/。Junit從4.0開始提供基于注解的配置方式。
          • Dbunit: 一個針對數據庫測試的框架,通過Excel準備數據并插入數據庫。官方地址:http://www.dbunit.org/
          • TestNG:從字面上可以理解為下一代單元測試,和Junit的功能有一部分重疊和區別。TestNG也有Eclipse插件,官方地址http://testng.org/doc/index.html
          • Unitiles: 讓單元測試變得更加容易和可維護,Unitils構建在DBUnit之上并與JUnit和TestNG相結合。官方地址:http://www.unitils.org
          • Jmock:JMock是一個JAVA開發包,它支持Mock(模擬)對象機制的TDD(測試驅動開發),官方地址:http://www.jmock.org/


          什么是Jtester?
          jTester是一個基于java的單元測試框架。開源地址:http://code.google.com/p/java-tester/

          為什么要用Jtester?

          JTester是站在眾多巨人肩膀上的單元測試框架,集成了Junit4.5,dbunit2.4.3,unitils2.2,JMOCK2.5和TestNg5.1這些優秀的開源框架,并在這些框架上做了擴展,使得單元測試更加方便和強大。

          Jtester帶給了我們什么?

          1、在unitils的基礎,集成了jmock功能
          2、在hamcrest斷言的基礎上,實現了fluent interface斷言
          3、改造了jmock expectation參數斷言為fluent interface形式
          4、錄制對象:提供了將普通的pojo對象序列化到文件,然后再從文件中反序列化回來的功能,用于在對象復雜的情況下,直接錄制接口(遠程接口)調用返回的對象,以供下次測試或調試使用。
          5、數據測試:使用wiki代替xml來準備測試數據。比dbunit更快準備數據。
          6、實現了更加豐富的斷言。比junit的斷言多。
          7、提供了hibernate annotation環境下,直接使用內存數據庫進行db測試。
          8、提供了hibernate annotation環境下,Open Test in Session的實現。
          以上8大特性來自于官方,我稍加了點說明和整理。?

          ?
          七步進入Jtester世界。?下面讓我們花一個泡面的時間來學習下Jtester吧。

          import mockit.NonStrict;
          
          import org.jtester.testng.JTester;
          import org.jtester.unitils.jmockit.MockedBean;
          import org.testng.annotations.Test;
          import org.unitils.spring.annotation.SpringApplicationContext;
          import org.unitils.spring.annotation.SpringBean;
          
          /**
           * Jtester測試例子,按照注釋順序學習
           * 
           * @author tengfei.fangtf
           */
          @SpringApplicationContext( { "applicationContext.xml" })
          // 1.@SpringApplicationContext:加載Spring 配置文件,所有測試相關的bean都在這個容器中;
          public class BusinessTestCase extends JTester// 2.JTester:要使用JTester
          // 提供的功能,需要繼承此基類;
          {
          
          	@SpringBean("businessService")
          	// 3.@SpringBean:從容器中取出指定id 的bean 并注入到測試類中
          	private AppInternalService businessService;
          
          	@MockedBean
          	@NonStrict
          	// 4.@Mocked @MockedBean:mock 出一個對象,并將該對象與Spring 容器結合,實現Autowired;
          	private OneHessianServiceClient hessianClient;
          
          	@Test(groups = { "FirstTestGroup" })
          	// 5.@Test;TestNG 的注解;指明此方法為一個TestCase;
          	public void testBusinessNormal() {
          		new Expectations() {// 6.設置mock 對象的期望返回值
          			{
          				hessianClient.hessianServiceInvorke(anyString);
          				result = "HH";// 那么執行這個方法,永遠都返回HH
          			}
          		};
          
          		String returnResult = businessService
          				.bussinessService("Sample Business!");
          		System.out.println("\n ---> " + returnResult);// 輸出HH
          		want.string(returnResult).notNull();// want:JTester 框架提供的強大的斷言;
          	}
          
          }

          ?



          已有 8 人發表留言,猛擊->>這里<<-參與討論


          JavaEye推薦



          posted @ 2011-02-04 00:31 方騰飛 閱讀(1347) | 評論 (0)編輯 收藏

          作者:kiral? 鏈接地址:http://kiral.javaeye.com/blog/899243

          ?

          自己曾經帶過一個6人左右的團隊,經歷了一些事情之后,才發現自己的管理能力非常差。雖然個人能力在持續提升,但團隊能力卻增長不大。究其原因我覺得是自己對管理的理解不到位。很欣賞馬總說的一句話:"你從開始當管理者這一天起,別人的成功是你的成功。你通過一件事情的完成,去成就他人的成功,這就是當管理者"。

          ?

          ?? 我覺得最好的團隊應該是自管理的團隊,一群志同道合的同學都朝一個目標,持續改進和進步。而管理者就是這個團隊的潤滑劑和催化劑。目前在BOSS的帶領下,我們團隊做的非常不錯,所以自己想從下面從幾點談談自己的體會。

          ?

          團隊文化
          我覺得一個團隊首先需要定義團隊的文化,團隊的文化是建立在公司的文化之上,有了團隊文化才能凝聚一群志同道合的同學一起工作,有了一群志同道合的同學我們的工作效率才會非常高。如果有不符合團隊味道的同學,我們會請出去。比如我們團隊的文化是信任開心,說到做到和敏捷響應。這些就會成為我們平時的行為準則,拿說到做到舉例子,我們說12月31日發布版本,那么我們團隊通宵也要在這一天發布版本。

          ?

          團隊的夢想

          我認為夢想是團隊的源動力,在團隊遇到挫折的時候,我們需要始終堅持自己的夢想,永不放棄,如讓商人沒有難管的詢盤。

          團隊的夢想需要體現團隊的價值。

          ?

          團隊溝通
          我覺得首先團隊全體成員要一起維護一個溝通的氛圍,大家暢所欲言,減少團隊成員之間的隔閡。大家像哥們和同學一樣,想說什么說什么。大家都應該盡量做到溝通L5級別。

          【團隊溝通的5個等級】
          L5:我會暢所欲言,充分表達自己的意見和看法
          L4:我會主動說出自己的意見,但會回避某些問題
          L3:問到我,我再說
          L2:我不會說太多,主要讓別人提意見和建議
          L1:我會點頭微笑,并表示一切都好
          

          如果我們上班不能說工作無關的事情,發郵件必須很正式(XX,您好!我冒昧的向您咨詢一個問題),說話必須很嚴謹(這件事情我們得回去研究一下),同事之間的稱呼必須很講究等等這些非常職業化的行為,往往是在抑制大家溝通的欲望,往往是在人與人之間增加更多的隔閡,帶來很多的隱患。我覺得一個團隊的BOSS采取什么樣的形式進行溝通,會直接影響到整個團隊采取什么樣的形式進行溝通。我希望團隊成員能夠暢所欲言,在暢所欲言的基礎上提高溝通效率

          ??? 在溝通中要把握好定期溝通和隨時溝通的度。定期溝通:組員可以在收集一些問題后,定期想其他同事咨詢,從而降低溝通成本,提高工作效率。BOSS可以定期找組員溝通,關心下他的生活和工作,幫助他解決一些難題,從而降低項目風險。隨時溝通:我覺得隨時溝通可以促進團隊進步,降低項目風險和提高產品質量。比如你做得不好的地方,同事會隨時和你溝通。項目中存在風險,成員會隨時和BOSS溝通。如果BOSS太忙或者不那么平易近人,那么團隊成員發現問題,就很難找你溝通。

          ?

          團隊成長

          1. 團隊需要建立技術能力模型,讓團隊成員有奮斗的目標。能力模型包含對初級,中級,高級技術人員各方面的要求,推薦書籍。每位同事可以按照能力模型來安排自己的學習時間。
          2. 團隊目標:制定團隊的季度目標和年度目標并完成。
          3. 團隊分享:鼓勵團隊成員進行分享(發郵件,寫博客,培訓),從而促進團隊整體能力的提升。
          4. 個人目標:希望團隊的每一個成員都有月目標,季度目標和年度目標,并且拿出相應的成果和大家分享。
          5. 鍛煉組員:給組員更多的機會進行鍛煉,如讓組員做PM,讓組員代替自己管理某項事務。

          ?

          團隊激勵

          1. 學會欣賞每一位組員。找出他們的優點,加以表揚和肯定,讓其他組員意識到這是優點,從而形成整個團隊的優點。
          2. 學會表揚組員,讓組員動力更足。
          3. 隨時肯定組員的一些積極的行為。
          4. 表現好的時候,給組員一些物質上的獎勵,留作紀念。

          團隊合作
          做任何事情優先考慮團隊合作,要英雄,主動幫團隊成員解決問題,但不要英雄主義,不顧團隊的處理事情。比如團隊成員想做一個開源項目,可以考慮團隊一起做這個開源項目。比如你想到一個很好的方案促進團隊發展,可以約團隊一起來解決。

          團隊成員可以經常做一些非零和博弈活動來增加團隊合作能力,提高團隊氛圍。比如一起聚餐,中午晚上一起吃飯,一起打球,一起唱歌,一起三國殺。這個時候其實最忌諱BOSS不來。?

          ?



          已有 17 人發表留言,猛擊->>這里<<-參與討論


          JavaEye推薦



          posted @ 2011-01-28 22:41 方騰飛 閱讀(167) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 汽车| 五原县| 固安县| 化德县| 南涧| 萍乡市| 阆中市| 曲麻莱县| 社旗县| 榆中县| 灵武市| 昌平区| 江孜县| 黎平县| 台南县| 米脂县| 汉寿县| 双桥区| 无锡市| 铜陵市| 扎鲁特旗| 阿拉善右旗| 富源县| 西安市| 随州市| 赤峰市| 富顺县| 古交市| 罗甸县| 保定市| 萍乡市| 彰化县| 土默特右旗| 尚义县| 敦化市| 宜城市| 栾城县| 巨鹿县| 西盟| 墨脱县| 西林县|