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