天天看點

AWorks的哲學思想

 一、思維差異

蘋果之是以成為全球最賺錢的公司,關鍵在于産品的性能超越了使用者的預期,且因為大量可重用的核心領域知識,綜合成本做到了極緻。Yourdon和Constantine在《結構化設計》一書中,将經濟學作為軟體設計的底層驅動力,軟體設計應該緻力于降低整體成本。人們發現軟體的維護成本遠遠高于它的初始成本,因為了解現有代碼需要花費時間,而且容易出錯。同時改動之後,還要進行測試和部署。由于缺乏科學的軟體工程方法,不僅軟體難以重用,而且擴充和維護難度很大,進而導緻開發成本居高不下。

更多的時候,程式員不是在編碼,而是在閱讀程式。由于閱讀程式需要從細節和概念上了解,是以修改程式的投入會遠遠大于最初程式設計的投入。基于這樣的共識,讓我們操心的一系列事情,需要不斷地思考和總結使之可以重用,這就是方法論的源起。

通過财務資料分析,由于早期決策失誤和缺乏科學的軟體工程方法,我們開發了一些周期長、技術難度大且回報率極低的産品,不僅軟體難以重用,而且擴充和維護難度很大,進而導緻開發成本居高不下。

由此可見,從軟體開發來看,軟體工程與計算機科學是完全不同的兩個領域的知識,其主要差別在于人,因為軟體開發是以人為中心的過程。如果考慮人的因素,軟體工程更接近經濟學,而非計算機科學。顯然,如果我們不改變思維方式,則很難開發出既好賣且成本低的産品。

二、利潤模型

産品的BOM成本很低,而毛利又很高,為何很多上市公司的年利潤卻買不起一套房?房子到底被誰買走了,這個問題值得我們反思!

偉大企業除了願景、使命和價值觀之外,其核心名額就是利潤,作為開發人員一個最大的痛苦就是很難精準地開發好賣的産品。因為很多企業普遍都不知道利潤是如何來的?是以有必要建立一個利潤模型,即“利潤=需求-設計”。需求是緻力于解決“産品如何好賣”的問題,設計是緻力于解決“如何降低成本”的問題。

代碼的優劣不僅直接決定了軟體的品質,還将直接影響軟體成本。軟體成本是由開發成本和維護成本組成的,而維護成本卻遠高于開發成本,蠻力開發的現象比比皆是,大量來之不易的資金被無聲無息地吞沒,整個社會的資源浪費嚴重。

為何不将複雜的技術高度抽象呢?如果實作就能做到讓專業的人做專業的事,AWorks就是在這樣的背景下誕生的。由于其中融入了更多的軟體工程技術方法,是以就能做到将程式員徹底從非核心域中釋放出來聚焦于核心競争力。

三、核心域和非核心域

其實一個軟體系統封裝了若幹領域的知識,其中一個領域知識代表了系統的核心競争

力,這個領域被稱為“核心域”,其它領域稱為“非核心域”。雖然更通俗的說法是“業務”和“技術”,但使用“核心域”和“非核心域”更嚴謹。

非核心域就是别人的領域,比如,底層驅動、作業系統群組件,即便你有一些優勢,那

也是暫時的,競争對手也能通過其它管道獲得。雖然非核心域的改進是必要的,但不充分,還是要在核心域上深入挖掘,讓競争對手無法輕易從第三方獲得。因為在核心域上深入挖掘,達到基于核心域的複用,這是獲得和保持競争力的根本手段。

要達到基于核心域的複用,有必要将核心域和非核心域分開考慮。因為過早地将各個領

域的知識混雜,會增加不必要的負擔,進而導緻開發人員騰不出腦力思考核心域中更深刻的問題。由于待解決的問題的規模一旦變大,而人腦的容量和運算能力有限,是以必須分而治之,因為核心域與非核心域的知識都是獨立的。

四、共性與差異性

如果沒有ARM公司的IP授權模式,則在設計MCU時勢必消耗大量來之不易的财富。雖然ARM公司的規模相對來說不大,但毫不影響ARM成為一個偉大的企業,其為人類做出的貢獻是有目共睹的。

盡管如此,沒有軟體的支援,那麼硬體就是一坨廢鐵。由于需求五花八門,盡管人們也做出了巨大的努力,期望最大限度地降低開發成本,似乎人們期望實作美好的心願遙遙無期,無法做到高度地重用人類通過艱苦努力積累的知識。由于商業利益的驅使,偉大企業的不偉大之處,企圖将客戶綁在他們的戰車上,讓競争對手絕望,大凡成功的企業無不如此。

