//2010-08-01 21:05
今天要強迫自己寫出這個總結來了,否則我怕以後又有了新的感受,還要沉澱,又不知道多久才能沉澱和寫出來.三年前,我寫過一個<Web開發的一點心得> http://blog.csdn.net/Eric77/archive/2006/12/13/1441977.aspx ,基本的觀點繼續延續裡面的想法. 只是最近這幾年,做了不少系統,從需求分析,設計,開發,測試 和 專案管理了整個流程,又有了一些新的感悟.
對任何系統來說: 無非是做好3件事: IPO. 也就是Input,Process,Output.
對需求分析來說: 你最重要的是搞明白,使用者的需求.也就是搞清使用者的輸入(Input)和輸出(Output)是什麼,它的要求達到的功能(Process)是什麼. 明白以後,你就可以寫一些使用者需求說明書,描述用例,輸入輸出處理異常什麼的,或者做一個簡單的Demo系統,拿去給使用者看,看看這個介面是不是使用者喜歡的,這個流程是不是使用者所需要的等等.
然後就是系統分析: 首先,你需要對使用者的需求分模組,每個模組的IPO是什麼,他們應採用什麼架構,需要和那些模組互動,互相之間的介面是怎樣的,需要使用什麼技術.每個模組的運行環境是什麼樣子的,對效率,安全或者容錯等特性是否要著重考慮.
接著就是系統設計: 每個模組的資料庫要怎麼設計,所用技術和架構決定後,要確定不同層次有哪些介面,比如說表現層,商務邏輯層,資料庫訪問層,相互之間怎麼調用,定好架構和開發模式和格式,剩下的就是編碼了.
編碼部分: 首先團隊要有一個良好的編碼規範.並且對每個人提交的代碼要review,我發現程式編多了,自己就成了一台計算,看到程式就會知道會出現什麼結果,根本都不用跑起來.
測試: 單元測試是否編寫測試案例? Junit是個好工具.每個人都要保證好自己的代碼沒有問題. 整體測試就要整個流程的跑一下,看看需求實現的對不對,還有沒有什麼其他紕漏.
風險管理: 這一點很重要,要時刻知道自己的項目有什麼風險,無論是人員的,技術的,時間的,還是協調上面的.都要心裡有數,按時按周向領導彙報.
恩,以上就是我現在對一個系統開發的整體觀點.
也許寫的簡單了一點,不過我覺得真的是如此,面試的時候,經常有人問我,你有沒有做過一些複雜的商務邏輯,其實說實話,我還真不知道怎麼回答這個問題,我一直都覺得,把IPO搞明白,多複雜的商務邏輯都會簡化成一個一個小的步驟,處理完輸入的資料後,就進行資料庫更新或儲存,然後就返回給使用者處理後的反饋資訊. 複雜點的最多就是涉及到多資料庫或者嵌套事務的處理,只要把握好事務的生命週期,是否互相影響,處理好提交和復原也就OK了. 如果是涉及到工作流程的,就要記錄和管理好它的位置,上下流程的關係狀態什麼的. 還有什麼複雜的商務邏輯形式? 額,我再想一想.
也許大型的資料量的訪問和處理就需要一些技巧了. 典型的就是把經常訪問的變化不經常的動態網頁面,轉換成靜態html分配給apache處理,注意更新. 或者使用叢集Cluster來緩解壓力.這又會涉及到怎樣追蹤使用者的問題了,一個最簡單的方式就是對使用者模數來進行分配,呀,跑題了.如果對資料庫的存取量太大,一般可以使用緩衝,多弄幾台資料庫,搞成叢集形式,一台主的多台輔的.恩,如果後台表資料量太大的話,就是用分表方式,分表有幾種方法,略掉吧.還有什麼呢,比如說對查詢語句怎麼最佳化,這就要使用查詢分析器了,也不多說. 額,,, 還有什麼,暫時想不起來了. 不過,douban無私牛人的<豆瓣網技術架構的發展曆程>這篇pdf真的很不多,值得每個人研讀.
記得我去IBM面試的時候,問過,以後有幾條職業發展的方向,回答有三條,一條是IT Specialist,一條是Project Manager,還有一條是IT Architect. 我還曾要求以後能不能向IT Architect發展,那人說,Architect要熟悉很多技術呢,我問了兩遍,他這樣回答了兩遍.後來給我訂了Advisory I/T Specialist. 我當時很納悶,我搞Java這麼久,J2ME,J2SE,J2EE全都搞過,而且對Gof的<Design Pattern>也悟了5年,了熟於心,各種各樣的經典書籍也看了不少,怎麼不能向Architect發展呢. 現在我加入了IBM,進入一個香港的項目,過段時間要去香港培訓幾星期,才明白了,原來一個大項目會涉及到各種各樣的語言,技術,什麼Cobal(音譯),forturn(音譯),java,vb,C#,soa xx匯流排模式,mq,大型主機開發,等,很多我只在書上看到過的古老語言,還有一些聽都沒聽過的語言,架構,模式,全都出現了.我當時這個汗哪,我才發現我真的很無知.知識就是一個氣球,你知道的越多,接觸的越多就會發現自己越無知.所以這也是我要今天趕緊把這個寫出來的原因. 我怕以後又有了變故,還要沉澱,需要時間.
恩,路還長,吾等還需繼續努力.
前不久在家裡陪我媽看了'曲黎敏'講的<黃帝內經>的相關養生知識,覺得每個人都應該聽一下,大道至簡,陰陽五行,天地自然,健康養生. 悟 - 這個字存在宇宙萬物中.
//22:23