国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
歷史回顧
架構(gòu)對(duì)比
定價(jià)
性能
安全性
擴(kuò)展性
分離前端和後端
開發(fā)人員體驗(yàn)
CMS和最終用戶UX
同時(shí)使用兩者
都不使用
選擇
首頁(yè) web前端 css教學(xué) WordPress和Jamstack

WordPress和Jamstack

Apr 02, 2025 pm 06:18 PM

WordPress and Jamstack

近期,我在Netlify的虛擬Jamstack大會(huì)上主持了一場(chǎng)小組討論,與會(huì)者包括Netlify首席執(zhí)行官M(fèi)att Biilman和Automattic創(chuàng)始人Matt Mullenweg。這場(chǎng)討論被許多人視為“Jamstack與WordPress之爭(zhēng)”。

我個(gè)人對(duì)此有很多想法,並認(rèn)為自己更適合擔(dān)任評(píng)論員而非主持人。這是我目前最喜歡的技術(shù)討論之一!所以請(qǐng)?jiān)试S我寫一篇博客。

聲明: Automattic和Netlify都是本網(wǎng)站的活躍贊助商。我有一些使用兩者的生產(chǎn)網(wǎng)站,老實(shí)說(shuō),我都很喜歡它們,這也是我將嘗試闡述的一個(gè)主要觀點(diǎn)。我恰好正在WordPress網(wǎng)站上撰寫和發(fā)布這篇文章。

歷史回顧

  1. Richard MacManus發(fā)表了文章“WordPress聯(lián)合創(chuàng)始人Matt Mullenweg並非Jamstack的粉絲”,文中引用了他們之間電子郵件對(duì)話的內(nèi)容,Matt說(shuō)了一句:“對(duì)於絕大多數(shù)採(cǎi)用Jamstack的人來(lái)說(shuō),這是一種倒退?!?/li>
  2. Matt Biilmann發(fā)表了回應(yīng)文章“關(guān)於Mullenweg和Jamstack——倒退還是未來(lái)?”,其中有一整節(jié)標(biāo)題為“WordPress時(shí)代的終結(jié)”。
  3. 期間,人們紛紛發(fā)表評(píng)論。 Netlify董事會(huì)成員Ohad Eder-Pressman寫了一封公開信。 Sarah Gooding在WP Tavern(由Matt Mullenweg擁有)上總結(jié)了一些活動(dòng)。我也參與其中。
  4. Matt Mullenweg澄清了他的言論,並添加了一些新的評(píng)論。

這場(chǎng)辯論於2020年Jamstack虛擬大會(huì)上舉行。目前沒有公開的視頻記錄(抱歉)。

架構(gòu)對(duì)比

將Jamstack與WordPress進(jìn)行比較有點(diǎn)奇怪。真正可比的是它們都是構(gòu)建網(wǎng)站時(shí)可能選擇的途徑。這篇文章的大部分內(nèi)容都會(huì)牢記這一點(diǎn),並以此方式比較兩者。它們之所以不能直接比較,是因?yàn)椋?/p>

  • Jamstack是對(duì)一種架構(gòu)理念的寬泛描述,該理念鼓勵(lì)在CDN上使用靜態(tài)文件,並使用JavaScript訪問(wèn)的服務(wù)來(lái)滿足任何動(dòng)態(tài)需求。
  • WordPress是基於LAMP架構(gòu)的CMS。

這兩者並非完全相同。

如果我們暫時(shí)只關(guān)注架構(gòu),那麼比較的對(duì)象將是:

  • 靜態(tài)託管服務(wù)
  • LAMP

靜態(tài)服務(wù)的示例是使用Netlify進(jìn)行託管(這是靜態(tài)的),並使用服務(wù)來(lái)完成任何需要完成的動(dòng)態(tài)操作。也許您使用Netlify自己的表單和身份驗(yàn)證功能以及Hasura進(jìn)行數(shù)據(jù)存儲(chǔ)。

在LAMP架構(gòu)中,您使用MySQL存儲(chǔ)數(shù)據(jù),因此您無(wú)需使用外部服務(wù)。您還可以使用PHP。因此,有了這些(以及開源軟件),您就擁有了身份驗(yàn)證所需的一切。但這並不意味著您從不使用服務(wù);只是因?yàn)槟呀?jīng)擁有服務(wù)器上的更多技術(shù),所以您使用服務(wù)的頻率較低。

Matt B. 將LAMP架構(gòu)稱為“單體架構(gòu)”。 Matt M. 對(duì)此表示異議,並將其稱為“集成方法”。我不是計(jì)算機(jī)科學(xué)家,但我認(rèn)為這兩種說(shuō)法都有道理。以下是維基百科的解釋:

[…]單體應(yīng)用程序描述的是一個(gè)單層軟件應(yīng)用程序,其中用戶界面和數(shù)據(jù)訪問(wèn)代碼組合在一個(gè)程序中。

根據(jù)此定義,WordPress似乎確實(shí)是一個(gè)單體架構(gòu),但維基百科文章繼續(xù)說(shuō)道:

[…] 單體應(yīng)用程序描述的是一個(gè)設(shè)計(jì)時(shí)沒有模塊化的軟件應(yīng)用程序。

從這個(gè)角度來(lái)看,似乎WordPress不符合單體架構(gòu)的定義。 WordPress的鉤子和插件架構(gòu)是模塊化的。 ??♂?

