程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言內力修煉與軟件工程

C語言內力修煉與軟件工程

編輯:關於C語言

雖然如今很多人,特別是軟件工程理解的比較好但是還沒有達到滿瓶子的那些人,他們很鄙視使用c語言重新來做,他們十分推崇c++等OO語言,認為可用的庫比較多,從而可以使開發效率更高,可以使代碼可讀性更強,可以使代碼維護成本更低,他們認為你使用c語言來實現一個c++庫裡的功能是在炫技巧,是學院派行為…然而這種說法是不正確的,打出去的一招一式目的有兩個,一個是為了表演,另一個是為了打倒對手,這種招式一定要簡單,漂亮,高效,“可讀性強”,然而內力的修煉卻是需要自己一絲不苟的孤獨完成的,哥修煉的不是內功,是寂寞。修煉內力時萬萬不可玩軟件工程,如果你不能簡單無誤寫出快排代碼,那就慎用qsort。
    當你修煉完成,覺得自己已經很不錯的時候,怎麼辦?直接投入軟件工程項目麼?差矣。如果你這麼做了,你就會受到“鄙視”,你就會被認為在炫技巧,那麼怎麼辦呢?
忘掉你修煉內功時的心法,如果你真的練成了神功,那麼它早已和你合為一體,忘掉心法,完全忘掉心法,忘掉你的每招每式,內力逼出的代碼而不是心法指導的代碼才是最優美的代碼。如果你沒有忘掉那些心法,那麼你會時刻想去使用它們,而它們早已被封裝在神劍中了,你需要的是握緊這把神劍去PK,而不是重新鑄造一把神劍。
    c語言是一門語法超級簡單,又不必去在語言本身去深究的語言,然而它卻可以做出其它語言很難做到的超級復雜的系統,比如操作系統。倒不是說其它語言不能實現操作系統,而是那不是它們的舞台也不是它們的戰場。簡單就是美,任何一本c語言的書,都不會涉及很復雜的東西,然而內功深厚的大俠,他們卻可以使用c語言,寫出世界上最美的系統。張三豐最終給了周芷若一本《道德經》,說那就是他的秘訣,其中的以柔克剛完全是一種內力的體現,此謂上善若水(雖然我一直認為它下流至賤),整個《道德經》中沒有什麼心法,更別提在裡面去找到如何對付乾坤大挪移了。
    我想說一下一個現象,那就是為何我們很少能做出好的軟件,其實原因很簡單,那就是我們的軟件開發人員,或者說程序員,被分成了兩個隔絕的群體,一類是純內力修煉者,另一類是純軟件工程者,這兩類猛一看,都是高手,實際上卻都殘缺了另一半。如果你是內功修煉者,那麼你會鄙視那些只會使用庫堆積代碼的人,你關注的是實現,他們關注的是接口,然而好的軟件一個標准就是接口的設計,一個只會實現一些hack的人是永遠做不出真正的軟件的,他們能做的只是寫出一個程序而已,只關注內力的程序員,他們可以寫出一個很炫的算法,解決一個很多人都解決不了的問題,然而他們卻不懂得如何組合這一切,不懂得如何包裝自己的實現,更不在意這種技巧會有什麼用;另一類人只關注軟件工程,認為OO就是銀彈,能不自己動手就不動手,實際上的結果就是研發滯後,他們只是在使用現成的庫,他們只在乎業務邏輯,只在乎封裝,卻很少去關注實現,由於他們把自己和庫實現者看做兩類人,因此他們只是簡單的拿來,他們可以做出一個很漂亮的系統,完成一款實用軟件,賺到一筆錢,然而他們不在意自己站在誰的肩上。總結一下就是,第一類人關注機器,企圖挖掘機器的所有特性,而第二類人關注人機接口,關注人如何使用機器。可悲的是,這兩人一直都在互相內戰,如果他們聯合起來,我們的軟件振興指日可待。
    …於是捨人相與谏曰:“臣所以去親戚而事君者,徒慕君之高義也。今君與廉頗同列,廉君宣惡言而君畏匿之,恐懼殊甚,且庸人尚羞之,況於將相乎!臣等不肖,請辭去。”蔺相如固止之,曰:“公之視廉將軍孰與王?”曰:“不若也。”相如曰:“夫以秦王之 威,而相如廷叱之,辱其群臣,相如雖驽,獨畏廉將軍哉?顧吾念之,強秦之所以不敢加兵於趙者,徒以吾兩人在也。今兩虎共斗,其勢不俱生。吾所以為此者,以 先國家之急而後私仇也。”廉頗聞之,肉袒負荊,因賓客至蔺相如門謝罪。曰:“鄙賤之人,不知將軍寬之至此也。”卒相與歡,為刎頸之交。

摘自 黎明的豐收

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved