眾所周知,在軟體開發過程中,每名軟體工程師都要掌握大量的程式設計知識,比如如何訪問資料庫,如何控制線程的推進順序等,掌握這些知識
是順利進行開發的必要條件。然而,僅有這些就夠了嗎?僅僅掌握了這些程式設計知識就足以開發出優秀的軟體?
在我看來,開發者還需要掌握「組合」的藝術,你必須知道在某個完成特定功能的程式中,你可以組合哪些基本的構造塊,而這些基本的構造
塊又以何種方式優雅地組合在一起,構成乙個有機的整體。
基本的構造塊不僅僅指可以直接拿來復用的軟體元件(或者是soa中的service),還包括可以在不同專案間復用的典型**(比如如何將乙個
double型別的數字保留兩位小數的典型**段)、技術解決方案(比如各種設計模式)或軟體架構(比如成熟的多層分布式元件化系統框架、
基於管道的系統架構)等等。
如何開發出好的軟體,不取決於你基於什麼平台,使用什麼技術,甚至也不完全取決於你的技術能力和對技術內幕的深刻把握,而取決於你是
如何組合這些基本構造塊的。
在某項軟體技術的學習過程中,你實際上完成的是「形成軟體構造塊」的任務,而在軟體專案實際開發過程中,你實際上完成的是「使用現有
軟體構造塊」拼「七巧板」的過程。
自學的過程,就是「形成軟體構造塊」的過程。
開發的過程,就是「將軟體構造塊」組合為完成某一特定功能的程式的過程。
軟體技術教學的過程,就是將「軟體構造塊」組合為真實軟體的過程展示給學生的過程,先讓學生進行模仿,然後他就學會了創造。
重要的是學會方法,而非掌握知識。
程式設計是一種「組合的藝術」
程式設計是一種 組合的藝術 wpf例項分析 金旭亮 有這麼一句名言 政治是一種妥協的藝術。這一規律同樣適用於軟體技術。就我個人的觀點,軟體開發在一定意義上是一種 組合的藝術 優秀的軟體工程師類似於優秀的廚師,能將一些常見的原料變成一盤色香味俱全的美味佳餚。為何說程式設計是一種 組合的藝術 且讓我慢慢...
mysql 記憶體藝術 MySQL 排序的藝術
前言 業務中的各種查詢通常對應了使用者所看到的各項列表,列表一般是根據某個維度進行排序。換句話說,業務中使用 select 語句的時候除了不可避免的搭配 where 以外,還會配合 order by 進行使用。今天來好好聊聊 mysql 的 order by 排序。排序演算法 說到排序演算法,有插入...
提問的藝術
2004年10月29日 13 30 00 曾經為csdn整理的,提問的藝術,網上流傳已久,在我沒畢業就已經看過了,為csdn做了小小的修改,裡面提到的建議。當我們提出乙個技術問題時,你能得到怎樣的回答?這取決於答案的難度,同樣取決於你提問的方法。好的提問方法可以最大限度地獲得你最想要的答案,並且解決...