聽聽這兩位大佬就此進(jìn)行深入探討將會(huì)很有趣,但軟件就是軟件。一個(gè)自託管的WordPress網(wǎng)站運(yùn)行在擁有完整技術(shù)堆棧的服務(wù)器上。充分利用該服務(wù)器是有意義的(即集成)。在Jamstack方法中,服務(wù)器是抽象的。您需要執(zhí)行的所有其他操作都拆分為不同的服務(wù)(即非集成)。

WordPress方法並不意味著您從不使用外部服務(wù)。在這兩種架構(gòu)中,您都可能使用Stripe之類的電子商務(wù)API。您可能使用Cloudinary之類的服務(wù)來(lái)進(jìn)行強(qiáng)大的媒體存儲(chǔ)和服務(wù)。甚至WordPress的Jetpack服務(wù)(我使用並喜歡它)也為自託管的WordPress網(wǎng)站帶來(lái)了強(qiáng)大的功能,它像第三方服務(wù)一樣運(yùn)行,通過(guò)將資產(chǎn)託管和搜索技術(shù)轉(zhuǎn)移到雲(yún)服務(wù)器上來(lái)實(shí)現(xiàn)。兩種架構(gòu)都是技術(shù)的集合。

兩種架構(gòu)都不是“紙牌屋” ,也不比另一種更脆弱。所有網(wǎng)站都可能適用“其強(qiáng)度取決於其最薄弱的環(huán)節(jié)”的比喻。如果WordPress插件發(fā)布了錯(cuò)誤的版本或在上傳時(shí)以某種方式損壞,它可能會(huì)導(dǎo)致我的網(wǎng)站出現(xiàn)問(wèn)題,直到我修復(fù)它為止。如果我的無(wú)服務(wù)器數(shù)據(jù)庫(kù)的API密鑰無(wú)效,我的Jamstack網(wǎng)站可能會(huì)出現(xiàn)問(wèn)題,直到我修復(fù)它為止。如果Stripe宕機(jī),在我恢復(fù)服務(wù)之前,我將無(wú)法在任何類型的網(wǎng)站上銷售任何產(chǎn)品。

定價(jià)

WordPress.com有一個(gè)免費(fèi)計(jì)劃,這絕對(duì)是一個(gè)可以構(gòu)建網(wǎng)站的地方。 (我有幾個(gè)。)但是,除非您使用的是每月25美元的商業(yè)計(jì)劃,否則您實(shí)際上無(wú)法訪問(wèn)開發(fā)人員級(jí)別的功能。自託管的WordPress本身是開源且免費(fèi)的,但是您找不到免費(fèi)啟動(dòng)自託管WordPress網(wǎng)站的地方。它的起步價(jià)格很低,然後會(huì)逐漸增加。您需要LAMP託管才能運(yùn)行WordPress。以下是相當(dāng)便宜的託管計(jì)劃:

  • Bluehost的“共享”計(jì)劃起價(jià)為每月3.95美元。
  • Flywheel的最低計(jì)劃為每月14美元。 (本網(wǎng)站使用的是Flywheel的高級(jí)計(jì)劃。)
  • Media Temple的WordPress專用託管起價(jià)為每月20美元。 (本網(wǎng)站很長(zhǎng)時(shí)間都使用的是Media Temple的高級(jí)計(jì)劃。)
  • Automattic的Pressable服務(wù)有一個(gè)起價(jià)為每月25美元的計(jì)劃。

一開始就需要花錢。

Jamstack更常見的是免費(fèi)起步,然後在不同的時(shí)間點(diǎn)產(chǎn)生成本。由於Jamstack比較新,感覺市場(chǎng)仍在摸索之中。

  • Vercel在您需要團(tuán)隊(duì)成員或密碼保護(hù)網(wǎng)站等功能之前是免費(fèi)的。單個(gè)密碼保護(hù)網(wǎng)站每月150美元。您可以將基本身份驗(yàn)證添加到任何帶有Apache的服務(wù)器上,無(wú)需額外費(fèi)用。
  • Netlify非常相似,在更高的計(jì)劃中解鎖功能,並提供按站點(diǎn)付費(fèi)的功能,例如分析(每月9美元)和身份驗(yàn)證(5000個(gè)活躍用戶每月99美元)。
  • AWS Amplify免費(fèi)起步,但與AWS上的所有內(nèi)容一樣,您的使用情況在很多層面上都是按量計(jì)費(fèi)的,例如構(gòu)建分鐘數(shù)、存儲(chǔ)和帶寬。他們有一個(gè)示例計(jì)算,一個(gè)網(wǎng)絡(luò)應(yīng)用程序每天有10000個(gè)活躍用戶,每月更新兩次,每月成本為65.98美元。
  • Azure Static Web Apps尚未發(fā)布定價(jià),但幾乎肯定會(huì)有免費(fèi)層或免費(fèi)使用或某種方式。

所有這些都提醒我們,Netlify並非Jamstack領(lǐng)域的唯一玩家。 Jamstack只是意味著靜態(tài)託管加上服務(wù)。

您不能做出像Jamstack更便宜這樣的籠統(tǒng)陳述。這過(guò)分依賴於網(wǎng)站的使用情況和需求。對(duì)於高使用量和大量高級(jí)服務(wù),Jamstack(就像無(wú)服務(wù)器一樣)可能會(huì)變得非常昂貴。 Jamstack表示他們的企業(yè)定價(jià)起價(jià)為每月3000美元,雖然您可以獲得身份驗(yàn)證、表單和媒體處理等功能,但您不會(huì)獲得CMS或任何數(shù)據(jù)存儲(chǔ),這可能會(huì)使您的成本大幅增加。

