如何接管现有项目
作为一名开发人员,你需要知道如何深入研究现有的代码库。当你接手一个项目时,你会有很多细节不了解,比如为什么某些代码要以某种方式编写。所以,当你需要参加交接会议时,你需要知道该问些什么。这是你获取启动和运行所需信息的最佳时机。
每个项目都会遇到这些问题。你可能正在开始一份新工作,也可能在目前的公司从事不同的项目。无论如何,以下是一些你应该在调职会议上提出的问题。
知道它应该做什么
这款应用的具体用途是什么?用户是谁?如果没有这些背景信息,很难弄清楚如何实现新功能或修复错误。询问应用的整体使用情况。了解应用各个部分的工作流程。如果有任务列表,请获取每个任务的详细步骤或详细信息。
这是每个人都准备好集中精力回答项目相关问题的时刻之一。所以,如果你有任何不清楚的地方,一定要弄清楚再离开。当然,当你开始深入研究时,可能会出现一些问题,但这是你避免大量困惑的机会。在深入探讨具体问题之前,尽量对应用程序有一个大致的了解。了解应用程序所在的行业也有助于解答你在开发过程中遇到的问题。
了解如何处理源代码控制
虽然大多数项目都使用 Git,但并非所有人都使用 GitHub。有些项目可能托管在 BitBucket、Azure DevOps 甚至 SVN 上。您需要了解代码在版本控制中的保存位置,以便将其拉取到您的机器上,并在出现不可避免的生产错误时进行故障排除。确保您有权访问代码,并且拥有完成所需工作的适当权限级别。收到登录凭据后,请立即检查。
越早发现这类小问题,项目长远发展就越顺利。修复一个小错误并快速提交,确保本地分支可以推送到远程仓库。此外,快速查看一下哪些人有权访问该仓库。这些信息在拉取请求和代码审查时非常有用。同时,也需要确保只有必要的人员才能访问代码。注意任何你不熟悉的用户,并联系项目经理或其他人员,确认他们是否仍然需要访问权限。
知道如何运行项目
接手一个新项目最难的部分可能是第一次在机器上设置并运行它。如果流程没有详细记录,很多一次性命令可能会丢失。您需要检查一些可能不太明显的事项,包括 PATH 变量、正在运行的软件版本以及引用的文件名。其他可能出现的问题包括设置新的本地数据库、获取种子数据以及更改 API 或数据库的连接字符串。
如果您在设置过程中遇到问题,请务必记录下来,以便下一位开发人员更轻松地解决。此外,您永远不知道何时需要将电脑恢复出厂设置,这些记录会派上用场。应用运行后,请检查一切是否像在开发或生产环境中一样正常运行。在有人开始推送更改之前,您应该在所有环境中看到相同的行为。
了解测试流程
您的应用可以进行多种不同类型的测试,您需要了解如何进入这些流程。单元测试在大多数项目中都相当常见,因此请务必检查这些测试。有些地方会进行集成测试,以确保构建或部署流程中不会出现重大更改。有些地方甚至有专门的软件测试人员,他们会运行用户场景,以了解应用在真实用户中的运行情况。您需要了解应用将经历的所有步骤。
当你启动这个新项目时,查看测试可以让你更好地了解应用程序的运行方式。如果项目中没有任何测试,那么现在是时候添加它们了。一定的代码覆盖率会为应用程序的未来发展奠定基调,随着代码的开发,可能会添加更多测试。与软件测试人员合作是另一个你需要学习的过程。通常,会有一些像 Jira 或 Basecamp 这样的系统,可以在开发过程中讨论和跟踪 bug 和功能。遵循他们现有的流程,将有助于你的代码更快、更一致地进入拉取请求阶段。
了解部署流程
尽管云服务几乎已经取代了大多数公司的托管需求,但您可能仍然需要使用物理服务器。掌握这些信息将有助于您了解即将使用的部署策略。是否有持续的构建/部署流程,还是需要从您的机器进行手动部署?了解如何在不同环境之间进行迁移。针对特定应用,明确部署应用的所有常见步骤。
云服务中可能会出现一些小问题,只有之前负责部署的人员才知道,所以一定要询问任何需要注意的异常情况。既然你已经修复了一个小错误,可以确认是否可以推送更改,那就继续将这个小修复部署到开发环境中吧。这是测试你是否真正理解部署工作原理的测试。希望你不需要进行太多手动部署,并且可以使用 CI/CD 流水线,这样整个过程就能保持一致。
接手现有项目是一项特殊技能,因为这不是你经常做的事情。有些人职业生涯的大部分时间都专注于一个产品或产品线,所以建立新项目只是偶尔会发生。不过,如果你从事咨询或自由职业,你需要知道如何定期自信地完成这项工作。通常情况下,你需要弄清楚一些小的配置更改,一旦设置好,就再也不用担心了。
这些只是我在设置新项目时尝试检查的几个事项。其中一些技巧也适用于开源项目。您在设置时会始终检查哪些内容?
嘿!你应该在 Twitter 上关注我,理由如下:https://twitter.com/FlippedCoding
鏂囩珷鏉ユ簮锛�https://dev.to/flippedcoding/how-to-take-over-an-existing-project-3hg5