「Spring Start Here」初章用一個相當貼切的比喻來描述軟體框架(Framework),想像手上拿到一本應有盡有的IKEA DIY組裝手冊,它告訴你各種家具的組裝方法和所需零件。當你想要添購辨公椅時,就得自行翻閱找到該項目再依指示組裝完成。框架等同於那本手冊,提供各式各樣的軟體功能和機制。在實務上我們只會從中挑選專案需要的項目,照著框架的規格來設定和撰寫程式。
即便Spring不像EJB是官方發展的軟體框架,但在Java程式語言的生態系中,它是掌握半邊江山的一方之霸。不論是最常見的MVC、輕巧易用的REST,還是批次、佇列、認證與授權以及資料庫操作,軟體專案開發上的各種功能,幾乎都能在Spring框架中找到對應解法。而這本「Spring Start Here」從基礎向讀者介紹Spring最具特色的IOC(Inversion of Control)和DI(Dependency Injection),利用它們,可減少程式碼中產生物件實例(Instance)的語句。AOP(Aspect Oriented Programming)則是更積極地用來封裝反覆出現的程式功能。真的不誇張,同樣採用Java開發專案,運用Spring框架和用傳統方法撰寫,程式碼間的差異有如拉麵和鳥龍麵。
在基礎觀念後,是用具體的範例引領讀者用練習來熟悉Spring的使用方法。內容涵蓋網頁程式MVC、REST網路服務、資料庫操作Spring Data等常見的系統功能。同時介紹Spring Boot這個新式的Spring開發方法,帶有「宣告功能替代宣告函式庫」和「約定優先於設定」的新觀念,去除舊式開發Spring時的痛腳(例如:得自行引用眾多類別庫、基礎設定值太多)。採用Spring Boot實作Web應用,有另一個亮點,程式本身能用嵌入模式啟動Container直接提供服務。以獨立的處理程序(Processs)運作,減輕另外安裝與維護Apache Tomcat等Container的負擔,也更貼近Docker容器和雲端平台的運行風格。
和其它軟體框架常有的優劣如出一轍,Spring利用預定義的設定和潛藏的程式碼,加快工程師開發專案的速度。卻也塑造出無形的技術門檻,出現「想參與專案開發的Java工程師必須熟習此框架」的潛規則。隨著Spring的影響力日益擴增,這種外在的推力將越趨強烈,鞭策從業人員不得不自我提升。而在學習Spring的旅途上,「Spring Start Here」值得成為你我的首選。
沒有留言:
張貼留言