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)編輯 收藏

          作者:kiral?原文地址:http://kiral.javaeye.com/blog/891850

          ?

          “Don‘t make me think!"

          ?

          由于最近看到BOSS分享了一篇PPT《有效溝通》,在溝通方面也得到大飛的指導,在工作和生活中越來越感覺到溝通的重要性。在項目管理中溝通也起著至關重要的地步,所以在此小結一下。

          ?

          什么是溝通?
          卡內基說“所謂溝通就是同步。每個人都有他獨特的地方,而與人交際則要求他與別人一致。”我也認為溝通就是信息的同步

          ?

          如何有效溝通?
          溝通的關鍵是同理心。學會站在對方的立場進行溝通。其次是減少溝通壁壘,在表述者和聆聽者之間存在兩道溝通壁壘。信息的傳遞,表述者應該盡量站在聆聽者的知識背景上去清楚的表達內容。信息的理解,聆聽者應該懷著一個開放和尊重的心態,去聆聽表述者傳達的信息,不要在沒完全聽明白表述者傳達的信息之前,就用慣性思維去抵觸信息接收。兩者都應該做到用心溝通,最終才能保證信息有效同步。在溝通的過程中,我們一定要清楚咱們溝通的目的是要解決事情和問題,而不是爭論誰對誰錯這種沒有價值的事情。德魯克說:"人無法只靠一句話來溝通,總是得靠整個人來溝通"。

          ?

          溝通三要素:關系,準備,溝通技巧。關系:把握你和溝通者的關系。不同的關系說不同的話,熟悉的人可以直接點,不熟悉的人委婉點。比如同事穿著不得體,你可以直接一點,說你今天怎么穿得這么難看,或者委婉點,說你今天穿得很有個性。準備:為了達到溝通的目標做的一系列準備工作。溝通技巧:掌握各種溝通技巧。

          ?

          提高溝通技巧?溝通的最高境界就是從別人的口里說出你想說的話

          ?

          1:先肯定別人,再說自己的看法
          很多時候我們通過溝通是想證明自己的存在,所以人很需要被別人肯定,你肯定了他,他就會覺得被尊重,就會肯定你,這是同理心。開會或培訓的過程中,當領導或者同事發言之后,如何點評和反饋?對于領導,仔細聆聽,對領導在講話過程中有感觸的幾個點,談談自己的心得和體會。對于同事,首先是肯定同事,幫同事總結一下,談談自己的想法。或者同上。

          ?

          2:學會用表揚的方式進行溝通
          我們部門希望用兄弟部門的產品,需要和兄弟部門溝通,因為兄弟部門沒有義務幫我們,并且他們也很忙,所以這事一直沒辦成。
          于是我們部門的領導讓我發封郵件給兄弟部門的領導表揚一下他們并抄送給他,回去之后想了各種措辭表揚了下兄弟部門的產品如何如何牛,咱部門迫不及待想使用一下。
          果然第二天他們就派人來幫我們裝上了產品。

          ?

          3:讓別人成為溝通的主動方,我們站在溝通的支持方。
          之前某位同事負責處理某件事情,我給出了這件事情的實施方案建議,但是他覺得這么做沒有必要,但是他也沒提出具體的實施方案,結果這個事情就不了了之。那么問題在哪里呢?我覺得他是一位很有主見的人,而我將自己的想法強加于他,所以他一開始就有抵觸傾向。
          那么換一個思路我想會更好,針對這個問題我去向他咨詢比較好的方案,讓他說出來,然后我對他的方法表示肯定和支持,然后在這個基礎上談談自己的建議,那么這樣他就更容易接受。

          ?

          4:學會聆聽,邊聽邊猜

          學會集中精力先聽明白別人說什么,別人可能因為表達能力不好或者說話音量比較小,導致你當時很難理解他說的話,但這個時候如果你不停的反問對方,溝通體驗就會非常差,所以要學會邊聽邊猜

          ?

          5:描述事情,從結論說起

          向別人描述事情的時候,先從結論說起,這樣便于聽眾理解,說完結論后再對分析自己為什么得出這個結論。聆聽也是一樣,如果別人沒有一開始告訴你結論的話,你需要聆聽別人到底是要表述一個什么結論。

          ?

          6:說服別人,用演繹法

          演繹法是從事實逐漸推倒出結論,這樣很適合說服聽眾。演繹法的流程為陳述事實-分析原因-推倒結論-建議方案。如果你的觀點具有排他性,一開始就說出來,那么觀眾可能會有抵觸心理,在你描述的過程中,他可能會在想如何反駁你,這樣你的信息就很難傳遞給他。

          ?

          PS:第5點和第6點的描述方式剛好完全相反(一個先得出結論,一個后得出結論)。凡事沒有絕對,這兩種描述方式,都存在一定的合理性,針對不同的聽眾(固執的人或者易被接受的人),描述不同的事情,應該選擇不同方法。



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


          JavaEye推薦



          posted @ 2011-01-23 14:12 方騰飛 閱讀(155) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 祁东县| 金山区| 柘荣县| 固始县| 东乡县| 白河县| 电白县| 雅江县| 拜城县| 平南县| 澄城县| 原平市| 平潭县| 咸丰县| 乐平市| 土默特右旗| 高青县| 农安县| 长宁区| 冀州市| 板桥市| 达孜县| 内黄县| 杭州市| 景宁| 开平市| 徐水县| 广昌县| 四川省| 桃园市| 云梦县| 西乌珠穆沁旗| 上高县| 乐至县| 班戈县| 斗六市| 阿瓦提县| 长宁区| 大连市| 东乡| 泽州县|