如何有效地成为一名单人开发人员?
How to effectively be a 1-man developer?
我是一个单人秀,在过去一年半的时间里,我开发并致力于为我们的业务需求定制的新定制 CRM。我很高兴向一位 25 年以上经验丰富的开发人员咨询以寻求帮助。
由于预算限制,我无法再获得他的帮助(暂时),也没有准备实时部署的经验。 (现在没有直播)
我目前正在设置生产服务器(非常痛苦)并且已经能够启动它 运行 目前正在迁移数据,设置 OPcache 等。
他跟我提到的一件事是:
- 本地主机(我工作的地方)
- 开发服务器(我在其中部署和测试我的更改)
- 生产服务器(我也推送实时更改)
问题 1) 现在,我有开发服务器和生产服务器。根据您的经验,'Local Host -> Dev Server' 过程对于 1-Man 表演真的是必要的吗?为什么不简单地完成我的工作并在开发服务器中测试我的更改?请提供一些常见做法的示例。
问题 2)当谈到将更改部署到生产服务器时,根据您的经验,有哪些常见的方法可以做到这一点?
问题 3) 从问题 2 开始,当我遇到紧急问题时会发生什么我也需要申请 'hot fix'?
问题 4)最后,根据您的经验,有哪些常用的跟踪版本的方法?我正在考虑使用 GitHub.
我将假设三种环境:
Development --> Test ---> Production
您在开发中编写代码,将该代码迁移到测试中(以测试您的迁移过程 和 您的新增强功能/错误修复),一旦得到统计,将该代码迁移到生产中.
问题 1) 始终需要测试您的代码。您最不想做的就是将未经测试的代码投入生产——您客户的业务依赖于该系统,而推送未经测试的代码是毁掉该业务的好方法。
您可能将应用程序测试与集成测试混淆了。 "one man show" 可能没有集成测试,但您仍然需要测试您的代码和部署过程。测试环境对于让用户尝试您的增强功能/错误修复以确保满足他们的需求也很有用。
问题 2) 看来您正在部署一个 PHP 应用程序。您可以阅读 this question 以获得一些想法,但它已经过时了。总的来说,这成为一个高度主观的问题,有许多不同的工具和观点; StackExchange 不是进行此类辩论的场所。
问题 3) 您使用源代码控制,允许您创建多个代码树副本,必要时每个 "hot fix" 或 "enhancement" 一个。当热修复完成、测试并成功迁移到生产环境时,您可以删除热修复目录树。
问题 4) 同样,您使用源代码控制。您可以 运行 Git 在本地使用 GitHub 或不使用,或者选择 Mercurial、Subversion 或其他。 SCM 的选择值得商榷(并且不是 StackExchange 的合适主题),但使用源代码控制解决了版本控制要求。
我是一个单人秀,在过去一年半的时间里,我开发并致力于为我们的业务需求定制的新定制 CRM。我很高兴向一位 25 年以上经验丰富的开发人员咨询以寻求帮助。
由于预算限制,我无法再获得他的帮助(暂时),也没有准备实时部署的经验。 (现在没有直播)
我目前正在设置生产服务器(非常痛苦)并且已经能够启动它 运行 目前正在迁移数据,设置 OPcache 等。
他跟我提到的一件事是:
- 本地主机(我工作的地方)
- 开发服务器(我在其中部署和测试我的更改)
- 生产服务器(我也推送实时更改)
问题 1) 现在,我有开发服务器和生产服务器。根据您的经验,'Local Host -> Dev Server' 过程对于 1-Man 表演真的是必要的吗?为什么不简单地完成我的工作并在开发服务器中测试我的更改?请提供一些常见做法的示例。
问题 2)当谈到将更改部署到生产服务器时,根据您的经验,有哪些常见的方法可以做到这一点?
问题 3) 从问题 2 开始,当我遇到紧急问题时会发生什么我也需要申请 'hot fix'?
问题 4)最后,根据您的经验,有哪些常用的跟踪版本的方法?我正在考虑使用 GitHub.
我将假设三种环境:
Development --> Test ---> Production
您在开发中编写代码,将该代码迁移到测试中(以测试您的迁移过程 和 您的新增强功能/错误修复),一旦得到统计,将该代码迁移到生产中.
问题 1) 始终需要测试您的代码。您最不想做的就是将未经测试的代码投入生产——您客户的业务依赖于该系统,而推送未经测试的代码是毁掉该业务的好方法。
您可能将应用程序测试与集成测试混淆了。 "one man show" 可能没有集成测试,但您仍然需要测试您的代码和部署过程。测试环境对于让用户尝试您的增强功能/错误修复以确保满足他们的需求也很有用。
问题 2) 看来您正在部署一个 PHP 应用程序。您可以阅读 this question 以获得一些想法,但它已经过时了。总的来说,这成为一个高度主观的问题,有许多不同的工具和观点; StackExchange 不是进行此类辩论的场所。
问题 3) 您使用源代码控制,允许您创建多个代码树副本,必要时每个 "hot fix" 或 "enhancement" 一个。当热修复完成、测试并成功迁移到生产环境时,您可以删除热修复目录树。
问题 4) 同样,您使用源代码控制。您可以 运行 Git 在本地使用 GitHub 或不使用,或者选择 Mercurial、Subversion 或其他。 SCM 的选择值得商榷(并且不是 StackExchange 的合适主题),但使用源代码控制解决了版本控制要求。