日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

你的項目應該如何正確分層?你會嗎?

來源: 責編: 時間:2024-03-29 09:21:43 251觀看
導讀談到應用程序的分層架構,很多人首先想到的是一個標準的模型,包括控制器(Controller)、服務層(Service)和數據訪問層(Mapper)三個主要部分。這聽起來似乎很直觀和簡單,但實際上,很多開發者在實施時并沒有明確區分這些層次的具體

談到應用程序的分層架構,很多人首先想到的是一個標準的模型,包括控制器(Controller)、服務層(Service)和數據訪問層(Mapper)三個主要部分。這聽起來似乎很直觀和簡單,但實際上,很多開發者在實施時并沒有明確區分這些層次的具體職責。例如,一些項目中,控制器層的代碼量反而超過了服務層,而服務層僅僅作為一個傳輸介質,這反映了開發過程中容易被忽視的問題。這種模糊的層級職責劃分,最終可能導致架構的混亂,使得代碼難以復用和維護zC828資訊網——每日最新資訊28at.com

如何進行分層

一個好的應用分層需要具備以下幾點:zC828資訊網——每日最新資訊28at.com

方便后續代碼進行維護擴展;zC828資訊網——每日最新資訊28at.com

分層的效果需要讓整個團隊都接受;zC828資訊網——每日最新資訊28at.com

各層的職責邊界清晰。zC828資訊網——每日最新資訊28at.com

圖片圖片zC828資訊網——每日最新資訊28at.com

阿里巴巴的編碼規范細化了應用程序架構的多個層次,旨在更清楚地界定各層的職責和作用。這些層次包括:zC828資訊網——每日最新資訊28at.com

開放接口層:這一層負責將服務層的功能通過RPC接口或HTTP接口向外暴露,同時負責網關的安全和流量控制。zC828資訊網——每日最新資訊28at.com

終端顯示層:負責在各種客戶端上渲染和顯示信息,使用不同的技術如Velocity、JavaScript、JSP進行頁面渲染和移動端展示。zC828資訊網——每日最新資訊28at.com

Web層:處理訪問控制和轉發,進行基本的參數校驗和一些不需要復用的簡單業務處理。zC828資訊網——每日最新資訊28at.com

服務層(Service層):執行更具體的業務邏輯處理。zC828資訊網——每日最新資訊28at.com

管理層(Manager層):作為一個通用業務處理層,具備三個主要功能:封裝對第三方平臺的調用、下沉Service層的通用能力(如緩存和中間件處理)、以及與數據訪問層(DAO層)的交互,實現對數據訪問對象的復合使用。zC828資訊網——每日最新資訊28at.com

數據訪問層(DAO層):直接與數據庫(如MySQL、Oracle、Hbase)進行交互的層級。zC828資訊網——每日最新資訊28at.com

優化分層

首先需要說明的是,如果 RPC 框架選用 Thrift,可能會比其他的 RPC 框架多出一層,作用和 Controller 層類似:zC828資訊網——每日最新資訊28at.com

圖片圖片zC828資訊網——每日最新資訊28at.com

阿里巴巴的架構分層規范中,最頂層由 Controller 和 TService 構成,主要職責是處理輕量級的業務邏輯、進行參數驗證和異常管理。zC828資訊網——每日最新資訊28at.com

這一層設計的目的是保持足夠的靈活性,以便在需要時可以方便地更改或替換接口類型,因此這里的業務邏輯應盡可能簡化,有時甚至可以避免實現具體邏輯。zC828資訊網——每日最新資訊28at.com

緊接著的是 Service 層,承擔著具體的業務邏輯處理。在這個層級,建議采取一種方法:讓每一個 Controller 操作都對應一個 Service 方法。zC828資訊網——每日最新資訊28at.com

這樣做的好處是避免將業務邏輯的編排混入 Controller 層,從而在將來需要接入其他接口類型,如 Thrift 時,可以避免重復編排業務邏輯,減少代碼的重復和維護成本。這種方法強調了在不同層之間保持清晰的職責分離,以提高代碼的可維護性和可擴展性。zC828資訊網——每日最新資訊28at.com

圖片圖片zC828資訊網——每日最新資訊28at.com

這樣大量的重復工作必定會導致開發效率下降,所以你要把業務編排邏輯都放進 Service 層中。zC828資訊網——每日最新資訊28at.com

圖片圖片zC828資訊網——每日最新資訊28at.com

