[如何學習寫程式] #7 - 一開始就訓練自己的抽象化與分層能力

抽象化 (abstraction) 能力在物件導向領域以及 Design Pattern 中是非常重要的一項專業能力,還可以衍生出一項重要的能力,即分層 (layer) 能力,這個能力可以進一步協助抽象化能力降低元件之間的耦合性,也可以協助將應用程式切割的更細,強化程式元件的內聚性,它亦是目前軟體工程鼓吹的領域知識設計 (domain design) 的基石。

...繼續閱讀 »

[如何學習寫程式] #6 - 雖然快速應用程式開發工具或元件很多,但不代表你可以不去了解它背後的東西。

也許開發工具或元件供應商把工具和元件設計的太簡單,讓很多新手開發人員在使用這些東西時,在不知不覺中產生了一種錯覺:我只要會使用這些東西就好,不用學它背後的東西,但這是錯誤的觀念,它不但會限縮你的發展空間,也會讓你在碰到問題時不知所措。

...繼續閱讀 »

範例程式碼,是最佳的兩面刃

我想大家都不反對,在剛開始學習寫程式的時候,最依賴的兩樣的東西,就是書 (book) 和範例程式 (sample code),範例程式在學習程式的道路上一定是不可或缺的重要工具,它帶給你觀念與方法,讓你可以用相同的模式來做到相同的功能,但範例程式碼最終的目的,只是教你特定的需求要怎麼達成而已,若不將它融會貫通的話,很容易就傷到自己。

...繼續閱讀 »

邁向架構師的暖身運動(3):培養技術的決策力,而不是一昧的只會追新技術

只要程式開發久了,又有面對過不同層次的專案(例如產業不同,性質不同,應用方向不同或是不同的領域知識等),通常都會接觸或是使用很多的技術,而且技術的學習力又和自己本身的基礎能力有相當大的關係,它會左右你學習新技術的快慢,不過今天要談的倒不是學習力,而是決策力(Decision Making)。

...繼續閱讀 »

Framework 和 Architecture 有何不同?

前幾天我在幫我顧問公司的員工上課,剛好講題就是 Software Architecture,我在課堂上順便問了一個小問題:Framework 和 Architecture 有什麼不同?結果學員多數都答不出來,因為那間公司都把 Framework 叫做架構,但光是架構這個詞在很多技術用語上都會被套到,那麼,Framework 和 Architecture 到底哪裡不同?

...繼續閱讀 »

邁向架構師的暖身運動(2):抽象化的能力

一般在寫程式的時候,往往都是要先探詢寫這支程式的需求是什麼,如果有些工作是由流程 (process) 構成的,或者是這件工作可能會橫跨不同的模組(或資料庫),又或者是這個程式預期未來可能會有什麼樣的衍生功能時,就可以試著把這些程式中共同的部份加以抽出,獨立構成一個公用程式庫 (utility) 或是基礎類別 (base class),而將這些部份抽出的流程即稱為抽象化 (abstraction)。

...繼續閱讀 »

如何讀 MSDN Library?

最近好像很多人都在問這個問題,MSDN Library 資料量是數百本書的規模,而且MSDN Library有如微軟技術的經典,成經典者,均難讀通,要從MSDN Library數百萬字中找出自己想要的東西,其實是需要一點技巧的。

...繼續閱讀 »

怎麼玩 URL Rewriting

URL Rewriting,這個好像似曾相識,又覺得很陌生的技術,已經隨著資訊安全與 SEO (Search Engine Optimization) 的腳步,逐漸影響每個 Web Developer,不論你是走哪個技術的(ASP, ASP.NET, PHP, JSP, Ruby, Perl, ...),基本上都很難不去重視它,因為它其實可以幫你很多忙。光是一個 REST 的 URL 樣式,就可以讓很多人眼睛為之一亮。

...繼續閱讀 »