為什麼要學習設計模式(Design Patterns) - 軟體設計大師之路 (轉)
以下比喻摘自Douglas Schmidt, n翻譯.
知識的模式(Patterns of Learning)
在人類努力解決的許多領域的成功方案都來源於各種模式(Patterns).
事實上, 教育的一個重要目標就是把知識的模式一代一代傳下去.
下面我們首先看一下學習下棋是怎樣用到模式(patterns).
學習開發一個好的類似於學習怎樣下好棋.
成為一個象棋大師
* 首先學習規則和必要條件
例如, 棋子的名稱, 合法的棋子移動, 棋盤的幾何形狀和方向等
* 然後學習原理
例如某一種棋子的相對價值, 中心格的戰略價值, 威脅的強度等
* 然而要成為象棋大師, 你必須要學習其他大師下過的棋局
這些棋局就包含有模式(patterns),這些模式(patterns)必須被理解,記憶和重複的運用
* 有很多種這樣的模式(patterns)
成為一個設計大師
* 首先學習規則
例如演算法, 資料結構和軟體語言
* 然後學習原理
例如結構化, 模組化程式設計, 面向程式設計, 泛程式設計(general programming)等
* 但是要真正的精通軟體設計, 你必須學習其他大師級的設計
這些設計包含的模式(patterns)必須被理解,記憶和重複的運用
* 有很多種這樣的模式(patterns)
翻譯水平有限,以下附上原文:
Patterns of Learning
Succesul solutions to many areas of human endeavor are deeply ed in patternsIn fact, an important goal of education is transmitting patterns of learning
from generation to generation
Below, we'll explore how patterns are used to learn chess
Learning to develop good software is similar to learning to play good chess
Becoming a Chess Master
1) First learn rules and physical requirementse.g., names of pieces, legal movements, chess board geometry and orientation, etc. 2) Then learn principles
e.g., relative value of certain pieces, strategic value of center squares, power of a threat, etc.
3) However, to become a master of chess, one must study the games of other masters
These games contain patterns that must be understood, memorized, and applied repeatedly
4) There are hundreds of these patterns
Becoming a Software Design Master
First learn the rules
e.g., the algorithms, data structures and languages of software
Then learn the principles
e.g., structured programming, modular programming, oriented programming, generic programming, etc.
However, to truly master software design,one must study the designs of other masters
These designs contain patterns must be understood, memorized, and applied repeatedly
There are hundreds of these patterns
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987991/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼要學習設計模式(Design Patterns) - 怎樣成為軟體設計大師 (轉)設計模式
- 設計師為什麼要學程式設計,開發者為什麼要學設計?程式設計
- 設計模式(Design Patterns)筆記 (轉)設計模式筆記
- 設計模式(Design Patterns)筆記之一:Abstract Factory (轉)設計模式筆記
- 設計模式(Design Patterns)筆記之二:Adapter (轉)設計模式筆記APT
- 設計模式(Design Patterns)筆記之三:Bridge (轉)設計模式筆記
- 為什麼要學習響應式設計
- 程式設計師為什麼要持續學習(升級版)程式設計師
- 設計模式(Design Patterns)工廠方法模式(Factory Method)設計模式
- 程式設計師壓力那麼大,為什麼還要選擇做程式設計師程式設計師
- 為什麼 JavaScript 要設計原型模式JavaScript原型模式
- 為什麼一定要學習設計模式設計模式
- 為什麼要成為「無敵」程式設計師?程式設計師
- 中國程式設計師為什麼要跳槽?程式設計師
- 什麼是設計模式?(Design Pattern)設計模式
- 軟體公司為什麼用笨程式設計師程式設計師
- 軟體設計模式學習(十八)命令模式設計模式
- 《設計模式——可複用物件導向軟體的基礎》學習筆記(1.4)The catalog of design patterns...設計模式物件筆記
- 《設計模式——可複用物件導向軟體的基礎》學習筆記(1.2)Design patterns in Smalltalk MVC...設計模式物件筆記MVC
- 程式設計師:你為什麼要離職?程式設計師
- 為什麼要投資程式設計師的幸福?程式設計師
- 好程式設計師:web前端解答為什麼要學JavaScript程式設計師Web前端JavaScript
- 《設計模式——可複用物件導向軟體的基礎》學習筆記(1.3)Describing design patterns...設計模式物件筆記
- 軟體設計模式學習(十三)裝飾模式設計模式
- 軟體設計模式學習(二十)迭代器模式設計模式
- 為什麼程式設計師在學習程式設計的時候什麼都記不住?程式設計師
- Google盲人程式設計師講述軟體設計之路Go程式設計師
- [軟體人生]什麼是程式設計師程式設計師
- 成為遊戲開發程式設計師,要學些什麼遊戲開發程式設計師
- 為什麼應該投資程式設計師的學習?程式設計師
- <<軟體設計學習筆記>> (轉)筆記
- 什麼是設計模式?為什麼要使用設計模式?有什麼好處?設計模式
- 軟體設計模式學習(十七)職責鏈模式設計模式
- UI設計師需要學習什麼呢?UI
- 作為程式設計師為什麼要閱讀原始碼程式設計師原始碼
- 伯樂訪談:為什麼程式設計師需要學習設計,而設計師需要了解開發?程式設計師
- UI設計要學些什麼?UI
- 設計師學習HTML/CSS之路-07HTMLCSS