接下來是 Manager 層,這一層充當了可復用邏輯的核心角色。在這個層面上,Manager 可以是負責單一功能的服務,如緩存(Cache)、消息隊列(MQ)等;同時,它也能夠處理更復雜的任務,比如當需要同時調用多個 Manager 服務時,可以將它們組合成一個綜合性的 Manager,以處理更為復雜的業務邏輯,如在邏輯上進行類似于數據庫連表查詢的操作。zC828資訊網——每日最新資訊28at.com

再來看 DAO 層,這是數據庫訪問層。主要負責“操作數據庫的某張表,映射到某個 Java 對象”,DAO 應該只允許自己的 Service 訪問。zC828資訊網——每日最新資訊28at.com

在阿里巴巴的編碼規范中,分層領域模型的轉換是一個關鍵的設計考慮,以確保數據在不同層之間傳遞時的清晰性和準確性。以下是一些核心領域模型及其用途的概述:zC828資訊網——每日最新資訊28at.com

DO(Data Object):數據對象,直接與數據庫表結構對應,通過 DAO(數據訪問對象)層傳輸數據源對象。這確保了數據層與數據庫的直接映射,便于操作數據庫。zC828資訊網——每日最新資訊28at.com

DTO(Data Transfer Object):數據傳輸對象,用于服務層或管理層向外部傳輸的對象。DTO 主要用于跨層通訊,封裝了需要傳輸的數據,有助于減少一個方法調用所需要傳遞的參數數量,簡化遠程接口調用。zC828資訊網——每日最新資訊28at.com

BO(Business Object):業務對象,由服務層輸出,封裝了業務邏輯的對象。BO 體現了業務模型的概念,通常用于封裝具體的業務邏輯和業務狀態,反映了業務操作的結果。zC828資訊網——每日最新資訊28at.com

AO(Application Object):應用對象,位于 Web 層與服務層之間,是一個抽象的復用對象模型,非常貼近于展示層但復用度不高。AO 主要用于處理特定于應用的邏輯和狀態,作為不同服務層之間數據傳輸的中間層。zC828資訊網——每日最新資訊28at.com

VO(View Object):視圖對象,通常由 Web 層傳輸至模板渲染引擎層的對象。VO 主要用于展示層數據的封裝,專門為用戶界面定制,包含了用戶界面展示所需的數據。zC828資訊網——每日最新資訊28at.com

Query:數據查詢對象,用于在各層之間傳遞查詢請求。它允許將查詢條件封裝為一個對象,使得方法調用更加清晰,同時避免了使用諸如 Map 這類無結構的數據類型來傳遞多個查詢條件,提高了代碼的可讀性和可維護性。zC828資訊網——每日最新資訊28at.com

圖片圖片zC828資訊網——每日最新資訊28at.com

每一個層基本都有自己對應的領域模型,而有些人過于追求每一層都用自己的領域模型,這就導致在一次請求中,出現多次對象轉換。zC828資訊網——每日最新資訊28at.com

一個折中的方案是:zC828資訊網——每日最新資訊28at.com

允許 Service/Manager 可以操作數據領域模型。zC828資訊網——每日最新資訊28at.com

Controller/TService 層的領域模型不允許傳入 DAO 層,這樣就不符合職責劃分了。zC828資訊網——每日最新資訊28at.com

同理,不允許 DAO 層的數據傳入到 Controller/TService。zC828資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-80339-0.html你的項目應該如何正確分層?你會嗎?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 前端如何請求后端數據?有哪些方法可以實現?

下一篇: 消息隊列的七種經典應用場景

