程序员到底要不要用框架开发?
軟件開發中用到的各種框架(比如,Struts、Hibernate、Spring、SpringMVC、SpringBoot、MyBatis等)一詞來源于建筑學。
以前在修建房屋、工廠等也沒有用框架結構,使用中就出現這些缺點:
①適應性差。
比如要把房子由三室一廳改為二室二廳,幾乎就是拆了重建。用框架就很容易改造過來。
②改造成本高。
像上面把房子由三室一廳改為二室二廳,框架只需重新把房間用磚隔開,而非框架拆了重建。
③抗拉性差。
地震中框架結構優勢明顯,因為框架可相互支撐,不易倒塌,更安全。
因此,軟件架構就顯得極為重要,軟件開發前輩借鑒了建筑學而引入軟件框架,其主要優點有:
①較強的適應性。
軟件用戶需求時常會發生變化,采用框架,更勝任適應需求的變化。
②較小的適應代價。
框架能以較小的成本代價,適應需求的變化。
③可擴展性、可維護性更好。
框架采用統一的處理方式,擴展和維護功能更容易,成本更低。
④更安全、更穩定、執行效率更高。
框架是大師級作品,經歷過無數考驗,所以更安全、更穩定、執行效率更高。
⑤盡管如此,但并不是開發所有軟件都要用框架,比如很小的系統,小工具軟件等就沒必要,框架加入就太臃腫、大才小用,大型系統使用,則順理成章,事半功倍。
以上來源:http://ask.zol.com.cn/q/2856588.html
············································································
什么是開發框架
可以參考下面這篇:
https://www.cnblogs.com/EmptyFS/p/4105713.html
版權聲明:
本文由AllEmpty原創并發布于博客園,歡迎轉載,未經本人同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責任的權利。如有問題,可以通過1654937@qq.com 聯系我,非常感謝。
············································································
最近,在持續關注一個Twitter話題,就是 Why do people decide to use frameworks? ,這個話題是由Nicole Sullivan提出的。
剛開始,我對這個問題也沒有太在意,也就是隨意的看了看,正如提問者Nicole Sullivan說的那樣,我剛開始也覺得這是一個愚蠢的問題。但是這個問題就像蒲公英的種子一樣,就這么在我的腦海里扎了根,截至到我這寫這篇文章之前,我都有一直關注這個問題,并且在思考這個問題。
雖然這個問題看似簡單,你或多或少都能回答出那么一兩點,但是我想你可能自己也對自己的回答不太滿意吧?不管你怎么想的,但我漸漸收起了我從一開始的輕視態度,開始正視這個問題。
在這里,我還要感謝Nicole Sullivan,是她的這個話題,讓我對為什么使用框架有了全方位的了解。
為什么用
可以集中精力在業務的實現,而不用把過多的精力和人力用在代碼功能邏輯的實現上。
可以避免由我們自己寫帶來的很多bug。
可以暫時快速的解決掉某一問題,以待以后的進一步解決。
可以避免寫技術文檔和介紹功能實現給團隊成員的問題。
可以極大的縮短開發的周期。
因為成熟的框架本身就是完善的解決方案。一般它們都有自己的生態系統,有眾多技術達人參與。這樣我們在使用中,不僅有完善的技術文檔可以隨時查看,遇到問題也有地方問,最重要的一點是不用自己設計、整理、驗證技術方案了,你之需要深入了解它的生態系統即可。
避免了bikeshedding現象(它的意思是說:‘總在一些沒有意義的問題上爭論,而有意忽視哪些真正需要解決的難點/痛點問題’)的出現。
為什么不用
不用的其中一個原因,就是用框架的成本太高。夸張一點說,可能就這一點就就蓋過了它所有的優點,但要用一個框架一定要考慮它的成本。
對于一個團隊來說,首先需要專門招聘一些精通這個框架的開發人員(前端/后端)和維護人員,再加之沒有一個框架是萬能的,如果下一個項目使用另一個框架是否意味著另招一批開發人員,這樣的代價不是所有的企業都能承受;
對個人來說,學習一個框架需要花費大量的時間和精力,你不僅要學習框架本身,你還要了解它的生態系統,關注它的各方面咨詢,尤其是版本更新,它往往帶有對過去框架存在問題的改進,如果升級版就可以移除自己解決原框架存在問題而寫的補丁(這些補丁有大有小,也可能引入了其他依賴),這樣就帶來另一個問題,項目的遷移問題,像angular一樣它現在的版本已經到了9.x,但現在有相當一部分還在用著1.x,angualr雖好,但是它也給開發人員帶來了巨大麻煩,學習曲線太陡是一方面,要了解的東西太多(知識面的廣度)是另一個重要方面。當然一直使用一個框架,并進行深度挖掘的技術團隊,受益良多,但這樣的團隊又有多少。
除了成本,就要考慮項目的規模和復雜度問題。
不能一個就五六個簡單頁面的項目,你就引入一個框架吧。此外使用一個框加,往往會使用它配套的部件,如:引入vue,一些用慣了vue-router,vuex,在項目中自然而然的引入這些東西,這些在簡單的仙姑中往往沒有必要。這也是開發這些框架的核心團隊為什么盡量的縮減核心框架功能的原因,而把一些次要功能或三級功能獨立出來。這些由主框架、功能庫、主題庫、工具庫、以及輔助開發的工具庫等組成的集合,就是該框架的生態系統。
開發人員要保持理智
國內的一些基層開發人員普遍存在不理智的現象,跟風現象比較嚴重。應該注意這些:
技術比較火,并不代表技術方案的完美。
好的技術框架我不一定都要會,但要有一個框架我十分精通。
別人會的,我不一定要非得精通,但我會的要保證別人一定要不如我。
學習某一個技術不是一兩天或者一兩個月的事兒,技術都是積累來的。
不要把大神神話,它們也是從 小白 成長起來的。
要保持對技術的熱度,而不是蹭技術的熱度。
結束語
其實,不管你是否使用框架,抑或你對框架持有什么樣的態度,你都要明白你選擇的出發點兒是什么或者說動機是
總結
以上是生活随笔為你收集整理的程序员到底要不要用框架开发?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用的键盘按键(一些小技巧)
- 下一篇: python每一句后面可以加也可以不加分