SpringSide 提供了最佳實踐的敏捷開發框架,整合 Spring、Hibernate、Struts、ActiveMQ 等優秀組件。但在實戰中我深刻體會到:專案絕非組件堆砌,程序員必須具備抽象能力與架構視野。本文談談我眼中的程序員三重境界。
7 年前精通 C、VFP、HTML/CSS/JS,自學 Flash/PS。2004 年接手《銀符英語在線》(ASP + SQL Server 2000),一周設計 DB,一周出 Demo。全用 JScript 寫認證權限,VC++ 寫 COM 加密,到處找上傳、動態圖片方案。10 個月迭代 3 版,盡力分離代碼與頁面、減少重複、應用模式思想。但代碼仍是「意大利麵條」式,高併發下性能如蝸牛。當時我只是重複造輪子的傻瓜,只關注「能不能跑通」。
2005 年轉 Java/J2EE,開源世界賦能指數級成長。僅用 JSP/Servlet 已能解決大部分需求,但不夠。必須讓應用易維護、易擴展:理解分層架構、MVC、IoC、AOP、ORM、聲明式事務、AJAX。這不僅提速,更賦予代碼藝術美感。SpringSide 社區推崇 Acegi(現 Spring Security),它是安全權限領域的最佳實踐標杆,我們應向其看齊。
架構師職責:性能、伸縮性、擴展性、可靠性、容災、可恢復性、可管理性達到最優,並把握全生命週期。以 cnblogs 為例:2 萬+ 用戶、單機 IIS、無集群設計、垂直分割導致跨語言博客割裂、擴展受限。解決之道:
架構階段必須預判 Cluster、負載均衡、水平擴展,避免重構地獄。
SpringSide 系列暫告一段落,期待 2.0 正式版投入實戰。程序員成長之路:會用工具 → 懂原理重構 → 具架構全局觀。共勉。