高级软件工程师教会小白的那些事(12)

这个过程有点违背敏捷——在开始实施之前你能设计到什么程度呢?这是一个平衡——而且你要选择什么时间做什么事情。什么时候该埋头苦干,什么时候该后退一步?

当然,收集需求并不是全部。我认为将开发过程包含在设计中也是有好处的。比如

本地开发将如何运作?

我们将如何打包和部署?

我们如何进行端到端测试?

我们将如何对这项新服务进行压力测试?

我们将如何管理秘密?

CI / CD集成?

我们最近为BNEF开发了一个新的检索系统。做这方面的工作很棒。我必须设计本地开发,了解DPKG(打包和部署),并与秘密部署搏斗。

谁能想到把秘密部署到生产中居然会那么棘手?

你不能把它们放在代码中,不然任何人都可以看到它们了。

把它们作为环境变量,就像12 factor app那样?这是个好主意。你要怎么把它们放在那里?(每次机器启动时访问PROD机器来填充环境变量都很痛苦)

推荐阅读