雖然這個(gè)WordPress網(wǎng)站不是企業(yè)級(jí)的,但我可以告訴您,它需要大約每月1000美元的服務(wù)器,這假設(shè)Cloudflare位於其前面,以幫助減少直接到主機(jī)的帶寬,以及Jetpack處理媒體託管和搜索功能。 Mailchimp發(fā)送我們的時(shí)事通訊。 Wufoo為我們的表單提供支持。我們還有付費(fèi)插件,例如Advanced Custom Fields Pro和一些WooCommerce附加組件。這還不是全部??傆?jì)可能每月幾千美元。這並非集成方法獨(dú)有,但有助於說(shuō)明WordPress網(wǎng)站的成本也可能相當(dāng)高。他們沒有公佈價(jià)格(企業(yè)常用的策略),但Automattic自己的WordPress VIP託管服務(wù)的價(jià)格肯定在四位數(shù)以上,然後您還需要添加第三方內(nèi)容。

底線:這裡沒有定價(jià)方面的重大變化。

性能

80%的網(wǎng)頁(yè)性能是前端問(wèn)題。

這是事實(shí),但也建立在服務(wù)器的基礎(chǔ)上(佔(zhàn)最初20%)。世界上最快的界面如果服務(wù)器的第一個(gè)請(qǐng)求需要幾秒鐘才能返回,就不會(huì)感覺很快。如果您想要一個(gè)快速的網(wǎng)站,您必須確保第一個(gè)請(qǐng)求非???。

你知道什麼超級(jí)快嗎?全球CDN提供靜態(tài)文件。無(wú)論後端的服務(wù)器、託管或CMS情況如何,這都是您想要實(shí)現(xiàn)的目標(biāo)。雖然這是Jamstack(靜態(tài)CDN支持的託管)的基礎(chǔ),但這並不意味著WordPress無(wú)法做到這一點(diǎn)。

您將包含靜態(tài)內(nèi)容的index.html文件放在Netlify上,它將非???。也許您的靜態(tài)網(wǎng)站生成器會(huì)生成該文件(值得指出的是,該文件很可能從WordPress獲取內(nèi)容)。這非常棒。

默認(rèn)情況下,WordPress不會(huì)生成可在全球CDN上緩存的靜態(tài)文件。 WordPress從單個(gè)來(lái)源響應(yīng)請(qǐng)求,運(yùn)行PHP,然後向數(shù)據(jù)庫(kù)請(qǐng)求內(nèi)容,然後組裝響應(yīng),最後返回頁(yè)面。這可能很快,但遠(yuǎn)不如全球CDN上的靜態(tài)文件穩(wěn)定,而且更容易被請(qǐng)求壓垮。

WordPress主機(jī)知道這一點(diǎn),他們?cè)噲D在託管級(jí)別解決這個(gè)問(wèn)題??纯碬P Engine的方法。無(wú)需您執(zhí)行任何操作,他們使用頁(yè)面緩存,以便網(wǎng)站基本上可以返回靜態(tài)資產(chǎn),而無(wú)需運(yùn)行PHP或訪問(wèn)數(shù)據(jù)庫(kù)。他們還採(cǎi)用了各種其他緩存技術(shù),包括與Cloudflare合作以實(shí)現(xiàn)最佳緩存效果。在我寫這篇文章的時(shí)候,我的shoptalkshow.com網(wǎng)站實(shí)際上宕機(jī)了。我寫信給主機(jī)Flywheel,看看發(fā)生了什麼。事實(shí)證明,當(dāng)我進(jìn)入那裡打開一個(gè)暫存站點(diǎn)時(shí),我切換了一個(gè)錯(cuò)誤的開關(guān),關(guān)閉了他們的緩存。該網(wǎng)站無(wú)法處理流量,直接崩潰了。將緩存開關(guān)重新打開立即解決了問(wèn)題。我沒有在網(wǎng)站前面使用Cloudflare,但我應(yīng)該使用。

Cloudflare是使WordPress速度更快的神奇秘訣的一部分。只需將其放在自託管WordPress網(wǎng)站的前面,就能在提高速度和可靠性方面發(fā)揮巨大作用。缺少的部分之一是HTML本身的出色緩存,他們本月才解決了這個(gè)問(wèn)題,現(xiàn)在也可以緩存了。有趣的是,緩存WordPress意味著將請(qǐng)求緩存為靜態(tài)HTML和靜態(tài)資產(chǎn),並從全球CDN提供服務(wù),這最終也就是Jamstack的本質(zhì)。

Matt M.提到WordPress.com使用在特定流量級(jí)別啟動(dòng)的全球CDN。我不確定是不是Cloudflare,但我不會(huì)懷疑。

在WordPress網(wǎng)站前面使用Cloudflare後,我看到的第一個(gè)響應(yīng)數(shù)字與沒有Cloudflare的Netlify網(wǎng)站相同(因?yàn)樗麄儾唤ㄗh在Netlify託管的網(wǎng)站前面使用Cloudflare)。這是兩位數(shù)毫秒級(jí)的數(shù)字,非常好。

從這個(gè)基礎(chǔ)出發(fā),關(guān)於性能的任何討論都將變得特定於前端。無(wú)論後端的服務(wù)器、託管或CMS情況如何,前端速度策略都是相同的。

安全性

關(guān)於WordPress網(wǎng)站被黑客攻擊的故事比Jamstack網(wǎng)站多得多。但說(shuō)WordPress安全性較低是否公平? WordPress已經(jīng)存在了大約二十年,其上構(gòu)建的網(wǎng)站數(shù)量比Jamstack多幾個(gè)數(shù)量級(jí)。撇開安全性不談,考慮到這些數(shù)字,您將從WordPress那裡聽到更多故事。

