日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

什么是软件开发脚手架,为什么需要脚手架,常用的脚手架有哪些

發(fā)布時間:2024/1/1 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是软件开发脚手架,为什么需要脚手架,常用的脚手架有哪些 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么需要腳手架

為什么軟件開發(fā)需要腳手架呢?我們通過軟件開發(fā)的一些基本原則看一下腳手架對軟件工程的重要作用。

● 復(fù)用原則(Reuse Principle):現(xiàn)在我們推崇的是極致化的編程體驗,縮短的開發(fā)時間、大量的開發(fā)任務(wù)、支持需求的變更、高頻率的應(yīng)用服務(wù)交付,這些都給軟件開發(fā)人員帶來了前所未有的壓力。其中,軟件復(fù)用技術(shù)被公認為解決這些問題的行之有效的方法。從計算機軟件編程的發(fā)展歷史來看,從面向過程的編程語言到面向?qū)ο蟮母呒壘幊陶Z言的廣泛使用,是軟件復(fù)用技術(shù)進步的體現(xiàn)。從對象的復(fù)用到更大的組件復(fù)用,再到如今的框架的復(fù)用、服務(wù)的復(fù)用,都是在利用他人的優(yōu)秀成果來放大你的工作價值。當(dāng)一個新手使用腳手架時,對于一個具體問題,可以套用現(xiàn)成的解決方案加以擴展。使用腳手架的應(yīng)用,僅需通過簡單的注解和配置就可以具備健康狀態(tài)檢查、生產(chǎn)環(huán)境就緒、可觀測等基本服務(wù)能力。對于一個業(yè)務(wù)邏輯問題,可以復(fù)用已有的邏輯,一步步迭代,敏捷開發(fā)。

● DRY原則(Don’t Repeat Yourself):DRY原則直譯過來就是“不要重復(fù)你自己”。這一原則和復(fù)用原則類似,強調(diào)盡量在項目中減少重復(fù)的代碼行、重復(fù)的方法、重復(fù)的模塊。其實,軟件設(shè)計原則和模式最本質(zhì)的思想都是“消除重復(fù)”。

我們經(jīng)常提到的重用性和可維護性其實是基于減少重復(fù)這一簡單而重要的思想的。DRY原則意味著系統(tǒng)內(nèi)的每一個部件都應(yīng)該是唯一的,并且是具有明確含義的(不模糊的)。我們可以通過應(yīng)用職責(zé)單一、接口隔離等原則盡量拆分系統(tǒng)、模塊、類和方法,使每一個部件都是職責(zé)明確并且可重復(fù)使用的。

● 開閉原則(Open Close Principle):開閉原則中的“開”就是指對功能的擴展是開放的,“閉”是指對于原有代碼的修改是封閉的。通俗一點講,軟件系統(tǒng)通常是由各種模塊組成的,軟件系統(tǒng)在增加一項新的功能時,應(yīng)該在不修改現(xiàn)有代碼的基礎(chǔ)上操作。實現(xiàn)開閉原則的關(guān)鍵就是“抽象”,從微觀的角度講,開閉原則適用于一個業(yè)務(wù)模型的類的設(shè)計,把系統(tǒng)內(nèi)的所有可能行為抽象為一個抽象底層,在這個抽象底層中規(guī)定需要提供的方法接口,具體實現(xiàn)類通過集成、代理、委托的方式,擴展實現(xiàn)新的行為或者新的功能。從宏觀的角度講,我們說開閉原則就是將公共模塊、開發(fā)約定、最佳技術(shù)實踐經(jīng)過共享、提煉沉淀到封閉的底層技術(shù)基座;而將變化頻繁的業(yè)務(wù)模塊、獨特的功能邏輯通過繼承、組合和集成的方式實現(xiàn)對擴展的開放。

不要重新 《一線大廠Java面試題解析+后端開發(fā)學(xué)習(xí)筆記+最新架構(gòu)講解視頻+實戰(zhàn)項目源碼講義》無償開源 威信搜索公眾號【編程進階路】 造輪子

不要重新造輪子(Stop Reinventing The Wheel),這個原則可以說是軟件開發(fā)里的“金科玉律”。在實際的軟件工程場景中,腳手架的使用正是為了我們避免重新造輪子。如果你不借助已有框架或者工具,不僅不會提升開發(fā)效率,還會將自己陷入重新造輪子的風(fēng)險中。這里舉一個發(fā)生在本人參與的實際項目中的血淋淋的案例。

我們在一個服務(wù)治理項目中需要在數(shù)據(jù)持久層實現(xiàn)一個通用的數(shù)據(jù)存儲接入組件,初衷是降低應(yīng)用接入不同數(shù)據(jù)存儲引擎的復(fù)雜性,屏蔽使用者對不同持久層的感知差異,使開發(fā)者通過簡單的配置就能適配不同的數(shù)據(jù)類型。另外,因為期望完全掌握對持久層的控制,以及實現(xiàn)深度定制化的數(shù)據(jù)轉(zhuǎn)換功能,所以我們并沒有使用Spring框架,而是走上了自研持久層的道路。如下圖所示是自研持久層的UML框架圖。

