我们如何建立合适的开发工作流程?
我记得我搭建第一个网站的时候,开发项目中只有几个文件和几个文件夹。这些网站大多是单页网站,一切都井然有序,访问起来也很方便。后来,我开始搭建带有独立内容管理系统(CMS)的网站,这些网站包含数百个文件,从标记语言到脚本、库文件和样式表,再到各种媒体文件、后端服务等等。我们该如何组织和妥善维护这些大型项目呢?
起初,我完全不知道如何构建一个能够流畅适应变化和未来更新的架构。我对所有事物的工作原理都还不了解,所以理所当然地认为搭建一个高性能网站非常复杂。事实上,我在网上搜索得越多,就越感到沮丧。我不断听到各种新的框架、新的技术,以及其他各种网页开发者极力推荐给我的各种方法。我非但没有验证自己认为简洁、正确且有效的方案,反而被许多我既不理解也不熟悉的术语所包围。通过阅读高质量的书籍和精心挑选的文章,我意识到自己并不确定最终的选择是否正确,于是我不断告诫自己还没准备好——至少我是这么认为的。但我错了。
问题在于,Web 开发中并不存在绝对的对错之分,它并非出自任何互联网“大师”之手。每个网站的核心架构和开发结构都可能截然不同,但网站的基本构建却非常简单直接。不同的浏览器和服务器运行方式各有不同,因此,你始终需要测试产品,以应对可能影响网站在这些平台上运行的新更新。浏览器厂商、网络协议和服务器——只要你的网站能够与这三项技术良好兼容,你几乎可以随心所欲。与此同时,这并不意味着不存在任何标准和方法。多年来,Web 开发人员总结出了一些方法和技术,并逐渐成为行业标准。这是因为它们在技术上是合理的,遵循这些定义明确且可靠的方法可以帮助你构建一个易于维护和扩展的合理结构和架构。
在本章中,我们将探讨Web开发人员如何运用各种策略来持续改进Web开发工作流程,并确保网站易于更新和维护。建立正确的工作流程对于实现最佳生产力至关重要,无论是前端展示还是后端服务,一切都始于您在个人电脑上搭建的本地环境。这就是我们首先要讨论的内容。
创建强大的本地环境
在设计和开发网站时,您应该始终尝试在本地开发环境中应用与最终使用的线上服务器相同的行为。例如,这包括您选择的 Web 服务器类型(例如 Apache HTTP 版本)以及您在远程服务器和本地计算机上安装的后端语言版本。通过这种方法,您可以大大降低网站上线后出现问题的风险。此外,如果项目是长期项目,则务必注意,如果服务器上进行了任何更新,在开始任何工作之前,先在本地环境中应用相同的更新。这样,几年后您可以重新审视项目,应用某些更新或补丁,然后部署到线上服务器,而无需担心会破坏线上生产环境。
有些网站开发者建议在电脑上为每个项目安装一个虚拟机 (VM),使其运行方式与正式服务器相同。虽然这种方法功能强大且灵活,但缺点是会消耗主机(即您的电脑)的资源。我个人更倾向于在正式服务器上始终保留一个网站的测试版本。
这意味着,如果我参与的一个项目在 URL 'example.com' 上运行,我会创建一个名为 'test.example.com' 的子域名,并首先在测试环境中部署更新,以确保一切正常。测试环境可以位于任何其他目录,只要它运行在相同的服务器环境中即可。就我个人而言,这让我更有信心在正式服务器上部署任何更改或更新,因为根据我的经验,即使你认为本地环境的行为与正式环境完全相同,但实际情况也并非总是如此。
从一开始就牢记这一点,你就能运用正确的策略,因为你在本地环境中构建网站的方式,将与维护服务器上运行的生产版本网站结构的方式相同。本地环境的结构越简单,维护起来就越容易。目前,请记住,你始终会有两个相同的开发环境,一个位于本地计算机上,另一个位于 Web 服务器上。
本文节选自电子书《精通Web开发》第四章。如果您想阅读更多内容,也可以从此处的网站下载免费样章。
感谢阅读!
我非常想听听大家的意见和想法——我们也欢迎批评指正。你们在维持良好的开发工作流程方面有哪些最佳策略?
下次再见,
欧文·法尔