Matt M提到whitehouse.gov使用WordPress,這顯然是一個(gè)需要最高安全級(jí)別的網(wǎng)站。這並不是說(shuō)WordPress本身是不安全的軟件。關(guān)鍵在於你如何使用它。你的密碼不安全嗎?無(wú)論你使用什麼平臺(tái),這都是不安全的。服務(wù)器本身通過(guò)文件權(quán)限或訪問(wèn)級(jí)別不安全嗎?這並非完全是軟件的錯(cuò),但你可能正因?yàn)檐浖庫(kù)哆@種境地。你運(yùn)行的是最新版本的WordPress嗎?使用情況充其量是分散的,版本越舊,安全性就越低。棘手。

考慮攻擊媒介可能更有意思。也就是說(shuō),在哪些點(diǎn)可能被黑客攻擊。如果您的靜態(tài)文件位於靜態(tài)託管上,我認(rèn)為可以肯定地說(shuō)攻擊媒介相當(dāng)少。但是,仍然有一些:

  • 您的託管帳戶可能被黑客攻擊
  • 您的Git倉(cāng)庫(kù)可能被黑客攻擊
  • 您的Cloudflare帳戶可能被黑客攻擊
  • 您的域名可能被盜(確實(shí)會(huì)發(fā)生)

WordPress網(wǎng)站也是如此,只是還有其他攻擊媒介,例如:

  • 服務(wù)器端代碼:XSS、不良插件、遠(yuǎn)程執(zhí)行等。
  • 數(shù)據(jù)庫(kù)漏洞
  • 運(yùn)行舊版本的WordPress
  • 登錄系統(tǒng)就在網(wǎng)站本身,例如壞人可以攻擊/wp-login.php

我認(rèn)為可以公平地說(shuō),WordPress網(wǎng)站的攻擊媒介更多,但任何網(wǎng)站都有很多媒介。任何網(wǎng)站的託管帳戶都是一個(gè)主要的媒介。 DNS鏈中的任何內(nèi)容。任何具有登錄信息的第三方服務(wù)。任何具有API密鑰的內(nèi)容。

個(gè)人經(jīng)驗(yàn):這個(gè)網(wǎng)站使用WordPress,從未被黑客攻擊過(guò),但這並非因?yàn)闆]有嘗試。我的確感覺我需要比僅由靜態(tài)網(wǎng)站生成器構(gòu)建的網(wǎng)站更多地考慮WordPress網(wǎng)站的安全性。

擴(kuò)展性

擴(kuò)展任何方法都需要花錢。這個(gè)WordPress網(wǎng)站並沒有大規(guī)模擴(kuò)展,但確實(shí)需要比入門級(jí)服務(wù)器要求更高的擴(kuò)展。我通過(guò)Cloudflare提供所有流量,因此過(guò)去30天的峰值數(shù)據(jù)顯示我每月提供5 TB的帶寬。

在Netlify商業(yè)計(jì)劃中(每月99美元可獲得600 GB的流量,然後每額外100 GB收取20美元),計(jì)算結(jié)果為979美元。還記得我之前說(shuō)過(guò)這個(gè)網(wǎng)站需要大約每月1000美元的服務(wù)器嗎?我在運(yùn)行這些數(shù)字之前就寫了這些內(nèi)容,所以非常接近(真棒)。在這個(gè)網(wǎng)站的規(guī)模上,Jamstack與WordPress不相上下。所有主機(jī)都會(huì)對(duì)帶寬收費(fèi),並有超額收費(fèi)的上限。 Amplify對(duì)超過(guò)15 GB每月上限的帶寬每GB收取0.15美元。 Flywheel(我的WordPress主機(jī))根據(jù)每月的訪問(wèn)者上限收費(fèi),超過(guò)上限後,每1000人收取1美元。

WordPress擴(kuò)展的故事是:

  • 使用能夠處理它並擁有自己成熟緩存策略的主機(jī)。
  • CDN所有內(nèi)容(這通常意味著在前面放置Cloudflare)。
  • 最終,您將為此付費(fèi)。

Jamstack擴(kuò)展的故事是:

  • 主機(jī)和服務(wù)都是為了擴(kuò)展而構(gòu)建的。
  • 您不必過(guò)多考慮這項(xiàng)服務(wù)能否處理這個(gè)問(wèn)題,或者我是否需要遷移?之類的擴(kuò)展問(wèn)題。
  • 您需要更多地考慮每個(gè)服務(wù)的每個(gè)方面都會(huì)有需要關(guān)注的定價(jià)這一事實(shí)。
  • 最終,您將為此付費(fèi)。

我不得不遷移我的WordPress託管,找到符合網(wǎng)站當(dāng)前需求的主機(jī)。遷移WordPress網(wǎng)站並非易事,但比遷移到另一個(gè)CMS容易得多。例如,如果您在無(wú)頭CMS上構(gòu)建了一個(gè)Jamstack網(wǎng)站,而該CMS的價(jià)格變得太高,那麼遷移的成本比切換主機(jī)更大。

我喜歡Dave Rupert前幾天(在Slack對(duì)話中)關(guān)於比較兩者性能的內(nèi)容:

Jamstack:使用任何東西來(lái)構(gòu)建你的東西,有一些附加組件可以幫助你,並使用我們的東西將其部署到CDN,這樣它就不會(huì)崩潰。

