Jamstack 的一个有趣的悖论:其概念简单,却可能导致复杂性。
核心思想是:将预渲染的静态文件部署到擅长处理静态文件的 Web 托管服务(CDN)上。就这么简单。如果需要更多功能,则使用客户端 JavaScript,通常会与无服务器函数配合使用,因为这是 Jamstack 后端的理想搭档。Guillermo Rauch 最近在 Smashing Conf 上提到,Jamstack 并非严格意义上的“技术栈”,因为它对具体实现方式几乎没有限制。尽管我喜欢“Jamstack”这个词,但这说法也有一定道理。
讽刺的是,虽然概念简单,但这简单性却可能导致复杂性。
Netlify 公司是 Jamstack 的主要推动者,他们深知这一点。他们知道,如果没有后端服务器和后端语言,像基本的联系表单这样的功能实现起来会很复杂。我们不得不另寻他法来处理表单,而不是直接使用现成的解决方案。因此,他们为你解决了这个问题(以及其他一些问题,例如身份验证和无服务器函数)。但是,还有许多其他公司也想成为你系统中的一个齿轮。
这只是潜在复杂性之一。你使用什么 CMS 或其他数据存储?你的构建过程是什么样的?你如何预览内容更改?你如何进行身份验证?如果你需要一些花哨的日历小部件怎么办?如果你想卖东西怎么办?对于网站可以实现的任何功能,Jamstack 都有解决方案——只是将所有这些解决方案结合起来可能会感觉支离破碎且令人困惑。
Dave 最近尝试使用 Eleventy Tailwind Netlify CMS(这是 Jamstack 风格的),他说感觉像是在放牧牛群:
我这个小程序原本只打算使用 3 种技术,结果却让我接触到了大约 20 种不同的技术,并且让我在午夜后深入挖掘第 n 层依赖项的源代码。如果有什么比喻能说明我不喜欢现代 Web 开发的方面,那就是这个。你想使用三种工具,但你却不得不学会使用二十种工具。如果模块和组件像乐高积木,那么这就是把整个积木箱都倒在地上,只为了找到你需要的一小块积木。
“我们编织的错综复杂的网络”,确实如此。
在 Richard MacManus 和 Matt Mullenweg 之间的谈话¹中,Richard 引用了 Matt 的话:
“你可以将十几个服务拼凑在一起,每个服务都有自己的帐户和账单,每月花费数百美元,才能获得与在共享主机上使用 WordPress 获得的类似结果,”他说。“而且它会更脆弱,因为链条的强度取决于最薄弱的环节。你将不同的工具集、登录、账单、托管……连接在一起;任何一部分出现故障都可能破坏整个流程。”
如果我正在考虑为某个项目使用 Jamstack,而最终总共有十二个服务,我可能会重新考虑,特别是如果我可以使用 WordPress 并将其减少到一个服务。Jamstack 还有许多其他合理的批评,尤其是在其发展早期。例如,“带有预览功能的 CMS”的故事并不是很好,而这是 WordPress 上你甚至不会考虑的功能,因为,显而易见,它具有该功能。
Jamstack 也确实做了一些我非常看重且领先于其他技术的事情。基于 Git 的部署?所有网站都应该具备这个功能。我的拉取请求预览?太棒了。亚 100 毫秒的首个请求?求之不得。不必摆弄缓存?太爽了。赶上吧,其他技术栈。
我的意思是,这里需要做出“金发姑娘”式的选择。你可以通过做你可能已经在做的事情来做到这一点:穿上你的成人裤子,考虑你的项目需要什么,然后选择最佳方案。
我有一些生产环境的 WordPress 网站。就像这个!很棒!
我也有生产环境的 Jamstack 网站。就像这个!它不是一个复杂的网络服务。它是一个静态网站生成器,内容位于 GitHub 仓库中,并使用 Netlify 部署。虽然 CSS-Tricks 可以做大约 100 件这个网站无法做到的事情,但它也有一些 CSS-Tricks 做不到的技巧,例如接受内容的拉取请求。
我觉得在我的所有案例中,我都选择了相当不错的方案。
- 虽然 Matt 明显有动机来捍卫 WordPress 的方法,但我感觉这里的观点是真诚的;部分原因是 Automattic 投资于替代技术栈方法,并且 WordPress 和 Jamstack 并不相互排斥。我喜欢对此的回应,例如 Ohad Eder-Pressman 的公开信,其中也充满了带有动机但真诚的想法。
以上是编织的网的详细内容。更多信息请关注PHP中文网其他相关文章!

@keyframesandCSSTransitionsdifferincomplexity:@keyframesallowsfordetailedanimationsequences,whileCSSTransitionshandlesimplestatechanges.UseCSSTransitionsforhovereffectslikebuttoncolorchanges,and@keyframesforintricateanimationslikerotatingspinners.

我知道,我知道:有大量的内容管理系统选项可用,而我进行了几个测试,但实际上没有一个是一个,y'知道吗?怪异的定价模型,艰难的自定义,有些甚至最终成为整个&

链接CSS文件到HTML可以通过在HTML的部分使用元素实现。1)使用标签链接本地CSS文件。2)多个CSS文件可通过添加多个标签实现。3)外部CSS文件使用绝对URL链接,如。4)确保正确使用文件路径和CSS文件加载顺序,优化性能可使用CSS预处理器合并文件。

选择Flexbox还是Grid取决于布局需求:1)Flexbox适用于一维布局,如导航栏;2)Grid适合二维布局,如杂志式布局。两者在项目中可结合使用,提升布局效果。

包含CSS文件的最佳方法是使用标签在HTML的部分引入外部CSS文件。1.使用标签引入外部CSS文件,如。2.对于小型调整,可以使用内联CSS,但应谨慎使用。3.大型项目可使用CSS预处理器如Sass或Less,通过@import导入其他CSS文件。4.为了性能,应合并CSS文件并使用CDN,同时使用工具如CSSNano进行压缩。

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

重构自己的代码看起来是什么样的?约翰·瑞亚(John Rhea)挑选了他写的一个旧的CSS动画,并介绍了优化它的思维过程。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

WebStorm Mac版
好用的JavaScript开发工具

Atom编辑器mac版下载
最流行的的开源编辑器

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中