我們分別對接了MySQL、MongoDB、OpenTSDB、HBase等數(shù)據(jù)源。系統(tǒng)從架構(gòu)設(shè)計到落地花費了大概兩個月的時間,還不包括后期的測試、對接、調(diào)試、修復(fù)Bug至少一個月的磨合期。然而,由于人員、經(jīng)驗、項目周期等各種因素,最終自研持久層框架的效果并沒有達到預(yù)期,后期在與業(yè)務(wù)對接的過程中還出現(xiàn)了各種技術(shù)和業(yè)務(wù)適配問題。

在經(jīng)過一番技術(shù)調(diào)研后,我們決定逐漸使用Spring Data替代原有的自研持久層框架。經(jīng)過項目的實踐后,我們發(fā)現(xiàn)在業(yè)務(wù)的需求滿足性、易用性、開發(fā)效率、業(yè)務(wù)穩(wěn)定性等各個方面,Spring Data都具備壓倒性的優(yōu)勢,它不僅可以完全滿足業(yè)務(wù)和技術(shù)上的需求,而且可以簡化我們的開發(fā)工作、顯著提升工作效率。二者的復(fù)盤對比如下表所示。

Spring Data項目通過使用對象的語義可以讓我們更方便地操作不同類型的數(shù)據(jù)。它將應(yīng)用的骨架部分通過“抽象”提取出來,形成了一套系統(tǒng)的開發(fā)范式和行為模式。Spring Boot腳手架也為自定義的復(fù)雜查詢、修改操作提供了擴展的Repository類和自動化配置,使添加定制化的擴展方法更加輕松方便。我們只需要理解Spring為我們提供的操作API接口,就可以實現(xiàn)復(fù)雜的查詢等業(yè)務(wù)邏輯。

Spring Data將我們的數(shù)據(jù)持久層框架進行了進一步的封裝,開發(fā)者通過簡單的注解,就可以實現(xiàn)將不同類型數(shù)據(jù)放到不同持久層集合的存儲映射操作。可以說,腳手架工程可以為開發(fā)人員屏蔽繁雜的數(shù)據(jù)存儲引擎底層差異和具體工作細節(jié),提升了開發(fā)效率,降低了開發(fā)難度。除非你是這個領(lǐng)域的專家,或者沒有現(xiàn)成的軟件腳手架能夠滿足你的需求,否則請停止“愚蠢地重復(fù)造輪子”的行為。

常用腳手架

=====

下面列舉一些軟件開發(fā)中經(jīng)常使用的腳手架,看一下如何通過腳手架提高我們的開發(fā)效率。

Vue框架

對于前端開發(fā)人員來說,Vue無疑是一套簡單的、易于使用的構(gòu)建用戶界面的前端腳手架。根據(jù)Vue的官網(wǎng)說法,Vue是一套構(gòu)建用戶界面的漸進式的JavaScript框架。與其他重量級框架不同的是,Vue采用自底向上的增量開發(fā)的設(shè)計,Vue的目標(biāo)是通過盡可能簡單的API實現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件。

vue-cli腳手架構(gòu)建工具,可用于快速搭建大型單頁應(yīng)用。該工具提供“開箱即用”的構(gòu)建工具配置,帶來了現(xiàn)代化的前端開發(fā)流程。

只需幾分鐘即可創(chuàng)建并啟動一個帶熱重載、保存時靜態(tài)檢查及可用于生產(chǎn)環(huán)境的構(gòu)建配置的項目:

要創(chuàng)建基于Webpack模板的項目,首先我們選定目錄,然后在命令行中把目錄轉(zhuǎn)到選定的目錄即可,可以使用下面的命令:

Maven

Maven是一個跨平臺的項目管理工具,是服務(wù)于Java平臺的項目構(gòu)建、依賴管理、項目信息管理工具。同時使用Maven可以規(guī)范項目骨架及包層次結(jié)構(gòu)、命名配置文件、生成代碼原型等。

Maven提供了archetype插件來幫助開發(fā)人員快速勾勒出項目的骨架,要使用本地Maven倉庫中的腳手架創(chuàng)建新項目,直接執(zhí)行如下Maven命令,根據(jù)提示依次輸入groupId、version、package信息即可:

Maven自動化構(gòu)建簡化了開發(fā)人員手動構(gòu)建工程的過程,規(guī)范了項目的構(gòu)建過程。Maven自動化構(gòu)建流程如下圖所示。

Netty

總結(jié)

以上是生活随笔為你收集整理的什么是软件开发脚手架,为什么需要脚手架,常用的脚手架有哪些的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。