WordPress:使用我們的東西來(lái)構(gòu)建你的東西,有一些附加組件可以幫助你,你必須使用某些主機(jī)才能防止它崩潰。

還有其他類型的“擴(kuò)展”。我想到的是用戶數(shù)量之類的東西。這是各種服務(wù)用於定價(jià)層級(jí)的一種可以理解的指標(biāo)。但在WordPress中這是免費(fèi)的。您可以擁有任意數(shù)量的用戶,並擁有任意數(shù)量的細(xì)緻權(quán)限。這只是CMS,因此添加其他服務(wù)仍然可能按用戶收費(fèi)。 Vercel或Netlify對(duì)團(tuán)隊(duì)帳戶按用戶收費(fèi)。 Contentful(一個(gè)流行的無(wú)頭CMS)的團(tuán)隊(duì)起價(jià)為每月489美元。如果您需要免費(fèi)帳戶無(wú)法提供的任何功能,即使是GitHub的團(tuán)隊(duì)層級(jí)也需要每用戶4美元。

分離前端和後端

這是讓人們對(duì)使用Jamstack構(gòu)建網(wǎng)站感到興奮的一大因素。如果我的網(wǎng)站的所有功能和內(nèi)容都在API的後面,那麼前端就可以隨意構(gòu)建。

  • 想構(gòu)建一個(gè)全靜態(tài)網(wǎng)站?好的,在構(gòu)建過(guò)程中訪問(wèn)該API並執(zhí)行此操作。
  • 想使用React或Vue或其他任何東西構(gòu)建一個(gè)客戶端渲染的網(wǎng)站?很好,客戶端訪問(wèn)API。
  • 想拆分中間,預(yù)渲染一些,客戶端渲染一些,服務(wù)器端渲染一些?酷,這是一個(gè)API,您可以隨意訪問(wèn)它。

這種靈活性在全新構(gòu)建中很不錯(cuò),但人們也同樣對(duì)理論上的未來(lái)靈活性感到興奮。如果所有功能和內(nèi)容都是API驅(qū)動(dòng)的,那麼您就可以完全分離前端和後端,這意味著您將來(lái)可以更靈活地更改任何一方。

  • 只要您的API繼續(xù)輸出前端期望的內(nèi)容,您就可以重新架構(gòu)後端而不會(huì)影響前端。
  • 只要您獲得所需的數(shù)據(jù),您就可以重新架構(gòu)前端而不會(huì)影響後端。

對(duì)於特定規(guī)模和規(guī)模的網(wǎng)站,這種分離感覺“未來(lái)安全”。我無(wú)法準(zhǔn)確指出這些規(guī)模數(shù)字是多少,但它們確實(shí)存在。

如果您曾經(jīng)做過(guò)任何主要的網(wǎng)站重新架構(gòu)只是為了適應(yīng)一方或另一方,那麼遷移到一個(gè)分離後端和前端的系統(tǒng)肯定感覺是一個(gè)明智的舉動(dòng)。

您可以分離WordPress網(wǎng)站(我們將在“同時(shí)使用兩者”部分討論),但默認(rèn)情況下,WordPress是一種非常集成的方案,其中前端是使用非常WordPress特定的API從PHP中的主題構(gòu)建的。根本沒有分離。

開發(fā)人員體驗(yàn)

Jamstack在很大程度上優(yōu)先考慮了開發(fā)人員體驗(yàn)(DX)。我聽說(shuō)有人稱之為“局部最優(yōu)”,這意味著Jamstack的設(shè)計(jì)圍繞本地開發(fā)(和本地開發(fā)人員)體驗(yàn)進(jìn)行。

  • 您應(yīng)該在本地工作。您在自己的舒適(本地、快速、自定義)開發(fā)環(huán)境中工作。
  • Git是第一公民。您推送到您的生產(chǎn)分支(例如master或main),然後您的構(gòu)建過(guò)程運(yùn)行,您的網(wǎng)站就會(huì)部署。您甚至可以為每個(gè)拉取請(qǐng)求獲得生產(chǎn)網(wǎng)站的預(yù)覽URL,這是一個(gè)令人印象深刻的強(qiáng)大功能。
  • 使用您喜歡的任何工具。您想在Hugo中預(yù)構(gòu)建一個(gè)網(wǎng)站??jī)嵐苋プ觥D趯W(xué)校學(xué)習(xí)了create-react-app??jī)嵐苁褂?。想嘗試一下最新的框架??jī)嵐車L試。您可以自由地按照自己的方式構(gòu)建,利用您可以構(gòu)建和部署存儲(chǔ)庫(kù)中任何您想要的文件夾這一事實(shí)。
  • 不必做的事情也很重要。您不必處理HTTPS,您不必處理緩存,您不必?fù)?dān)心文件權(quán)限,您不必配置CDN。即使是高級(jí)開發(fā)人員也欣賞不必做更多事情。

