在
網(wǎng)站建設(shè)行業(yè)中,作為前端開發(fā)人員,我們了解數(shù)據(jù)在我們?nèi)粘9ぷ髦兴缪莸幕A(chǔ)角色。它可能來自外部 API、CMS 甚至電子表格。隨著無服務器數(shù)據(jù)庫日益流行,創(chuàng)建具有垂直和水平擴展、高可用性和防彈一致性的全棧架構(gòu)從未如此簡單。
要充分利用這種架構(gòu)的好處,了解為您做出的決定至關(guān)重要。就像“學習 JavaScript,而不是框架”的口號流行起來一樣,我們也應該了解數(shù)據(jù)庫架構(gòu)背后的概念,以便可靠地使用它們。本文不會讓您成為分布式系統(tǒng)專家或有能力擔任數(shù)據(jù)庫管理員角色,但它將闡明您在準備選擇下一個堆棧時將面臨的概念、術(shù)語和首字母縮略詞。將其視為(無服務器)數(shù)據(jù)庫的入門。
用戶界面(你和我,或 U 和我,或 UI)與數(shù)據(jù)庫的界面非常相似。電子表格為您提供了一個用于存儲數(shù)據(jù)的表格。在某些情況下,它們只允許您為每列定義特定的數(shù)據(jù)類型。熟悉的地方就在那里,但是一旦我們打開引擎蓋,電子表格就會突然結(jié)束。可用性是有問題的:電子表格不是用來提供內(nèi)容的,只是用來存儲內(nèi)容的。對于初學者來說,它們不會隨著應用程序的擴展而為應用程序提供動力,而且在確保數(shù)據(jù)完整性方面,它們可能不遵守某些最佳實踐。直到最近,它們都是開始使用某些數(shù)據(jù)層的最快方式。但是現(xiàn)在,應用程序不使用真實的(無服務器)數(shù)據(jù)庫是沒有意義的(稍后會詳細介紹)。
內(nèi)容管理系統(tǒng) (CMS)是另一種數(shù)據(jù)庫?!皟?nèi)容”是 CMS 專門研究的一種特殊類型的數(shù)據(jù)。它將為用戶(開發(fā)人員)提供足夠的抽象,以促進將此類數(shù)據(jù)管理到不關(guān)心底層數(shù)據(jù)庫的程度。它將處理數(shù)據(jù)的可交付性、可用性和完整性。但是抽象越重,權(quán)衡就越大。數(shù)據(jù)類型僅限于 CMS 將提供給您的數(shù)據(jù)類型,大多數(shù)甚至強加自己的體系結(jié)構(gòu)來處理關(guān)系、查詢、類型等。當然,CMS 仍然有重要且可行的用例,而且它們不會出現(xiàn)任何地方。因此,只要您確定這是您的用例,您就可以使用一個。
如果您選擇更簡單、“抽象”的電子表格或 CMS 路線作為您的事實來源,并且您的數(shù)據(jù)開始多樣化,那么障礙就會出現(xiàn)。電子表格的第一個問題通常與底層 API 有關(guān),它通常不適用于大多數(shù)平均大小的應用程序的流量,然后是第一個重構(gòu)對話。
使用 CMS,API 通常不是問題,但管理數(shù)據(jù)可以。隨著應用程序的增長和數(shù)據(jù)的多樣化,其中一些最終不再是內(nèi)容,并且可能與應用程序邏輯更相關(guān)。當數(shù)據(jù)不是內(nèi)容時,在 CMS 中管理數(shù)據(jù)并不理想。它不太靈活,通常不適合所有者團隊的工作流程?,F(xiàn)在,雖然其他數(shù)據(jù)庫和 CMS 完全有可能共存,但開發(fā)人員需要了解每種解決方案的優(yōu)缺點,并決定什么最適合他們的應用程序交付和用戶體驗。