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