培養(yǎng)Android軟件人才:從落實軟件工程教育開始
「開發(fā) Android」是臺灣科技業(yè)的全民運動了。未來幾年,如果要尋求更大的突破,并提升整體軟件開發(fā)能力,根本的做法與策略為何?個人看法是「落實軟件工程的基本教育」。
本文引用地址:http://m.butianyuan.cn/article/184494.htm
提升 Android 軟件能量,當務(wù)之急是培養(yǎng)一批「架構(gòu)分析」的工程師。架構(gòu)分析需要考慮的層面較廣,包括技術(shù)面與產(chǎn)品面。軟硬整合的工作,幾年前訴求的是硬件驅(qū)動程序與系統(tǒng)軟件,主要工作是效能的提升與優(yōu)化,這是從硬件層面思考的軟硬整合。從產(chǎn)品層面重新思考軟硬整合,涉及的層面會放大至中間軟件(Middleware、Application Framework)、應(yīng)用程序(Application)以及網(wǎng)絡(luò)服務(wù)等。
架構(gòu)分析的重點工作之一,在于了解 Application Framework 與驅(qū)動程序(硬件)間的關(guān)系,使用各種現(xiàn)有的技術(shù)來整合系統(tǒng),并提出更好的架構(gòu)設(shè)計方案。架構(gòu)分析的技術(shù)屬于「軟件工程」領(lǐng)域,而不是硬件或系統(tǒng)程序領(lǐng)域。但具備驅(qū)動程序與硬件經(jīng)驗,可以幫助工程師找出更好的架構(gòu)設(shè)計方法。
Android 是軟件框架的技術(shù)。臺灣廠商得天獨厚的優(yōu)勢在于,過去積累大量的IC設(shè)計、硬件主板、驅(qū)動程序與系統(tǒng)軟件經(jīng)驗,若能補足軟件框架的分析與設(shè)計能力,未來競爭力將有很大的想象空間。因此,導(dǎo)入架構(gòu)分析技術(shù),培養(yǎng)架構(gòu)分析工程師,理論上能發(fā)揮這項得天獨厚的能力,建立獨特的競爭力。這也是三星(Samsung)正在積極進行的工作。
落實軟件工程教育是根本,必須從教育做起。軟件工程所討論的「軟件框架」就像信息科學(xué)的「位運算」一樣,屬于通識學(xué)科。軟件框架技術(shù),重度依賴這些基礎(chǔ)學(xué)科:面向?qū)ο螅∣O)、面向?qū)ο笳Z言(OOP)、面向?qū)ο蠓治雠c設(shè)計(OOAD)、分層架構(gòu)設(shè)計、設(shè)計模式(Design Patterns)等,這些知識缺一不可。
軟件框架具備四項特性。第一、控制點反轉(zhuǎn)(Inverse of control),整體來看,控制應(yīng)用程序執(zhí)行流程的人,是軟件框架,而不是應(yīng)用程序本身的函數(shù)呼叫關(guān)系。這與一般循序式的結(jié)構(gòu)化語言(如:C語言)很不同。
第二、默認行為(default behavior),軟件框架本身都有預(yù)先設(shè)定好的行為。這些行為通常都是預(yù)先定義好后,才釋出軟件框架。所謂的「行為」范圍廣大,例如同步呼叫、異步呼叫、阻塞式I/O等。
第三、不可修改性,這是軟件框架相當重要的觀念。以 Android 為例,其 Application Framework 的程序代碼「不能」修改,開發(fā)者「不能直接改 Code」。意思是下載 AOSP(Android Open Source Project)程序代碼后,不能直接修改框架層的程序代碼。若直接修改 Android 應(yīng)用框架程序代碼,在編譯時期便會出現(xiàn)警告訊息。直接修改 Android 應(yīng)用框架程序代碼也會造成 API 兼容性的問題,可能無法通過 CTS,導(dǎo)致產(chǎn)品無法上市,不可不重視。
最后是擴充性,在不能直接修改軟件框架的前提下,如何「加入自已的功能」至 Android 框架呢?正確的方法是以覆載(override)方式進行擴充(extend)。覆載是面向?qū)ο箢I(lǐng)域的基本知識,也是開發(fā) Android 應(yīng)用框架的重要技術(shù)。撰寫「應(yīng)用程序」補上軟件框架所沒有的功能,也是「擴充性」的另外一個做法。從以上的介紹便能發(fā)現(xiàn),未來如果要在 Android 應(yīng)用框架開發(fā)上有所突破,軟件工程教育就必須要落實,畢竟這是軟件開發(fā)的基本學(xué)科。
本文由 CTIMES 同意轉(zhuǎn)載,原文鏈接: http://www.ctimes.com.tw/DispCols/cn/Android/1106071506S1.shtml
評論