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