1. 程式人生 > >我的技術轉型之路——從C++到Android (一)

我的技術轉型之路——從C++到Android (一)

作為一個程式設計師,學習是工作必不可少的一個環節,從學習新的API、類庫、IDE的使用到學習一種全新的開發語言,我們跟隨著時代的腳步不斷挑戰和改變著自己。而所謂技術轉型到底多大幅度才算,其實也很難說得清,我自工作開始先是從事了兩年多的C++開發,而後因工作需要轉而學習Android應用程式開發至今兩年有餘,這兩者之間所使用的工具軟體和語言都完全不同,所以這裡姑且就算我是技術轉型了吧,我只是想說說我這幾年的工作經驗,一個C++程式設計師到Android程式轉變過程中的一些心得和體會。鑑於工作環境和專業素養的差異,或許我的體驗對大多數人而言並無意義,但或許總有那麼幾個人能從我的敘述中找到那麼點同感,那我也就覺得很欣慰了。

從邏輯上說,標題的說法描述並不準確,如果從作業系統平臺而言,我是從Window平臺轉向了Android平臺;從開發語言角度而已,是從C++轉到了JAVA;從使用的開發工具是從VisualStudio轉向了帶ADT外掛的Eclipse;從使用的SDK而言,是從MFCWindow API轉向了Android SDK。我之所以用“從C++Android”這個副標題,是因為發現大部分人是從這兩個角度來認識和區分這兩類程式設計師的,對於C++程式設計師大家並不關心用了什麼開發工具包和在什麼作業系統平臺,而對於Android程式設計師又似乎不大關心用了什麼開發語言,或許這兩個稱謂是有著時代的烙印。

下面說說兩種語言的差異,首先說C++吧。說C++就不得不提到C語言。C++C語言的擴充套件而來,二者語法上有太多相同和相似的地方了,一般來說會C++的人也能寫C程式,但是兩種還是有些差異,最重要的一點是C是支援面向過程程式設計的語言,C++是支援面向物件程式設計的語言。在排名靠前的語言中C++也被公認為入門門檻最高的程式語言之一,他的複雜的原因大概在引入了面向物件的程式設計理念和規範的同時又對C語言的功能做了儘量大的保留,尤其是指標和巨集定義更讓很多小白程式設計師望而卻步。面向過程和麵向物件是兩種完全不同的程式設計思路,有C語言基礎並且學過至少一門面向物件的程式語言的人一般都能有所體會。面向過程就是分析出解決問題的步驟,然後用函式

/方法將這些步驟依次實現,最後依次呼叫就可以了;面向物件是將構成問題的事物分解成多個物件,事物都是又物件之間的相互作用而形成的。相對來說,面向物件更容易寫出鬆散耦合的程式碼,能更好的實現程式碼複用。但是並非使用C就不能寫出面向物件的程式,用C++寫的程式就一定是面向過程的,這裡涉及程式設計師個人程式設計習慣和職業素養的問題。

JAVA語言也屬於C語系,所以它的語法多少與C/C++類似,但它是一門更為人性化的語言。人性化不僅僅在於JAVA沒有指標,而是它更好的實現了面向物件,並在面向介面程式設計方面也有著天然的優勢。面向介面程式設計的方式在程式設計理論方面又是一大進步,它並非對面向物件程式設計的顛覆,而是將面向物件程式設計帶入了一個更高的層面。物件的高度解耦和不依賴底層實現的方式,讓我們的程式碼更容易擴充套件和維護。技術的進步並非讓人有了更為艱深晦澀的知識和專業技能,而是技術讓我們極大的提高了工作效率。

待續...