有沒有破解的辦法呢?那就是“共性與差異性分析”抽象工具。實際上,不管是基于何種核心的MCU,也不管是哪家公司的OS,其設計原理是一樣,隻是實作方法和實體(硬體和程式)不一樣,但隻要将其共性抽象為統一接口,差異性用特殊的接口應對即可。

基于此,我們不妨做一個大膽的假設。雖然PCF85063、RX8025T和DS1302來自不同的半導體的公司,但其共性都是RTC實時月曆時鐘晶片,即可高度抽象共用相同的驅動接口,其差異性用特殊的驅動接口應對。雖然FreeRTOS或μC/OS-II或sysBIOS、Linux、Windows各不相同,但它們都是OS,多線程、信号量、消息、郵箱、隊列等是其特有的共性,顯然QT和emWin同樣可以高度抽象為GUI架構。也就是說,不管什麼MCU,也不管是否使用作業系統,隻要修改相應的頭檔案,即可複用應用代碼。

由此可見,無論選擇何種MCU和OS,隻要AWorks支援它,就可以在目标闆上實作跨平台運作。因為無論何種OS,它隻是AWorks的一個元件,針對不同的OS,AWorks都會提供相應的擴充卡,那麼所有的元件都可以根據需要互換。

由于AWorks制定了統一的接口規範,并對各種MCU内置的功能部件與外圍器件進行了高度的抽象,是以無論你選用的是ARM還是DSP,以高度複用的軟體設計原則和隻針對接口程式設計的思想為前提,則應用軟體均可實作“一次程式設計、終生使用、跨平台”,顯然AWorks給你帶來的最大價值就是不需要重新發明輪子。

五. 生态系統

如果僅有OS和應用軟體架構就構成了生态系統,這是遠遠不夠的。在萬物互聯的時代,一個完整的IoT系統還包括傳感器、信号調理電路、算法和接入雲端的技術,可以說異常複雜包羅萬象,這不是一個公司拿到需求就可以在幾個月之内完成的,需要長時間的大量積累。

ZLG在成立之初就做了長期的布局,我們并沒有将自己定位于晶片代理或設計,也沒有将自己定位于儀器制造,更沒有将自己定位于方案供應商,但随着時間的推移和時代的發展,經過艱苦的努力自然而然地成為“工業網際網路生态系統”上司品牌。這不是刻意而為的,而是通過長期的奮鬥順理成章的結果。

ZLG通過“晶片+AWorks”設計了高附加值的子產品、闆卡和高端測量儀器,通過有線和無線通信接口接入ZWS(ZLG Web Services) IoT雲端處理系統,,實作大資料處理,構成工業網際網路生态系統。

其商業模式既可以銷售硬體,也可以銷售平台,還可以針對某個有針對性的行業提供系統服務于終端使用者。與此同時ZLG将在全國50所大學建立工業網際網路生态系統聯合實驗室,通過産學研的模式培養人才服務于工業界,還可以通過天使投資打造ZLG系,幫助更多的人取得更大的成功,推動“中國智造2025”計劃的高速發展。

六. 專家與通才

任何一個組織和系統的成功都離不開專家和通才的鼎力配合與奮鬥,這12年一路走來很不容易,但欣慰的是AWorks生态系統的開發,培養了一些專家和核心骨幹人才。我深深地體會到卓越人才的價值,怎麼形容都不為過,是以今後我的主要工作就是尋找和發現卓越人才,為他們提供一個衣食無憂的,可以靜下心創新的平台,大家共同努力改變這世界某一小部分,歡迎自我推薦或讀者向我推薦有理想有抱負的人才。如果你有心,你一定能找到我。

七、叢書簡介

這套叢書命名為《嵌入式軟體工程方法與實踐叢書》,其最新動态詳見www.zlg.cn(周立功旗下企業:廣州緻遠電子有限公司)和www.zlgmcu.com(廣州周立功單片機科技有限公司),全部以電子版的形式釋出。

目前已經完成《程式設計與資料結構》、《面向AMetal架構與接口的程式設計》和《面向AWorks架構與接口的程式設計》(上),後續還将推出《面向AWPI架構和接口的程式設計》、《面向AWUI架構和接口的程式設計》和《面向ZWS IoT架構和接口的程式設計》系列圖書。