有了C++爲何還戀戀不忘C

   最近被命令參與多個項目的重構或解bug工作,本與自己無關,但做爲公司的員工,上面的要求又不得不接受。而最讓人頭痛的事兒是,這幾個項目要麼就是全C寫的,要麼就是披着C++外套的C程序。爲什麼有了OOP思想,還要用C?難度他們還真相信可以把C程序寫成面向對象的?


   也許可以,但付出的時間和精力,還是公司給你買單,最後程序問題多多,還得不到公司的認同,何苦呢?我最開始寫程序也是從C語言開始的,之後接觸了C++,才覺得OOP才能解決軟件工程學提出的,做軟件的最核心要素降低編碼複雜度。


   如果不是嵌入式編程,大可不必寫成C程序,因爲C代碼在維護階段太多離奇的事情會發生,很多自己造的代碼,後面也解決不了問題,更何況其它。正如現在我接手的解bug的項目,其項目實現者,還在其位就已經不能爲其力了,問其問題也是不清不楚。後果非常地嚴重啊!!

   今天解部門經理以前寫的C代碼bug, 經理守着的一起找原因,不時還津津樂道某個實現機制多麼的高級和巧妙,卻還不以這麼多bug爲恥。60多個bug,其中就好幾個屬於系統crash的。滿大街的鎖居然都沒有鎖住crash, 這代碼也夠亂的。還稱我們效率太慢了,我想,你做了大半年的項目還出這麼多問題。我第一天接觸代碼就要解決你留下的離奇bug,如果我做到了,我看部門經理的位置該換人了。


   我痛恨那些把問題複雜化的coder, 更痛恨那些自己實現List, Map, Quene的coder, 你想重複造輪子,你下去私低下自己慢慢造,你不要把你的試驗品移到商業產品中來。首先,我不是你的老師,不會幫你改作業。


我覺得那些戀戀不忘C的coder主要有以下幾種:

1. 大叔coder

   這類coder大從上世紀九十年代就開始接觸編程,那是一個人編程的年代,不需要讓別人理解,有問題一個人解決。後面軟件規模越做越大,這類人大部分開始改投C++陣營,知道程序是讓程序員看的了,但仍有少部分人對C語言不離不棄。這部分old coder,在如今的很多公司做CTO或"super coder",所以,我們有時會遇到維護他們寫的代碼,那將是非常頭痛的事,你寧願重寫全部代碼也不想做維護。如果公司遇到這種人寫的代碼,而其人還在其位,你只有忍氣吐聲,等待機會,等到他走了,你再告訴領導,那代碼該退出歷史舞臺了。


2. 裝深沉的coder

   這類人喜歡顯擺基礎知識學得多麼的紮實,數據結構用得多麼的神奇。永遠覺得C程序比C++程序更深沉一些。其實只是頭腦更簡單一些,只能單線思想問題,沒有抽象能力罷了。這類coder其實就是強迫症,如果公司強行要求用C++實現代碼,估計這類人會選擇離職。


3. 學不會C++的人

   這類人比較可憐,他們走上這條coder之路,估計也是不太情願的,能學會C語言已經實屬不容易了,能勉強過活,也就維持現狀吧!!深表同情。


4. 最方便型coder

   這種人C學一點,C++也會一點,但都不精通,分不清楚C++和C有什麼區別,在他們的腦海裏永遠覺得差不多。所以這類人寫代碼是不經思想的,怎麼用方便就怎麼用,不去思考結構,模式等等。隨時都可以造一個全局函數,隨時都可以把幾個絲毫不相關的東西放在一個class裏面。只要功能可用,寫再多重複的代碼也情願。你如果問他C和C++有什麼區別,他肯定會說,C++是C的升級版,多了一個stl庫,其它的語法差不多。我最痛恨這類coder, 絲毫沒有專業精神。


結束語:

   很多人認爲寫程序,寫到四五年就已經無所不知了,也沒有什麼知識不瞭解了(除了那些從來不會使用的語言特性,也許造語言的人就多造了這種特性),就整天的忙裏偷閒,不再學習,靠着經驗混飯吃,得過且過。其實精通和會,還有很大差距,怎麼學,學什麼都不用多講了,只要你願意進步,你總能找到方法。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章