這並不是說(shuō)WordPress沒有考慮開發(fā)人員體驗(yàn)(例如,他們有一個(gè)CLI,它可以執(zhí)行有用的操作,例如搭建塊),但我認(rèn)為DX對(duì)我來(lái)說(shuō)並不像項(xiàng)目核心那樣重要。

  • 在本地運(yùn)行WordPress很棘手,需要您以某種方式運(yùn)行(X)AMP堆棧,這涉及到臭名昭著的難以捉摸的第三方軟件。感謝Local by Flywheel。有一些指導(dǎo),但感覺不像是一個(gè)優(yōu)先事項(xiàng)。
  • 應(yīng)該將什麼放入Git?直到今天,我仍然不太清楚,但我基本上已經(jīng)決定使用整個(gè)/wp-content文件夾。對(duì)我來(lái)說(shuō),感覺奇怪的是沒有指導(dǎo)或明顯的最佳實(shí)踐。
  • 您完全需要自己負(fù)責(zé)部署。即使是WordPress專用主機(jī)也沒有真正做到這一點(diǎn)。這在很大程度上只是:這是您的SFTP憑據(jù)
  • 即使您設(shè)置了良好的本地開發(fā)和部署管道(我對(duì)我的管道很滿意),但這並不能真正幫助處理數(shù)據(jù)庫(kù)的移動(dòng),因此您也需要自己負(fù)責(zé)。

這些都是可以解決的問(wèn)題,WordPress社區(qū)非常龐大,您可以在其中找到大量相關(guān)信息,但我認(rèn)為可以公平地說(shuō),WordPress並沒有將DX作為核心。即使過(guò)了這麼多年,它仍然有點(diǎn)像狂野西部。

事實(shí)上,我發(fā)現(xiàn),由於對(duì)健康的本地開發(fā)環(huán)境的鼓勵(lì)被邊緣化,許多人根本就沒有本地開發(fā)環(huán)境。這是軼事,但現(xiàn)在我已經(jīng)兩次發(fā)現(xiàn)自己參與了其他人的網(wǎng)站,這些網(wǎng)站完全是僅生產(chǎn)環(huán)境的。如果它們是非常簡(jiǎn)單的網(wǎng)站,並且在很大程度上具有默認(rèn)行為,那就另當(dāng)別論了,但這些網(wǎng)站並非如此。它們非常複雜(比這個(gè)網(wǎng)站複雜得多),涉及公共用戶登錄、付費(fèi)會(huì)員和權(quán)限、頁(yè)面構(gòu)建器、自定義簡(jiǎn)碼、自定義CSS以及大量活動(dòng)部件。這讓我非常害怕。我不想碰任何東西。他們正在現(xiàn)場(chǎng)編輯PHP以使事情正常工作——正如人們開玩笑地稱之為的那樣,牛仔式編碼。一個(gè)語(yǔ)法錯(cuò)誤,網(wǎng)站就會(huì)崩潰,甚至可能是您正在查看的頁(yè)面。

WordPress在沒有特別好的DX的情況下為如此龐大的網(wǎng)絡(luò)提供動(dòng)力,這非常有趣。如果沒有DX,就沒有Jamstack。這完全是面向開發(fā)人員的。對(duì)於WordPress,大多數(shù)網(wǎng)站可能根本沒有開發(fā)人員。它被安裝(或者在WordPress.com的情況下被激活),然後網(wǎng)站所有者從那裡開始。網(wǎng)站所有者就像開發(fā)人員一樣,他們擁有很大的權(quán)力,但可能根本沒有編寫任何代碼。

為此,我想說(shuō)WordPress比DX更關(guān)注UX,這是這一切中非常重要的一部分……

CMS和最終用戶UX

WordPress是一個(gè)非常好的CMS。即使不喜歡它,也有很多人喜歡它,而且數(shù)據(jù)可以說(shuō)明一切。當(dāng)您決定使用WordPress構(gòu)建網(wǎng)站時(shí),您會(huì)獲得大量構(gòu)建幾乎任何您想要類型的網(wǎng)站的能力。使用WordPress不太可能出現(xiàn)哎呀,我把自己逼到死胡同了的情況。

這是一件大事。 Jenn指出了這一點(diǎn),她指出使用WordPress的人比開發(fā)人員的需求更重要。

WordPress可以做非常多的事情:

  • 博客(或任何類型的以內(nèi)容為中心的CMS風(fēng)格的網(wǎng)站)……
    • 帶有內(nèi)容預(yù)覽,這在Jamstack中是可能但棘手的
  • 處理用戶/權(quán)限……
    • 在管理員/CMS級(jí)別,以及
    • 在面向用戶級(jí)別(例如論壇、訂閱、社交等)
  • 電子商務(wù)
  • 處理表單
  • 處理插件到極致

Jamstack絕對(duì)也可以做所有這些事情,但現(xiàn)在是Jamstack處?kù)犊褚拔鞑繒r(shí)代。當(dāng)您查看有關(guān)如何存儲(chǔ)數(shù)據(jù)的教程時(shí),它們通常會(huì)涉及解釋如何為雲(yún)數(shù)據(jù)庫(kù)編寫單個(gè)CRUD函數(shù)。這是底層的東西,它可能非常強(qiáng)大,但它與點(diǎn)擊幾個(gè)按鈕大相徑庭,而這正是WordPress在很多時(shí)候的感覺。

我敢打賭,我可能可以使用Stripe API拼湊出一個(gè)基本的Jamstack電子商務(wù)設(shè)置,這非常酷。但是,當(dāng)我需要開始考慮庫(kù)存管理、運(yùn)輸區(qū)域、產(chǎn)品變體以及誰(shuí)知道電子商務(wù)領(lǐng)域中還有哪些複雜的事情時(shí),我會(huì)感到緊張,這讓我希望我有一些非常強(qiáng)大的東西可以幫我完成所有這些工作。

有時(shí),我們開發(fā)人員只是為自己構(gòu)建網(wǎng)站(我做了很多這樣的事情),但我認(rèn)為開發(fā)人員主要是在為其他人構(gòu)建網(wǎng)站。因此,最重要的問(wèn)題是:我正在構(gòu)建的東西是否能增強(qiáng)我為之構(gòu)建的人們的能力?

