[經驗談] 無招勝有招

Design Patterns 或 MVC 都是用來解決架構與設計上的相關問題,它給你的是方向,但真正實作出來的,其實並不是一定要 "依樣畫葫蘆",只要在設計上有滿足 Design Patterns 或 MVC 的精神:職責分明,並且能解決你要解決的問題領域,就夠了。當你學習夠多的時候,自然而然就會有想法,而且自然會植基於 Patterns 之上來思考。Design Patterns 或 MVC 其實只是教你該如何去思考,是概念上的作法,但實作要靠自己實踐,打出一套能夠滿足 Design Patterns 的精神,並能完成問題解決的拳法,才是王道。

...繼續閱讀 »

[碎碎念] 對技術的原則與堅持

寫程式寫這麼多年了,雖然都是在微軟的平台上奮戰,但使用的技術也不少了,從早期的 VB4, ASP, VB6, Visual C++, .NET Framework 1.x, VB.NET, C#, ADO, ADO.NET, 一直到現在的 ORM, Entity Framework, async/await, ASP.NET MVC, Dependency Injection, AOP, Design Pattern, … 時代一直在進步,技術的演進會持續的上演,這不就是資訊業界 (尤其是軟體開發) 經常會遇到的情況嗎?所以一般來說也見怪不怪...

...繼續閱讀 »

[Windows Azure] Windows Azure 對 MSDN 訂閱戶服務的改變

如果有訂閱 MSDN (或是你是微軟 MVP 又有訂閱 MSDN Utlimate Subscription) 而且又有在使用 Windows Azure Member Offer for MSDN Subscription 的人請注意,微軟將在 2013/8/1 起變更 MSDN 訂閱戶的權益,將原本固定額度資源的方式改變為以配發免費額度的方式,亦即原本是以資源與使用額度 (Resource-based) 的優惠限制,改為給予抵用金 (Credit-based) 的方式,這樣的作法對微軟來說可以更有效的控制與分配資源,但對我們這些已經在 Windows Azure 平台上做實驗以及使用資源的人來說就未必是件好消息了。

...繼續閱讀 »

[Programming] 事件驅動的世界

這幾年來,Web 的應用開發方式的發展有了不少的改變,JavaScript 再度成為 Web Application 的用戶端開發的顯學之一,伺服端也出現了一個叫做 node.js 的伺服端開發技術,它們兩個都有一個共通的特性:事件驅動式 (event-driven),早先在 Windows API 以及 Visual Basic 上常用的程式開發方式,再次於 Web Application 上流行,這也象徵著 Web Application 己經成為一個相當成熟的應用程式平台。

...繼續閱讀 »

[ASP.NET][MVC] ASP.NET MVC (9) : 部份檢視 (Partial View)

寫過 ASP.NET Web Form 的人應該都知道使用者控制項 (user control) 這個東西吧,它允許開發人員對 Web 的畫面設計可重覆使用的網頁區域,在多數的情況下,我們都是用靜態的使用者控制項,也就是在 Web Forms 上放一個自己的 user control (*.ascx),它會幫我們將對應的 HTML 繪製出來...

...繼續閱讀 »

[證照] 證照應該是經過一連串歷練過程後,必然得到的結果

證照制度本身其實沒有問題,各大廠針對自己的產品或技術進行規劃,為了要確認某個人是否有足夠的能力能讓原廠背書,故設計了不同的門檻給有興趣的人報考應試,達到門檻後授予由原廠背書的稱號,我們稱的 CCIE, MCITP, CTT+, PMP, … 這些都是,同時原廠還會公布這些門檻的資訊 (考試重點,對應產品或技術等),讓有興趣的人參考,以準備並加強自己的能力。其實每張證照真正的重點,應該是在加強自己的能力的過程,一旦自己的實力已經得到提升的話,拿證照其實真的只是一個必然得到的結果。

...繼續閱讀 »

[如何學習寫程式] #5 - 程式是用寫的,不是用看的。

其實寫程式和小時候學寫字很像,小時候父母總是要我們多寫字,因為字如果不用寫的話是記不住的 (英文字也不例外),每個人自從開始閱讀及寫字以來,至少都累積了數百萬字的抄寫經驗了吧,所以除非沒有寫過或鮮少寫過的字不會以外,常用的 5000 多字應該都會寫。自己寫也有個好處,透過筆和紙可以輔助記憶,所以很多人都習慣在背書時用手抄的方式,多抄幾次就可以記起來了。不過,如果從一開始都沒有用筆寫過字的話,就算讀了很多書,也未必會寫字。

...繼續閱讀 »

[如何學習寫程式] #4 - 不要對任何程式語言或平台有偏見

如果你常上討論區的話,一定多多少少看到像 [Java vs. .NET] 或是 [學 C# 還是 Java] 這種討論串,這種議題多半都會落到針鋒相對,因為程式語言和平台這件事,在某種程度來說很像是信仰之爭,尤其像是這種本質就是針峰相對的不同語言,最後總是會變成謾罵或意氣之爭,但如果初學者也沾染到這股偏見的味道的話,對往後的學習成長可能會有相當負面的影響。

...繼續閱讀 »

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

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

...繼續閱讀 »

Framework 和 Architecture 有何不同?

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

...繼續閱讀 »

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

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

...繼續閱讀 »

如何讀 MSDN Library?

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

...繼續閱讀 »