標簽:
  • 熱門焦點
  • 六大權益!華為8月服務日開啟:手機免費貼膜、維修免人工費

    8月5日消息,一年一度的華為開發者大會2023(Together)日前在松山湖拉開帷幕,與此同時,華為8月服務日也式開啟,到店可享六大專屬權益。華為用戶可在華為商城Ap
  • Automa-通過連接塊來自動化你的瀏覽器

    1、前言通過瀏覽器插件可實現自動化腳本的錄制與編寫,具有代表性的工具就是:Selenium IDE、Katalon Recorder,對于簡單的業務來說可快速實現自動化的上手工作。Selenium IDEKat
  • 一年經驗在二線城市面試后端的經驗分享

    忠告這篇文章只適合2年內工作經驗、甚至沒有工作經驗的朋友閱讀。如果你是2年以上工作經驗,請果斷劃走,對你沒啥幫助~主人公這篇文章內容來自 「升職加薪」星球星友 的投稿,坐
  • 企業采用CRM系統的11個好處

    客戶關系管理(CRM)軟件可以為企業提供很多的好處,從客戶保留到提高生產力。  CRM軟件用于企業收集客戶互動,以改善客戶體驗和滿意度。  CRM軟件市場規模如今超過580
  • JavaScript學習 -AES加密算法

    引言在當今數字化時代,前端應用程序扮演著重要角色,用戶的敏感數據經常在前端進行加密和解密操作。然而,這樣的操作在網絡傳輸和存儲中可能會受到惡意攻擊的威脅。為了確保數據
  • 新電商三兄弟,“抖快紅”成團!

    來源:價值研究所作 者:Hernanderz 隨著內容電商的概念興起,抖音、快手、小紅書組成的“新電商三兄弟”成為業內一股不可忽視的勢力,給阿里、京東、拼多多帶去了巨大壓
  • 超級標準版旗艦!iQOO 11S全球首發iQOO超算獨顯芯片

    上半年已接近尾聲,截至目前各大品牌旗下的頂級旗艦都已悉數亮相,而下半年即將推出的頂級旗艦已經成為了數碼圈爆料的主流,其中就包括全新的iQOO 11S系
  • 三翼鳥智能家居亮相電博會,讓用戶體驗更真實

    2021電博會在青島國際會展中心開幕中,三翼鳥直接把“家”搬到了現場,成為了展會的一大看點。這也是三翼鳥繼9月9日發布了行業首個一站式定制智慧家平臺后的
  • 中關村論壇11月25日開幕,15位諾獎級大咖將發表演講

    11月18日,記者從2022中關村論壇新聞發布會上獲悉,中關村論壇將于11月25至30日在京舉行。本屆中關村論壇由科學技術部、國家發展改革委、工業和信息化部、國務
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
欧美激情一区二区三区在线| 欧美日本一道本在线视频| 久久精品国产欧美激情| 亚洲电影天堂av| 国产精品国色综合久久| 蜜桃av综合| 欧美一区日韩一区| 亚洲精品网址在线观看| 国产在线精品一区二区夜色| 国产精品进线69影院| 欧美激情精品久久久| 久久精品亚洲精品| 亚洲欧美日韩在线观看a三区| 亚洲精品一区二区三区在线观看 | 亚洲在线观看视频| 99在线精品视频在线观看| 亚洲第一精品久久忘忧草社区| 国产色综合网| 国产精品一区视频| 国产精品爽爽ⅴa在线观看| 国产精品乱码妇女bbbb| 国产精品免费一区二区三区在线观看 | 国产精品一区视频| 亚洲激情电影在线| 亚洲电影免费观看高清完整版| 黑丝一区二区| 好吊妞**欧美| 一区二区三区精品| 亚洲午夜国产一区99re久久| 亚洲视频在线观看视频| 亚洲在线观看视频网站| 男人的天堂亚洲| 欧美www视频在线观看| 国产精品入口麻豆原神| 国产精品二区在线| 亚洲电影欧美电影有声小说| 午夜精品影院| 亚洲欧美一区二区原创| 亚洲欧美色一区| 欧美精品久久久久久久久久| 欧美电影免费观看高清| 欧美大色视频| 国内久久婷婷综合| 影院欧美亚洲| 亚洲精品免费在线| 久久九九国产精品怡红院| 欧美午夜电影网| 国产欧美日韩在线视频| 一区二区在线视频播放| 亚洲国产日韩欧美一区二区三区| 亚洲综合激情| 欧美一区二区三区四区高清| 欧美精品在欧美一区二区少妇| 欧美日韩一区二区三区视频| 欧美日韩一区二区三区免费看| 在线看日韩欧美| 欧美在线视频导航| 麻豆91精品91久久久的内涵| 欧美激情视频在线播放| 国产精品日本| 国产亚洲欧美日韩一区二区| 极品少妇一区二区三区精品视频| 亚洲免费久久| 亚洲欧美国产高清va在线播| 久久国产福利| 欧美大秀在线观看| 欧美三区在线| 好吊色欧美一区二区三区视频| 亚洲欧美一区二区三区极速播放| 久久婷婷亚洲| 欧美日韩在线免费| 99国产一区| 欧美一级视频免费在线观看| 欧美国产日韩在线| 亚洲国产日韩精品| 亚洲私人影院在线观看| 久久国产66| 国产一区二区丝袜高跟鞋图片 | 久久成人免费视频| 国产色产综合产在线视频| 亚洲欧美一级二级三级| 国产精品一区二区你懂得| 亚洲在线网站| 免费在线视频一区| 国产精品久久久久久久久久免费| 国内精品久久久久久久影视蜜臀 | 欧美日韩成人在线观看| 韩国av一区二区三区四区| 欧美一区二区三区久久精品茉莉花| 老司机67194精品线观看| 欧美日韩精品一区二区三区四区 | 亚洲少妇最新在线视频| 欧美体内she精视频在线观看| 黑人一区二区| 夜夜嗨av一区二区三区网站四季av| 欧美一级黄色录像| 国产午夜亚洲精品羞羞网站| 欧美在线观看天堂一区二区三区| 欧美日韩高清在线一区| 9l视频自拍蝌蚪9l视频成人| 欧美日韩一区在线观看视频| 亚洲一区二区伦理| 欧美激情国产日韩| 9国产精品视频| 久久免费精品视频| 国产精品日本一区二区| 欧美亚洲在线观看| 狠狠色香婷婷久久亚洲精品 | 国产精品久久久久久久久久久久久久 | 樱桃视频在线观看一区| 猛男gaygay欧美视频| 91久久嫩草影院一区二区| 性欧美xxxx视频在线观看| 国产婷婷成人久久av免费高清| 久久国产精品99久久久久久老狼| 黄色日韩网站| 久久av一区二区| 欧美三日本三级少妇三99| 亚洲在线观看视频| 国产亚洲美州欧州综合国| 久久免费99精品久久久久久| 亚洲国产精品免费| 欧美日韩一区二区视频在线| 午夜精品久久久| 黄色精品免费| 欧美精品一区二区三区在线播放 | 亚洲国产黄色片| 欧美日韩一区二区三区在线看 | 午夜精品久久久久久久久久久| 欧美日本三级| 欧美一区激情视频在线观看| 在线观看亚洲视频啊啊啊啊| 欧美一区二区三区视频| 狠狠色噜噜狠狠色综合久| 欧美紧缚bdsm在线视频| 亚洲综合电影一区二区三区| 激情视频一区二区三区| 欧美理论在线播放| 久久www免费人成看片高清| 亚洲人成在线免费观看| 国产精品色婷婷久久58| 久久字幕精品一区| 影音先锋久久久| 欧美人与性动交α欧美精品济南到| 亚洲欧美一区二区在线观看| 在线观看欧美日本| 国产精品久久久久久久久久ktv| 另类尿喷潮videofree | 亚洲国产一区视频| 欧美成人午夜免费视在线看片| 亚洲天堂av在线免费| 怡红院精品视频| 国产精品老女人精品视频| 亚洲一区黄色| 亚洲国产精品久久91精品| 国产精品久久久久av| 男女视频一区二区| 欧美在线亚洲| 黄色综合网站| 欧美日韩在线播放| 开元免费观看欧美电视剧网站| 亚洲一级黄色片| 亚洲人成艺术| 欧美日韩亚洲视频一区| 久久免费高清| 亚洲精品久久| 欧美日本精品在线| 久久久精彩视频| 亚洲国产日韩欧美在线99| 国产日产亚洲精品| 久久夜色撩人精品| 亚洲国产高清高潮精品美女| 国产美女一区二区| 欧美三级电影一区| 欧美成人精品在线| 亚洲一级高清| 国产精品日韩精品| 欧美激情一区二区三区| 久久久99精品免费观看不卡| 一区二区三区免费看| 国产精品一区一区三区| 久久久久青草大香线综合精品| 亚洲免费影视第一页| 99国产精品久久久久久久| 亚洲国产成人av| 影音国产精品| 一区二区视频免费在线观看| 欧美国产日韩免费| 久久这里有精品视频| 久久久777| 一区二区三区欧美| 最新国产成人av网站网址麻豆| 欧美日韩国产精品| 欧美成人一区二免费视频软件| 亚洲素人一区二区| 国产综合18久久久久久| 欧美精品久久久久久久| 嫩草国产精品入口| 老鸭窝91久久精品色噜噜导演| 久久精品一级爱片| 欧美尤物一区| 久久er精品视频| 欧美亚洲综合网| 欧美一区二区三区视频在线观看 |