最近幾個月學習內容的總結思考html
網站軟件的存在乎義是把複雜的事情簡單化,製做軟件卻很是困難。java
爲了節省人力,不少應用會使用網站框架以實現工程級別的繼承關係:把問題從製做「Java網站應用」變成製做「Java EE」或者「Spring」應用,從而複用父類(框架)的經驗和代碼。程序員
框架可能適用大部分應用,可是框架也致使程序員明明只是在自定義本身的應用獨有的行爲,卻須要先去了解關於框架的知識,並且實現功能的難度取決於框架溫馨區的範圍。例如在面向關係模型的框架中使用多種數據庫,在提供CRUD接口的框架中實現推送和跨資源視圖,在生成表單網站的框架中實現Ajax,在基於併發優化的單線程框架中實現並行計算,都是容易產出麪條代碼的需求。數據庫
究其緣由,大部分框架並無把軟件複雜性封裝在底層,只是容許程序員用戶的代碼在本身的環境運行。程序員有如在沉澱乾淨的池水裏面游泳,動做大一點就會攪起一身泥。架構
這並非框架設計者的問題。畢竟類的繼承已經足夠麻煩,連架構都要繼承的話,結果大抵如此了。併發
取代這種單一架構(Monolith)的答案有不少,目前的最新答案是微服務。框架