無(wú)論如何,您都可以實(shí)現(xiàn)良好的網(wǎng)站管理體驗(yàn),但WordPress無(wú)疑已經(jīng)證明它在該領(lǐng)域提供了服務(wù),而無(wú)需在自定義開發(fā)方面付出太多努力。

不過(guò),Jamstack有一些技巧是我希望在WordPress上實(shí)現(xiàn)的。對(duì)我來(lái)說(shuō),一個(gè)重要的技巧是:用戶提交的內(nèi)容和更新。我現(xiàn)在實(shí)際上有三個(gè)網(wǎng)站受益於此。一個(gè)關(guān)於會(huì)議的網(wǎng)站,一個(gè)關(guān)於無(wú)服務(wù)器的網(wǎng)站,以及一個(gè)即將推出的關(guān)於編碼字體的網(wǎng)站。 WordPress絕對(duì)可以在所有這三個(gè)網(wǎng)站上做得很好。但是,我真正想要的是讓人們能夠以我可以這樣說(shuō)的方式更新和提交內(nèi)容:是的,看起來(lái)不錯(cuò),合併。通過(guò)採(cǎi)用Jamstack方法,內(nèi)容位於公共GitHub存儲(chǔ)庫(kù)中,任何人都可以參與。

我認(rèn)為這非常棒。它甚至不一定要求公眾中的某個(gè)人了解或理解Git或GitHub,因?yàn)镹etlify CMS具有開放創(chuàng)作的概念,它將整個(gè)貢獻(xiàn)體驗(yàn)保留在瀏覽器中,並提供用於編輯的UI。

同時(shí)使用兩者

這是一個(gè)我經(jīng)??吹奖惶峒暗闹匾獑?wèn)題。即使是Netlify本身也說(shuō)“沒有對(duì)立”。

問(wèn)題是這樣的:

  • “Jam”中的“A”代表API。在構(gòu)建時(shí)或客戶端使用API來(lái)構(gòu)建您的網(wǎng)站。
  • WordPress網(wǎng)站默認(rèn)情況下具有REST API(並且也可以具有GraphQL API)。
  • 因此,在您的Jamstack網(wǎng)站上使用該API獲取CMS數(shù)據(jù)。

是的,完全可以。這有效,人們也在這樣做。我認(rèn)為這很酷。

但是……

  • 在您的Jamstack網(wǎng)站之外運(yùn)行WordPress網(wǎng)站意味著……您正在運(yùn)行WordPress網(wǎng)站以及您的Jamstack網(wǎng)站。這會(huì)產(chǎn)生成本和技術(shù)債務(wù)。
  • 您通常無(wú)法獲得WordPress的所有價(jià)值。使用API獲取數(shù)據(jù)可能是您需要做的全部工作,但這與構(gòu)建WordPress主題相比,是一種非常非常不同的網(wǎng)站構(gòu)建方法。您沒有獲得WordPress的其他任何價(jià)值。我想到的是這樣的情況:您找到一個(gè)很酷的插件,它為您的網(wǎng)站添加了一個(gè)花哨的Gutenberg塊。這在WordPress網(wǎng)站上“只需運(yùn)行”即可,但它可能有一些特殊的前端行為,如果您只是從API中提取HTML,則這些行為將不起作用。它可能會(huì)包含一些額外的腳本和樣式,您需要自己弄清楚如何將這些腳本和樣式合併到您的前端託管位置,以及自己維護(hù)更新。

以下是所有都具有獨(dú)特“同時(shí)使用兩者”方法的參與者:

  • Frontity:WordPress的React框架。您可以在其後面運(yùn)行它,並使用Node服務(wù)器,以及您的WordPress網(wǎng)站。 Node服務(wù)器將React渲染成HTML,因此您可以為所有頁(yè)面進(jìn)行服務(wù)器端渲染,但您仍然在構(gòu)建SPA。
  • WP2Static:一個(gè)WordPress插件,可以構(gòu)建網(wǎng)站的靜態(tài)版本,並在進(jìn)行更改時(shí)自動(dòng)部署它。
  • Strattic:他們?yōu)槟毠軇?dòng)態(tài)WordPress網(wǎng)站(他們稱之為“暫存”),您可以在那裡正常使用WordPress。然後您可以選擇部署,他們還會(huì)為您託管網(wǎng)站的靜態(tài)版本。
  • Shifter:Shifter為您託管WordPress網(wǎng)站。您有兩個(gè)選擇:1)無(wú)頭運(yùn)行(因此您只是為了獲取數(shù)據(jù)而訪問(wèn)API,REST或GraphQL)或2)靜態(tài)運(yùn)行(因此,當(dāng)您在WordPress中擁有所有想要的內(nèi)容時(shí),您可以部署它,這將創(chuàng)建網(wǎng)站的靜態(tài)版本,他們也會(huì)託管,或者您可以將其推送到其他地方,例如Netlify)。

還有很多其他方法可以集成兩者。以下是我們的Geoff和Sarah談?wù)撊绾瓮ㄟ^(guò)使用帶有REST API的Vue/Nuxt並在Netlify上託管來(lái)同時(shí)使用WordPress和Jamstack。

都不使用

以防萬(wàn)一這一點(diǎn)不清楚,絕對(duì)有很多方法可以構(gòu)建網(wǎng)站。如果您正在構(gòu)建一個(gè)Ruby on Rails網(wǎng)站,那不是JamstackWordPress。您可以認(rèn)為它更像WordPress網(wǎng)站,因?yàn)樗枰?wù)器,並且您將使用該服務(wù)器盡可能多地做事情。您也可以認(rèn)為它更像Jamstack,因?yàn)榧词顾皇庆o態(tài)託管,它也鼓勵(lì)使用API和組合服務(wù)。

