PC客戶端的互聯網化設計

        伴隨着手機,平板電腦爲代表的移動互聯網的不斷髮展,雲計算和雲服務的興起,更是推動着傳統企業不斷地往互聯網方向轉型。作爲Windows客戶端程序員,自己也在時刻地警醒着:要拋棄傳統軟件開發思維,努力學習互聯網思維。互聯網+,這一個充滿着機遇的經濟新形態,讓所有傳統企業都感覺到挑戰和希望。而最後能否突圍成功,則在於是否能用互聯網思維去解決問題。

        好的,大層面講完,該聚焦到具體的細節上。傳統PC客戶端開發都採用C/S架構,即服務器/客戶端。例如在用戶電腦上安裝客戶端和本地數據庫,客戶端與服務器端進行通訊;又或者是直接把數據庫安裝在數據庫服務器上。其開發採用的數據庫無外乎是MS sql2000Oracle等等,而數據庫安裝和維護是一個難題。

        一般的PC客戶端軟件幾乎集成了所有的功能,界面人機交互和業務處理邏輯都包含其中,這樣由於代碼質量,現場環境和用戶使用習慣等等,往往會容易出現不同的錯誤。這些都需要技術支持去幫助客戶,甚至要到客戶現場去。一旦產品用戶數量到了一個大數量級,呵呵,公司的運維成本會顯著提高。不僅如此,傳統軟件開發週期冗長,流程繁瑣,已經不適應現今的互聯網節奏了。

        因此,爲了更加清晰地說明客戶端的互聯網化設計,現舉例公司新產品採用的新型架構設計模式:互聯網模式。

         雙進程模式:

        1、主進程主要是用於界面展示,用戶業務數據輸入和人機交互等等,採用C++界面庫來實現;

        2、副進程是一個http服務器,它負責數據處理、數據存儲和雲端交互,是一個數據引擎(跨平臺編譯,支持WindowsAndroidIOS平臺);

        3、它們之間的請求交互通過http協議來進行通訊,並採用Json數據格式進行傳輸。

        本地數據庫:

        採用了sqlite3,它是一款輕型的數據庫,佔用資源小,並且經常用在嵌入式設備中。不用安裝,十分方便。

        客戶端架構圖:


         系統架構圖:


        優點:

        1、業務邏輯不寫死在客戶端,放到服務器端操作,統一版本,減少碎片化,增強靈活性。

         如果把業務邏輯寫在客戶端上,一旦它變化,客戶端就必須要修改代碼,版本就要升級。而我們是不強迫用戶升級的,這樣就不能全網覆蓋,造成版本碎片(這裏也是瀏覽器端和客戶端的一種區別);

        2、分工清晰,高效開發,聚焦細節,更能實現敏捷開發的快速迭代;

        客戶端只負責界面實現,網絡核心通訊和基本業務數據處理;服務器端負責數據庫創建,處理,存儲和通訊交互,每個人聚焦的點不大,但是卻能更讓開發者有更多精力和時間設計開發。

        3、有了雲端的交互,雲同步功能可以支持多終端,多地點了,並且支持本地脫機數據,真正做到了隨時隨地看數據了。

        除了架構模式,開發流程管理也要做到互聯網化:快速迭代,小步快跑,快速試錯,大目標拆分爲小目標。其中最有名的是Scrum敏捷開發,現介紹其開發模型,如下圖所示。


         什麼是Sprint

         Sprint是短距離賽跑的意思,這指的是一次迭代,而一次迭代的週期是4個星期

         流程講解:

        1PM確定Product Backlog(按優先順序排列的一個產品需求列表),然後做工作量的預估和安排;

        2、通過 Sprint計劃會議中挑選出一個Story作爲本次迭代完成的目標,這個目標的時間週期是1~4個星期,然後再進行細化,形成一個Sprint Backlog

        3、每個Scrum Team成員根據Sprint Backlog再細化成更小的任務(工作量能細化到2天內完成);

        4、每次Daily Scrum Meeting(每日站立會議)須控制在15分鐘左右,每人都要發言。要彙報你昨天完成了什麼,並承諾你今天要完成什麼,同時可以提出一些難以解決的問題,然後在白板上更新自己的 Sprint burn downSprint燃盡圖);

        5、每天都要有一個可以成功編譯、並且可以演示的版本;

        6、當一個Sprint Backlog被完成,我們要進行 Srpint Review Meeting(演示評審會議)。產品負責人和客戶都要參加,每一個Team成員都要向他們演示自己完成的軟件產品;

        7、最後是 Sprint Retrospective Meeting(回顧會議),以輪流發言方式進行,總結改進的地方,然後放入下一輪Sprint的產品需求中

        互聯網是一個充滿神奇和希望的地方,無論你是開發移動APP端或者windows客戶端,都不應妄自菲薄。我們應該用心去做好產品,時刻站在用戶的角度,跟隨時代潮流,把用戶體驗和產品體驗做到極致,那麼我們就是成功的。

        加油吧,蛋炒飯!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章