標籤:用戶端 互連網思維 架構設計 敏捷開發 軟體開發
伴隨著手機,平板電腦為代表的移動互連網的不斷髮展,雲端運算和雲端服務的興起,更是推動著傳統企業不斷地往互連網方向轉型。作為Windows用戶端程式員,自己也在時刻地警醒著:要拋棄傳統軟體開發思維,努力學習互連網思維。互連網+,這一個充滿著機遇的經濟新形態,讓所有傳統企業都感覺到挑戰和希望。而最後能否突圍成功,則在於是否能用互連網思維去解決問題。
好的,大層面講完,該聚焦到具體的細節上。傳統PC用戶端開發都採用C/S架構,即伺服器/用戶端。例如在使用者電腦上安裝用戶端和本機資料庫,用戶端與伺服器端進行通訊;又或者是直接把資料庫安裝在資料庫伺服器上。其開發採用的資料庫無外乎是MS sql2000和Oracle等等,而資料庫安裝和維護是一個難題。
一般的PC用戶端軟體幾乎整合了所有的功能,介面人機互動和業務處理邏輯都包含其中,這樣由於代碼品質,現場環境和使用者使用習慣等等,往往會容易出現不同的錯誤。這些都需要支援人員去協助客戶,甚至要到客戶現場去。一旦產品使用者數量到了一個大數量級,呵呵,公司的營運成本會顯著提高。不僅如此,傳統軟體開發週期冗長,流程繁瑣,已經不適應現今的互連網節奏了。
因此,為了更加清晰地說明用戶端的互連網化設計,現舉例公司新產品採用的新型架構設計模式:互連網模式。
雙進程模式:
1、主進程主要是用於介面展示,使用者業務資料輸入和人機互動等等,採用C++介面庫來實現;
2、副進程是一個http伺服器,它負責資料處理、資料存放區和雲端互動,是一個資料引擎(跨平台編譯,支援Windows、Android和IOS平台);
3、它們之間的請求互動通過http協議來進行通訊,並採用Json資料格式進行傳輸。
本機資料庫:
採用了sqlite3,它是一款輕型的資料庫,佔用資源小,並且經常用在嵌入式裝置中。不用安裝,十分方便。
用戶端架構圖:
系統架構圖:
優點:
1、商務邏輯不寫死在用戶端,放到伺服器端操作,統一版本,減少片段化,增強靈活性。
如果把商務邏輯寫在用戶端上,一旦它變化,用戶端就必須要修改代碼,版本就要升級。而我們是不強迫使用者升級的,這樣就不能全網覆蓋,造成版本片段(這裡也是瀏覽器端和用戶端的一種區別);
2、分工清晰,高效開發,聚焦細節,更能實現敏捷開發的快速迭代;
用戶端只負責介面實現,網路核心通訊和基本業務資料處理;伺服器端負責資料庫建立,處理,儲存和通訊互動,每個人聚焦的點不大,但是卻能更讓開發人員有更多精力和時間設計開發。
3、有了雲端的互動,雲同步功能可以支援多終端,多地點了,並且支援本地離線資料,真正做到了隨時隨地看資料了。
除了架構模式,開發流程管理也要做到互連網化:快速迭代,小步快跑,快速試錯,大目標拆分為小目標。其中最有名的是Scrum敏捷開發,現介紹其開發模型,如所示。
什麼是Sprint?
Sprint是短距離賽跑的意思,這指的是一次迭代,而一次迭代的周期是4個星期。
流程講解:
1、PM確定Product Backlog(按優先順序排列的一個產品需求列表),然後做工作量的預估和安排;
2、通過 Sprint計劃會議中挑選出一個Story作為本次迭代完成的目標,這個目標的時間周期是1~4個星期,然後再進行細化,形成一個Sprint Backlog;
3、每個Scrum Team成員根據Sprint Backlog再細化成更小的任務(工作量能細化到2天內完成);
4、每次Daily Scrum Meeting(每日站立會議)須控制在15分鐘左右,每人都要發言。要彙報你昨天完成了什麼,並承諾你今天要完成什麼,同時可以提出一些難以解決的問題,然後在白板上更新自己的 Sprint burn down(Sprint燃盡圖 (burndown chart));
5、每天都要有一個可以成功編譯、並且可以示範的版本;
6、當一個Sprint Backlog被完成,我們要進行 Srpint Review Meeting(示範評審會議)。產品負責人和客戶都要參加,每一個Team成員都要向他們示範自己完成的軟體產品;
7、最後是 Sprint Retrospective Meeting(回顧會議),以輪流發言方式進行,總結改進的地方,然後放入下一輪Sprint的產品需求中。
互連網是一個充滿神奇和希望的地方,無論你是開發移動APP端或者windows用戶端,都不應妄自菲薄。我們應該用心去做好產品,時刻站在使用者的角度,跟隨時代潮流,把使用者體驗和產品體驗做到極致,那麼我們就是成功的。
加油吧,蛋炒飯!
PC用戶端的互連網化設計