剖析我们的开发过程
Posted: Tue Dec 10, 2024 10:10 am
您是否知道编写一个网站或应用程序(技术方面)所需的只是一个简单的文本编辑器和对服务器的访问,以逐个替换包含修改或添加的文件?在 Spektrum,开发过程要复杂得多。总而言之,有几个相互关联的步骤可以在不到 5 分钟的时间内将源代码从我们的桌面传输到数千人的浏览器中。作为一名开发人员,我决定让我们有抱负的极客休息一下,为您提供我们方法论的概述。
让我们以一家在线商店为例,该商店想要添加一项功能来收集访问者 拉脱维亚电话号码数据 的电子邮件,以便向他们发送促销电子邮件。您将发现 Spektrum 开发人员的一天会是什么样子。你会看到,这很令人兴奋。
1. 发展
魔法从我们的工作站开始。我面前有一家著名的在线商店,环境与互联网隔离。例如,我可以决定执行交易而不将其最终留在仓库中,或者添加产品而不将其显示在在线版本上。这称为本地环境,或开发环境。
为了收集访问者的电子邮件,我将编写必要的代码来将此信息存储在我们数据库中的特定位置。然后,您必须准备由文本框和按钮组成的视觉效果,它将集成到主页上的新部分中。
2. 单元测试
我们的功能现已就位。然而,为了确认它是否完整,需要编写单元测试。粗略地说,单元测试是一种确保我们的功能按照设计正常工作的技术。它们使得为客户提供更高水平的质量成为可能。这些单元测试可以在开发过程中随时运行以检测设计错误。由于这些测试是自动化的,因此它们确保有效的方法始终有效,因为所有测试都在每次代码更改期间运行。
在这种特定情况下,我将编写一个单元测试,以确认我的电子邮件已保存在数据库中,并编写另一个单元测试,以确保文本框支持所有可能的电子邮件格式。如果这两个单元测试不存在,我就必须通过单击应用程序页面自己进行验证。想象一下,如果 Google 员工每次部署应用程序时都必须点击各处并尝试搜索引擎的每个功能!这不仅会造成时间和金钱的巨大浪费,而且无法管理。
3. 版本控制
现在我已经验证了我的系统工作正常,我将把这些信息保存到我们的源代码目录中。版本控制系统提供了一系列用于存储和版本控制项目文件及其内容的工具。因此,系统保留所有后续版本。特别是,它允许您以独特的方式记录作者和修改日期,同时使当前版本可供整个团队使用。
从更一般的角度来看,就好像每次我们保存文本文件时,我们都会在其上添加日期并将其存储在 USB 密钥上。因此,每个版本都可以随时访问,任何有权访问它的人都可以访问。
4.持续集成
当注册软件的新版本时,持续集成过程会自动开始。最后一步允许我们在验证所有单元测试有效后将应用程序的所有部分构建在单个文件中。在成功的案例中,持续集成负责将应用程序部署到托管解决方案。如果一个或多个单元测试导致失败,团队中的开发人员会立即收到通知并取消部署。我们必须明白,这种做法是在我们的工作站之外的另一台机器上(在这个著名的云中)进行的。这确保了应用程序可以在我们的工作站以外的其他地方运行。
我喜欢将持续集成比作餐厅服务员。该人员负责组装订单、验证其一致性和准确性,然后将其运送给客户。
5.上线了!
代码有效,单元测试全部正常,持续集成已完成。从现在起,我们的功能上线并可在所有用户的浏览器中使用。这也是我们可以喘口气、打 NHL、坐在板凳上或观察植物生长的时候。
这个过程与敏捷方法的方向相同。它使我们能够在发生变化时非常快速地进行迭代。最后,我们花更多的时间来研究客户的功能,而不是手动部署和测试它们。
您喜欢这篇文章,但不喜欢它吗?加入我们的42 ligne博客,该博客为开发人员和代码狂热分子提供更多技术内容!
让我们以一家在线商店为例,该商店想要添加一项功能来收集访问者 拉脱维亚电话号码数据 的电子邮件,以便向他们发送促销电子邮件。您将发现 Spektrum 开发人员的一天会是什么样子。你会看到,这很令人兴奋。
1. 发展
魔法从我们的工作站开始。我面前有一家著名的在线商店,环境与互联网隔离。例如,我可以决定执行交易而不将其最终留在仓库中,或者添加产品而不将其显示在在线版本上。这称为本地环境,或开发环境。
为了收集访问者的电子邮件,我将编写必要的代码来将此信息存储在我们数据库中的特定位置。然后,您必须准备由文本框和按钮组成的视觉效果,它将集成到主页上的新部分中。
2. 单元测试
我们的功能现已就位。然而,为了确认它是否完整,需要编写单元测试。粗略地说,单元测试是一种确保我们的功能按照设计正常工作的技术。它们使得为客户提供更高水平的质量成为可能。这些单元测试可以在开发过程中随时运行以检测设计错误。由于这些测试是自动化的,因此它们确保有效的方法始终有效,因为所有测试都在每次代码更改期间运行。
在这种特定情况下,我将编写一个单元测试,以确认我的电子邮件已保存在数据库中,并编写另一个单元测试,以确保文本框支持所有可能的电子邮件格式。如果这两个单元测试不存在,我就必须通过单击应用程序页面自己进行验证。想象一下,如果 Google 员工每次部署应用程序时都必须点击各处并尝试搜索引擎的每个功能!这不仅会造成时间和金钱的巨大浪费,而且无法管理。
3. 版本控制
现在我已经验证了我的系统工作正常,我将把这些信息保存到我们的源代码目录中。版本控制系统提供了一系列用于存储和版本控制项目文件及其内容的工具。因此,系统保留所有后续版本。特别是,它允许您以独特的方式记录作者和修改日期,同时使当前版本可供整个团队使用。
从更一般的角度来看,就好像每次我们保存文本文件时,我们都会在其上添加日期并将其存储在 USB 密钥上。因此,每个版本都可以随时访问,任何有权访问它的人都可以访问。
4.持续集成
当注册软件的新版本时,持续集成过程会自动开始。最后一步允许我们在验证所有单元测试有效后将应用程序的所有部分构建在单个文件中。在成功的案例中,持续集成负责将应用程序部署到托管解决方案。如果一个或多个单元测试导致失败,团队中的开发人员会立即收到通知并取消部署。我们必须明白,这种做法是在我们的工作站之外的另一台机器上(在这个著名的云中)进行的。这确保了应用程序可以在我们的工作站以外的其他地方运行。
我喜欢将持续集成比作餐厅服务员。该人员负责组装订单、验证其一致性和准确性,然后将其运送给客户。
5.上线了!
代码有效,单元测试全部正常,持续集成已完成。从现在起,我们的功能上线并可在所有用户的浏览器中使用。这也是我们可以喘口气、打 NHL、坐在板凳上或观察植物生长的时候。
这个过程与敏捷方法的方向相同。它使我们能够在发生变化时非常快速地进行迭代。最后,我们花更多的时间来研究客户的功能,而不是手动部署和测试它们。
您喜欢这篇文章,但不喜欢它吗?加入我们的42 ligne博客,该博客为开发人员和代码狂热分子提供更多技术内容!