自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

干凈的前端架構,看完這篇讓你能夠構建更簡潔的前端架構

開發(fā) 前端
本文介紹了一個簡潔架構的例子,并概述了一些可以應用的原則。此外,還將 DDD 引入了前端架構。最后,介紹了創(chuàng)建組件和添加業(yè)務邏輯時的一些規(guī)則,希望這些代碼能夠保持可維護性。

干凈的前端架構,圍繞這個話題有很多原則:

SOLID、KISS(保持簡單明了)、DRY(不要重復自己)、DDD(領域驅動設計)等等。

為什么需要前端架構?

功能性和非功能性的要求不僅應該在后端應用,還應該在前端應用。因此,有了前端架構,我們就能滿足業(yè)務需求。此外,我們能夠更好地理解項目的復雜性,從而降低項目的風險、時間和成本。然而,作者認為,前端架構的最有價值的原因是任何項目的可維護性和可擴展性。

那么,前端架構是什么樣的呢?

根據(jù)作者的經(jīng)驗,大多數(shù)時候都使用分層架構。但是,也會有一些項目采用了六邊形架構。

下圖簡單地描繪了一個TripAgency項目。

使用了哪些層?

  • API:由 Open-API 生成器生成的DTO和服務
  • 服務:包括映射器(DTO到前端模型,反之亦然)和使用 REST 端點與 API 通信的服務
  • 存儲:包含從服務層檢索到的所有數(shù)據(jù)
  • Booking:包括模型和組件在內的領域。智能組件( Smart-Components)直接與商店互動,而啞組件(Dumb components)只是可以在多個上下文中應用的組件,因此要簡單得多。

那么,這種架構會出什么問題呢?

那么,如果沒有定義規(guī)則,開發(fā)人員就可能直接在其組件中使用 DTO,或者在沒有存儲的情況下與服務層通信?;蛘吒愀獾氖牵瑔〗M件會與服務層對話。

我們應該如何避免這些錯誤?

只需定義一些規(guī)則來防止這種情況發(fā)生即可。最常見的方法之一就是在項目中引入 Bit 或 Nx。

什么是 Bit?什么是 Nx?

Bit 和 Nx 是功能強大的開源構建系統(tǒng),可提供用于提高開發(fā)人員工作效率、優(yōu)化 CI 性能和維護代碼質量的工具和技術

因此,在使用 Bit 或 Nx 時,我們可能會應用依賴規(guī)則。因此,如果使用了錯誤的層,開發(fā)人員就會出錯。

我們可以將一些 DDD(域驅動設計)概念應用到我們的 Booking 域中。因此,我們將預訂域劃分為一些子域。每個子域都有自己的邊界上下文和泛在語言。如下圖所示。

每個子域使用分層架構,這些子域之間的交互使用 API。功能包括智能組件和服務、用戶界面(UI)、啞組件、域模型和 Util 所有實用功能,這些功能都在此邊界上下文中使用。我們已經(jīng)很接近了,但還沒到那一步。僅有架構是不夠的,底層組件和業(yè)務邏輯也必須使用清潔代碼原則。因此,讓我們放大功能層和用戶界面層。

哪些原則應適用于組件?

首先是 SOLID 原則。每個組件必須只有一個責任(單一責任原則)。使用組合而非繼承(開放-封閉原則)。不要強迫組件實現(xiàn)不合適的接口,這意味著并非所有方法都有意義(接口隔離)。

其次,在將業(yè)務邏輯應用到組件、服務或 Util 時,不要忘記 KISS 原則。代碼要盡可能簡短。為什么要這樣做呢?更簡單的代碼更容易維護。

第三,盡量不要重復(DRY 原則)。將常用邏輯移至實用工具或服務中。

注:這些原則可以通過使用 Bit 輕松實現(xiàn)。在 Bit 工作區(qū)內,我們可以獨立構建、測試、版本控制和記錄可重復使用的組件(函數(shù)、用戶界面元素或數(shù)據(jù)模型),然后將其發(fā)布到 Bit 的組件共享平臺,在該平臺上,你(或其他人)可以輕松地將其導入到多個項目中。

聽起來很有道理。然而,如何才能知道哪些是應該避免的呢?簡而言之,什么是反模式?

Anti-Patterns 反模式

有一些比較常見的錯誤?

  • 導入不必要的庫,增大捆綁包大小
  • 使用嵌套訂閱
  • 在模板中添加業(yè)務邏輯
  • 未經(jīng)測試的業(yè)務邏輯

所以,這些都是反模式。但如何確保代碼的可維護性呢?大家可能都知道,業(yè)務邏輯會隨著時間的推移而增長。簡而言之,經(jīng)常會聽到以下說法。

代碼有了歷史性的發(fā)展。起初,它是 "干凈代碼"(Clean Code),但現(xiàn)在我們的代碼已經(jīng)無法像以前那樣容易維護了。

是的,這是一個非常常見的問題。不過,以下簡單的規(guī)則可以幫助我們保持可維護性。

  • 定義eslint規(guī)則
  • 使用stylelint
  • 測試業(yè)務邏輯
  • 構建小型可重用的組件
  • 使用ES6和Typescript功能

總結

本文介紹了一個簡潔架構的例子,并概述了一些可以應用的原則。此外,還將 DDD 引入了前端架構。最后,介紹了創(chuàng)建組件和添加業(yè)務邏輯時的一些規(guī)則,希望這些代碼能夠保持可維護性。

不過,開發(fā)人員團隊在進行代碼審查和添加新功能時必須具備較高的標準,否則清潔架構可能不足以保持可維護性。

希望這能幫助大家構建更簡潔的前端架構。

責任編輯:姜華 來源: 大遷世界
相關推薦

2022-03-01 17:34:52

前端架構代碼

2020-10-08 18:20:54

前端后端架構

2023-11-20 08:12:15

2022-07-21 07:09:21

React前端項目

2020-04-28 11:00:45

Go開源庫HTTP

2022-08-19 14:06:56

前端架構技術

2015-09-02 09:02:21

阿里無線前端架構

2025-01-09 08:30:00

JavaScript操作符前端

2023-09-05 23:29:49

前端Vue

2023-08-20 12:37:44

前端開發(fā)

2017-02-28 15:08:08

架構微服務數(shù)據(jù)庫

2022-08-15 09:00:00

JavaScript前端架構

2020-09-22 12:20:23

前端架構插件

2022-08-08 13:24:28

整潔架構架構前端

2020-02-08 16:46:29

微服務架構復雜

2020-01-09 15:30:32

微服務架構互聯(lián)網(wǎng)

2023-08-17 10:12:04

前端整潔架構

2019-12-16 08:00:00

ReactAngularVue

2020-06-28 14:15:52

前端架構師互聯(lián)網(wǎng)

2017-02-05 09:13:58

PHP Cake框架構建
點贊
收藏

51CTO技術棧公眾號