當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 面向?qū)ο蠛椭虚g層技術(shù)
面向?qū)ο笏枷雽τ谇度胧秸n程體系的重要性大大超出原本被認為的那樣。這個環(huán)節(jié)的課程對于整體課程體系的意義在于:其它階段雖然使用C語言編碼,但都與面向?qū)ο蠹夹g(shù)緊密關(guān)聯(lián)。尤其是在操作系統(tǒng)編程和Linux內(nèi)核這兩個大環(huán)節(jié)中。在基于操作系統(tǒng)的應(yīng)用程序設(shè)計中,面向?qū)ο蠹夹g(shù)作為主要的中間層接口完成了對于操作系統(tǒng)API的封裝。操作系統(tǒng)提供的各種機制的模型透過面向?qū)ο蟮闹虚g層清晰地浮現(xiàn)出來。Linux內(nèi)核雖然用C語言寫就,但面向?qū)ο蟮脑O(shè)計思想隨處可見。不深入學(xué)習(xí)面向?qū)ο笏枷耄蜔o法透徹理解內(nèi)核的設(shè)計思路。深入和廣泛地展開本階段的教學(xué),能夠大大提升學(xué)員對于軟件體系整體設(shè)計思路的認識。本階段所講授的軟件設(shè)計思想,是其它各個階段課程的基本指導(dǎo)思想。
這階段的前身C++課程曾經(jīng)是“雞肋”一般的存在。如果放棄這個階段,課程的建設(shè)者發(fā)現(xiàn)學(xué)員的簡歷上只有C語言;如果開設(shè)C++課程,又因為該階段和其它階段的脫 節(jié)(其它階段用C作為主要語言)導(dǎo)致學(xué)員不易掌握。于是就出現(xiàn)了一種很奇怪的狀況, 好像應(yīng)當(dāng)教C++,但是又不知道教了做什么用。結(jié)果是這個階段的課程在這種搖擺不定的態(tài)度中被不斷削弱。
課程改革
通過對整個嵌入式軟件體系的思考,面向?qū)ο笏枷雽η度胧杰浖w系的重要意義被發(fā)掘出來。隨之而來的是整個課程體系的全面改革。本階段的課程徹底擺脫了傳統(tǒng)C++教學(xué)模式的束縛,在一個更廣闊的空間展開教學(xué)實踐,編程語言也不再限于C++。本階段的課程增加了中間層環(huán)節(jié)用以講解高層次程序設(shè)計模型,并且將面向?qū)ο笏枷胪渡涞狡渌鱾課程環(huán)節(jié)。
這樣做的效果是很明顯的:在應(yīng)用程序?qū)樱n程所講授設(shè)計手段由于中間層的加 入變得豐富多彩;在操作系統(tǒng)理論的課程環(huán)節(jié),透過中間層講授的編程框架更加清晰;在操作系統(tǒng)內(nèi)核環(huán)節(jié),面向?qū)ο笏枷肽軌驇椭鷮W(xué)員迅速把握內(nèi)核的設(shè)計思路。
展開的新語言課程應(yīng)該擁有比傳統(tǒng)教學(xué)模型更為高效的模型。比如在課程體系中引入Javascript語言的設(shè)想:傳統(tǒng)的JavaScript教學(xué) 是以BOM和DOM模型為主要的編程接口。但課程目的不限于此。JavaScript語言應(yīng)用會涉及服務(wù)器、中間層和客戶端兩個方向。由于統(tǒng)一講授語言本身,所以語法的教學(xué)內(nèi)容反而會更加精簡。
面向?qū)ο笤O(shè)計模式
這個環(huán)節(jié)中講授的模型具有普遍價值:將全課程序列中涉及到的模式整理出來進行深層次分析。涉及到的模式有:代理模式、策略模式、觀察者模式、工廠模式和單例模式等。經(jīng)典的設(shè)計模式理論局限在純粹的面向?qū)ο笳Z言中。而本環(huán)節(jié)課程突破了這種局限性。課程在不同語言模型下討論這些設(shè)計模式,從而能夠深入地學(xué)員體會語言差異對設(shè)計結(jié)果的影響。
中間層技術(shù)
這是一個不斷發(fā)展的課程環(huán)節(jié)。中間層技術(shù)是通往一切應(yīng)用技術(shù)的橋梁,它帶給 程序員迅速構(gòu)建復(fù)雜軟件系統(tǒng)的能力。中間層拓展了課程廣度,這使得學(xué)員能夠有 更廣闊的就業(yè)空間。課程序列的挑選原則是只教授那些在工程實踐中和設(shè)計手段上都具有普遍意義的內(nèi)容。向應(yīng)用層拓展課程正確的選擇應(yīng)當(dāng)是在各個平臺都能適用的技術(shù)。互聯(lián)網(wǎng)技術(shù) 給設(shè)備(及設(shè)備間)提供了 統(tǒng)一的編程接口和通信協(xié)議。傳統(tǒng)的嵌入式 培訓(xùn)只講socket編程。課程應(yīng)當(dāng)從知識的層次 上把網(wǎng)絡(luò)拓展到應(yīng)用層協(xié)議。
Java和Android
Java本身是一門非常復(fù)雜的語言,并且這種復(fù)雜性還在不斷增加中。在這個階段 要徹底放棄“全面介紹語法”的課程建設(shè)思維。在龐大語法和類庫的一個精簡子集上進行講授。中間層有幾件事情要討論:數(shù)據(jù)結(jié)構(gòu)封裝、操作系統(tǒng)封裝、內(nèi)部通信和調(diào)用、外部通信和調(diào)用。特別要指出:通信技術(shù)使已有的軟件技術(shù)能力倍增,這在工程實踐中為工業(yè)界看重。這部分應(yīng)當(dāng)成為全課程體系的建設(shè)重點,而且也是“嵌入式體系”相較其它專門體系的大優(yōu)點。