警惕“最佳实践”的过度
每个最佳实践都有其适用背景。
与土木工程等其他更为严格和规范的学科不同,软件工程没有一套执法部门需要遵循的规则。
如果您不进行 TDD(测试驱动设计),甚至不为您的代码编写测试,您就不会入狱。
如果您不遵循任何敏捷方法,您的系统也可以正常工作。
您可以在裸机 Linux 机器上部署您的下一个应用程序,而不是在云提供商上设置 Kubernetes 来自动扩展您的 pod,并且没有人会抱怨性能等。
我们都读过《整洁代码》、《整洁架构》以及软件开发领域的其他一些“圣经”,它们告诉我们什么是“最佳实践”。
我们都花了几个小时学习 Scrum 或类似的方法来管理软件项目,而不是老式的级联式项目管理,因为那是“最”有效的。
我们召开了大量的会议,仅在 Scrum 中就有:冲刺计划、每日 scrum、冲刺评审和冲刺回顾。
有时候我会想,我是不是靠参加会议来谋生,而不是开发软件。
那么,这些抱怨到底是为了什么呢?
这并不是盲目遵循所谓的“最佳实践”。
我使用 X 是因为 Google 使用 X,我使用 Y 是因为 Facebook 使用它。
这是做或使用任何事情的愚蠢理由。
如果您没有与很多人一起工作,在一个大型项目中,有数千个同时存在的用户,那么遵循所有的“最佳实践”可能是一个缺点而不是优势。
如果您独自工作,并且只有少数用户的小型应用程序,则可以直接提交到 GitHub 存储库中的主分支。
如果您的项目不是数据库密集型的,或者只需要处理很少的数据,那么您可以使用直接存储在文件系统中的嵌入式 H2 数据库,它会运行得非常好。
对于某些项目和团队来说,遵循现有的每一种先进架构和人员管理流程都是有意义的,但对于只有三个人的初创公司来说,情况却完全不是这样。
阅读有关最新技术的文章并认为“每个人都在使用它”很容易被误导,但事实上并非如此。
作为一名开发人员,FOMO(害怕错过)是真实存在的,你应该意识到这一点。
以理性的方式根据正确的情况选择正确的技术。
以合理的方式为正确的环境选择正确的项目方法。
您不必完全放弃 Scrum,您可以对其进行调整,只进行其中 2 次会议,而不是全部会议。
您可以生成一个便宜的 Linux VM 并手动部署您的应用程序,而不必花费数小时来设置 CI/CD,而只需 2 分钟即可手动完成。
如果您的应用程序屏幕是具有一个文本字段和一个按钮的简单功能(例如 Google 的主页),那么 React/Angular/Vue 就太过分了。
学习所有这些东西,阅读书籍,但要运用你的最佳判断来适应“最佳实践”,以利用对你的项目和团队有意义的东西,而不仅仅是因为别人说你应该使用它。
您还可以订阅我的时事通讯。
鏂囩珷鏉ユ簮锛�https://dev.to/renanmouraf/beware-of-excess-of-best-practices-5bed