作為1個程序員,學習是工作必不可少的1個環節,從學習新的API、類庫、IDE的使用到學習1種全新的開發語言,我們跟隨著時期的腳步不斷挑戰和改變著自己。而所謂技術轉型到底多大幅度才算,其實也很難說得清,我自工作開始先是從事了兩年多的C++開發,而后因工作需要轉而學習Android利用程序開發至今兩年有余,這二者之間所使用的工具軟件和語言都完全不同,所以這里姑且就算我是技術轉型了吧,我只是想說說我這幾年的工作經驗,1個C++程序員到Android程序轉變進程中的1些心得和體會。鑒于工作環境和專業素養的差異,也許我的體驗對大多數人而言并沒有意義,但也許總有那末幾個人能從我的敘述中找到那末點同感,那我也就覺得很欣慰了。
從邏輯上說,標題的說法描寫其實不準確,如果從操作系統平臺而言,我是從Window平臺轉向了Android平臺;從開發語言角度而已,是從C++轉到了JAVA;從使用的開發工具是從VisualStudio轉向了帶ADT插件的Eclipse;從使用的SDK而言,是從MFC和Window API轉向了Android SDK。我之所以用“從C++到Android”這個副標題,是由于發現大部份人是從這兩個角度來認識和辨別這兩類程序員的,對C++程序員大家其實不關心用了甚么開發工具包和在甚么操作系統平臺,而對Android程序員又似乎不大關心用了甚么開發語言,也許這兩個稱謂是有著時期的烙印。
下面說說兩種語言的差異,首先說C++吧。說C++就不能不提到C語言。C++是C語言的擴大而來,2者語法上有太多相同和相似的地方了,1般來講會C++的人也能寫C程序,但是兩種還是有些差異,最重要的1點是C是支持面向進程編程的語言,C++是支持面向對象編程的語言。在排名靠前的語言中C++也被公認為入門門坎最高的編程語言之1,他的復雜的緣由大概在引入了面向對象的編程理念和規范的同時又對C語言的功能做了盡可能大的保存,特別是指針和宏定義更讓很多小白程序員望而生畏。面向進程和面向對象是兩種完全不同的編程思路,有C語言基礎并且學過最少1門面向對象的編程語言的人1般都能有所體會。面向進程就是分析出解決問題的步驟,然后用函數/方法將這些步驟順次實現,最后順次調用就能夠了;面向對象是將構成問題的事物分解成多個對象,事物都是又對象之間的相互作用而構成的。相對來講,面向對象更容易寫出疏松耦合的代碼,能更好的實現代碼復用。但是并不是使用C就不能寫出面向對象的程序,用C++寫的程序就1定是面向進程的,這里觸及程序員個人編程習慣和職業素養的問題。
JAVA語言也屬于C語系,所以它的語法多少與C/C++類似,但它是1門更加人性化的語言。人性化不單單在于JAVA沒有指針,而是它更好的實現了面向對象,并在面向接口編程方面也有著天然的優勢。面向接口編程的方式在編程理論方面又是1大進步,它并不是對面向對象編程的顛覆,而是將面向對象編程帶入了1個更高的層面。對象的高度解耦和不依賴底層實現的方式,讓我們的代碼更容易擴大和保護。技術的進步并不是讓人有了更加艱深晦澀的知識和專業技能,而是技術讓我們極大的提高了工作效力。
待續...