網(wǎng)絡(luò)很大,伙計(jì)們,這不是零和博弈。我完全期望WordPress繼續(xù)發(fā)展,並且Jamstack繼續(xù)發(fā)展,因?yàn)?em>網(wǎng)絡(luò)本身正在發(fā)展。即使我們只考慮市場(chǎng)份額的百分比,我也仍然認(rèn)為兩者都會(huì)增長(zhǎng),將其他任何內(nèi)容推入更小的部分。

選擇

我甚至不會(huì)在這裡討論。這並不是因?yàn)槲冶苊馄唬且驗(yàn)樗鼪]有必要。我沒有看到那裡的開發(fā)人員咬著指甲試圖決定使用WordPress還是Jamstack方法來(lái)構(gòu)建網(wǎng)站。我們已經(jīng)到了技術(shù)足夠被理解的地步,流程如下:

  1. 穿上合適的衣服
  2. 評(píng)估需求和結(jié)果
  3. 選擇技術(shù)

以上是WordPress和Jamstack的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

如何僅在某些頁(yè)面上包括CSS? 如何僅在某些頁(yè)面上包括CSS? Jun 11, 2025 am 12:01 AM

選擇性包含CSS在特定頁(yè)面上的方法有三種:1.內(nèi)聯(lián)CSS,適用於不常訪問(wèn)或需要獨(dú)特樣式的頁(yè)面;2.使用JavaScript條件加載外部CSS文件,適合需要靈活性的情況;3.服務(wù)器端包含,適用於使用服務(wù)器端語(yǔ)言的場(chǎng)景。這種方法可以優(yōu)化網(wǎng)站性能和可維護(hù)性,但需平衡模塊化與性能。

Flexbox與網(wǎng)格:了解CSS佈局的關(guān)鍵差異 Flexbox與網(wǎng)格:了解CSS佈局的關(guān)鍵差異 Jun 10, 2025 am 12:03 AM

flexboxisidealforone-dimensionAllayouts,while gridsuitStwo,complex layouts.useflexboxforaligningItemsinasingLeaxisAndGridForRidForPreciseconcontroloverroverroverroverroverroverroverrowsandsininintricatientricatedesigns。

使用HTML彈出案創(chuàng)建自動(dòng)關(guān)閉通知 使用HTML彈出案創(chuàng)建自動(dòng)關(guān)閉通知 Jun 10, 2025 am 09:45 AM

HTML彈出屬性將元素轉(zhuǎn)換為頂層元素,可以使用按鈕或JavaScript打開和關(guān)閉??梢詫棾霭格g回多種方式,但是沒有選擇自動(dòng)關(guān)閉它們。 preethi有一種技術(shù),你可以

什麼是'渲染障礙CSS”? 什麼是'渲染障礙CSS”? Jun 24, 2025 am 12:42 AM

CSS會(huì)阻塞頁(yè)面渲染是因?yàn)闉g覽器默認(rèn)將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量?jī)?nèi)聯(lián)CSS以及未優(yōu)化的媒體查詢樣式。 1.提取關(guān)鍵CSS並內(nèi)嵌至HTML;2.延遲加載非關(guān)鍵CSS通過(guò)JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合併CSS減少請(qǐng)求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過(guò)度拆分與復(fù)雜腳本控制。

如何在無(wú)花果中使用Lotties 如何在無(wú)花果中使用Lotties Jun 14, 2025 am 10:17 AM

在接下來(lái)的教程中,我將向您展示如何在無(wú)花果中創(chuàng)建Lottie動(dòng)畫。我們將使用兩種彩色設(shè)計(jì)來(lái)超越如何在無(wú)花果上進(jìn)行動(dòng)畫,然後向您展示如何從Figma到Lottie動(dòng)畫。您只需要免費(fèi)無(wú)花果

打破邊界:用(s)CSS構(gòu)建湯姆拼圖 打破邊界:用(s)CSS構(gòu)建湯姆拼圖 Jun 13, 2025 am 11:33 AM

我們對(duì)其進(jìn)行了測(cè)試,事實(shí)證明,至少在低級(jí)邏輯和拼圖行為時(shí),Sass可以替換JavaScript。除了地圖,混音,功能和大量數(shù)學(xué)外,我們都設(shè)法使我們的Tangram難題栩栩如生,沒有J

外部與內(nèi)部CSS:最好的方法是什麼? 外部與內(nèi)部CSS:最好的方法是什麼? Jun 20, 2025 am 12:45 AM

thebestapphachforcssdepprodsontheproject'sspefificneeds.forlargerprojects,externalcsSissBetterDuoSmaintoMaintainability andReusability; forsMallerProjectsorsingle-pageApplications,InternaltCsmightBemoresobleable.InternalCsmightBemorese.it.it'sclucialtobalancepopryseceneceenceprodrenceprodrenceNeed

我的CSS必須在較低的情況下嗎? 我的CSS必須在較低的情況下嗎? Jun 19, 2025 am 12:29 AM

否,CSSDOESNOTHAVETOBEINLOWERCASE.CHOMENDENS,使用flowercaseisrecommondendendending:1)一致性和可讀性,2)避免使用促進(jìn)性技術(shù),3)潛在的Performent FormanceBenefits,以及4)RightCollaboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraborationWithInteams。

See all articles