时间/成本/质量三角一直是损害软件开发生命周期交付成果的一个大问题。
本文档的目的不是提供 100% 的解决方案,而是在您寻找具有无缝用户体验的内容驱动的 Web 应用程序时可使用的解决方案。
问题
当今的现代网站(或网络应用程序)要求从客户端完全控制,包括网站中的每个单独内容、元描述、部分或字体、颜色或大小设置、产品管理、客户关系管理等。
从管理面板和 Web 应用程序的角度满足所有这些要求是具有成本效益的,并且将使里程碑翻倍,因为基本上,您将构建
A. 单独的管理面板 UI
B. 使用 UI 库或框架(如 react/angular/vue)分离交互式 Web 应用程序(WordPress 模板大多不涵盖交互性)
C.后端服务与数据库交互并将这些管理面板与主 Web 应用程序连接起来
除这些要点外,还有适当的安全性、用户管理以及等待开发团队的所有其他挑战。
研究/分析
花了一些时间在网上寻找内置解决方案后,我最终收集了两种架构方法。
1. 完全由 CMS 驱动的方法
这种模式非常简单,大多数客户都熟悉。您只需选择一个内置CMS及其自己的主题(或创建或自定义主题),这样 CMS 和网站都将由 CMS 引擎本身驱动。
给出一个示例`创建 WordPress/Joomla/Magento/Shopify 网站并直接从服务器创建由引擎呈现的前端。(服务器端渲染和您熟悉的非常标准的网站)
* 优点
A. 快速建立网站
B.快速搭建主机(主题提供商一般会推荐便宜的主机)
* 缺点
答:您不是在构建交互式 Web 应用程序,因此无法在页面或自定义 UI 解决方案之间实现平滑过渡,或者无法在标准网站上构建这些内容。这会浪费您的时间和金钱。
B. 您的网站依赖于主题架构,并且您在该主题上可以做的事情有限,实际上对于某些用户来说,主题提供的功能已经足够,并且许多大型游戏规则改变者网站都是仅使用 WordPress 原生创建的,但另一方面,有很多复杂的解决方案很难通过这种模型实现。
2. 无头 CMS + 由现代 UI 库/框架创建的独立 Web 应用程序
为了解决第一种方法中指出的问题,我们将服务分为两部分。
首先是无头 CMS,我们将在其中建立关系并编写所有必要的内容,结果将生成 API(主要是 REST API),我们将从中请求该数据。
第二个将是客户端应用程序,例如使用 React js。我们可以自由地使用现代用户界面创建自定义 Web 应用程序,并动态处理无头 CMS 提供的数据。
目前您可以找到的顶级无头 CMS 引擎,来源:https ://kontent.ai/specials/best-headless-cms/
-
Kontent.ai。
-
木兰。
-
敏捷 CMS。
-
心满意足。
-
黄油 CMS。
-
内容堆栈。
-
布卢姆里奇。
-
Netlify。
* 优点
您可以自由构建您自己的自定义 Web 应用程序,并混合使用各种技术来定义您使用客户端或服务器端渲染的需求。
第三方 API。
在 UI 方面有很大自由。
* 缺点
答:说实话,我没有测试所有无头 CMS 引擎,但有几个引擎没有为您提供灵活的管理面板,例如,给定的文本编辑器不是很丰富,或者有时您被迫自己创 德国手机号码数据 建数据关系及其连接,这是后端开发人员更了解的事情,而对于客户端或内容编辑器来说,弄清楚它可能很麻烦。
B. 在第一种模式下,托管是自动化的,而且速度很快,成本也很低。在这种情况下,您将进行部署,基本上,您将部署两个单独的应用程序,您需要选择最佳的应用程序。
PS 请查看便捷解决方案部分,我将在其中推荐几个托管服务提供商。
我们选择的便捷的混合解决方案。
在花了一些时间分析了利弊之后,我们决定混合使用这两种模式,最终使用WordPress作为无头 CMS和Next JS框架来构建服务器呈现的 UI。我们在Hydralab LLC业务登陆页面中试验了这个解决方案。
1. 为什么选择 WordPress?
– WordPress 提供了目前世界上最丰富的管理面板之一,具有自定义的内置富文本编辑器、大量有用的插件来修改管理面板体验以及数据 CRUD 操作
2. 为什么选择 WordPress 作为 Headless CMS?
WP Rest API是几年前创建的,它提供了在每次对数据进行操作后生成 REST API 的功能,默认情况下它处于工作状态,不需要任何初始设置。唯一的问题是,该 API 的结构非常谨慎,有时会产生比兼容性更多的问题。
例如,您正在 WordPress 管理面板中添加一名新员工并填补职位空缺。
您最终将拥有的 API 结构是这样的。
对象有5-6级深度来获取技术名称
3. 为什么选择 Next JS
根据业务需求,您可以构建不同类型的 Web 应用程序。
如果您想要构建一个私人管理面板,而实际上并不关心搜索引擎机器人或广告的抓取。您可以使用标准的 create-react-app 样板构建标准的客户端渲染应用程序 ( CSR )
如果您正在构建一个商业登陆页面,并准备在其中 – 遵守垃圾邮件过滤器及其规则。 应用大量 SEO 和营销工具,则需要采用服务器端渲染。
Next js 框架的优点在于,它使您能够根据要构建的应用程序类型选择方法。
在我们的案例中,我们决定采用 Next JS 静态和增量站点生成方法,基于 WP Rest API 数据在服务器上构建和补充 HTML。
4. 部署、CI/CD 管道和其他 DevOps
对于 WordPress 服务,我们决定使用10web.io在那里部署管理面板。
对于下一个 js,我们使用他们自己的vercel.com在那里部署可免费使用的 UI,并且您还可以自动将 GitHub 存储库附加到项目,以便它将绑定 CI 设置。
结果
–时间
对于 WordPress,您可以快速构建管理面板,使用基于数据自动生成的 API,可以真正加快构建后端的速度。即使对于非开发人员来说,操作也很简单。基本上,两周内 90% 的 API 就准备好了。
对于 UI,我们有平均的截止日期,Next js 将为您提供一些与服务器端 意大利电话号码 渲染相关的现成设置,但基本上,您将从头开始构建生态系统。
– 成本
对于 WordPress,不需要开发人员经验。您可以拥有具有初级 PHP 开发技能的内容编辑器。因为您很少需要编写 SQL 或 PHP 代码来修改 API 响应等。
对于 UI,如果您正在寻找具有快速里程碑和质量的可交付成果,那么您将需要一位了解服务器端渲染如何工作的高级 UI 开发人员。
– 质量
对于 WordPress,根据我们所做的项目,生成的 API 的质量覆盖率约为 70%。其余 30% 是一些 REST API 修改或数据结构更改,或者您要使用的某些附加插件。
对于 UI,质量取决于开发人员要交付的代码,并且在某种程度上取决于您要选择的架构设置。