模式和招式

來源:互聯網
上載者:User

    最近blog裡有很多人在談論模式(pattern)和架構(architecture),其中不乏剛入程式員行列的同學,目標都是希望提升自己的開發水平。由於擔心初學者過於看重模式,有舍本求末之嫌,特寫此文。


模式和招式

    不知有多少程式員學過武術,其中有句話:“力不敵法,法不敵功”。意思是說:使蠻力敵不過會招法的,會招法敵不過基本功 厚實的。其實編程也是如此,如果放著基本功不練,拚命研究模式,最終只是一身花架子。

見過很多國內大型軟體企業程式員的代碼,很少有上乘表現的。主要原因我覺得和國情有關:

1)業務和編碼一把抓,結果編程技術平平,卻個個精通業務;2)急功近利,為趕工期不顧品質;其結果就是忽視基本功的學習和練習。


什麼是軟體領域的基本功?

Steve McConnell在《After the Gold Rush》一書中提到:

-- 一個人要成為某一領域的專家,大致需要五萬個知識點。在那些成熟的領域,通常需要10年才能獲得足夠的知識點。

-- 其中超過一半的知識點會隨著時間的流逝而廢棄,如C++、JAVA、Perl、HTML、LINUX、Microsoft Windows。

-- 剩下的那些被稱為Stable Core的,則會使你終生受用。

-- 哪些是軟體領域的Stable Core?

 Software Requirements Engineering

 Software Design

 Software Construction

 Software Testing

 Software Evolution and Maintenance

 Software Configuration Management

 Software Quality Engineering

 Software Engineering  Management

 Software Engineering Infrastructure

 Software Enineering Process

-- 不用精通所有的上述領域,但至少所有的都要瞭解,同時要精通其中某一些。

基本功便是Stable Core中和我們工作內容相關的知識點。

 

試舉一些和編碼(Software Construction)相關的基本功:

. 標識符命名,變數類型選擇

. 好的編碼風格

. 基本的演算法,如表驅動、樹遍曆、排序等

. 基本的編程技巧,如Assert、Trace等

(這些基本功不能光知道不練)

程式員從哪裡入手?

有本老書一直覺得很受用:《Code Complete》(中文版《代碼大全》)

最近出了第二版,內容大致相同,是學習編碼(Software Constuction)基本功的寶典。

學習模式沒有什麼不好,但有個時機和火候的問題。就像練武術,先得從站樁、盤架子開始,基本功紮實後,再學招法是事半功倍。照我看,前三年不用專門學什麼模式。多寫代碼,多看代碼,不斷改進自己的代碼;到時自然水到渠成。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.