建構知識堆疊的重要性 - 以 ASP.NET 為例


除非離開這個領域,技術學習幾乎橫跨了技術人的職場生涯,比較辛苦的是出了校園之後,大部份的人忙於家庭工作,很難再專注於學習這件事,而透過建立技術的知識堆疊架構,是面對學習困境非常有效的策略,既使身處嚴苛的環境,依然可以維持一定的學習品質。

從基礎的程式語言開始,無論新技術或是現有的技術改版,都是經過不斷的堆疊形成的,瞭解其中演進的脈絡,將新的技術項目對應至堆疊架構中的相關環節,就能快速理解並且用上新的技術。

以商業應用開發為例,無論 Java 或是 .NET,初學者完成基本的程式語法與邏輯設計入門之後,接下來就是瞭解類別物件,以及物件導向設計,而之後的其它技術,都是物件導向的進一步擴張以及應用。 很多初學者在物件導向設計就卡關了,當然遑論接下來的學習,只要努力過了這一關,有了物件導向的基礎,應付小規模開發的技術學習就不難了,從資料庫系統的存取操作,到ASP.NET應用,都可以快速的學會並進入實作階段。

當然很快的,技術生涯就會邁向下一個階段,朝向中大型的應用發展,此時僅是調用 API、引用物件方法實踐功能的開發技能,已經遠遠不足以應付所需,這個時候我們又必須回到物件導向,繼續學習未完成的部份,也就是最關鍵的五大原則:
簡單的說,物件導向是複雜程式寫作原則與方法的歸納整理,在進入到五大原則的學習之前,僅觸及了技術規格的實作,沒有五大原則的知識,很容易濫用物件導向設計,寫出難以維護、擴充的應用程式,至於更後面的架構設計都不用談了。

五大原則主要在於程式碼重用技巧,以及透過介面設計的導入,最大化應用程式的擴充特性。

有了五大原則才有接下來的分層架構設計。

APS.NET 立基於龐大的 .NET 類別庫,類別庫是一個由物件導向設計理論撐起來的巨型系統,開發人員可以透過其中物件的運用,適當的駕馭五大原則,發展大型的商業系統,不需從頭打造基礎建設,而即便已經有了良好的 ASP.NET 作為地基,系統的發展很快的就會成長到需要適度拆分的規模,分層設計就是接下來的解方了。

開發大型商業應用絕非易事,也因此 ASP.NET 從早期的 Web Forms 、MVC ,到目前的 Core ,都是為了進一步應付日益複雜科技環境的挑戰,循著知識堆疊不斷的進化,儘可能提升技術人員的開發效率,而技術人員只要系統性架構好自身的知識堆疊,將會發現技術的學習與升級是非常自然的事,對於別人而言,這或許又是新的技術,但是對你是早就瞭解的知識,而且還可以讓開發工作變得更為順利。

如果建立一個 ASP.NET Core 的 MVC 應用專案,會發現其中控制項的預設「動作方法」的程式架構,已經調整為介面型態:


如上述的截圖,其中的動作方法回傳型態均是 IActionResult。

運用介面可以讓應用程式輕鬆的去耦合,這是物件導向設計最重要的原則之一,尤其對於維持大型應用的擴充彈性特別重要。

其它的改良還包含內建的相依性注入機制等等,如果你的技術生涯已經建立了相關的知識堆疊,新功能只是讓你開發應用更為方便,成為更強大的助力而非阻力,而事實上你幾乎不需要學習就能夠馬上理解 ASP.NET Core 所作的調整,或是加入新功能的理由。

建構知識堆疊是非常強大的學習方法,但是打地基的過程必須下很大的功夫,在這個凡事要求光速的時代,不是一件容易的事,但只要有系統性的建立起屬於自己的完整知識堆疊架構,就可以在技術生涯走得非常順利,甚至不斷的超前。







沒有留言: