是什么造就了 "production code"?
What makes a "production code"?
我是一名研究科学家,我们编码的方式绝对不被认为是 "production code" 那是原型代码,但是生产代码是什么?
测试可扩展性、处理实时流量的能力以及测试所有边缘情况?
但是还有什么,例如我还听说 Python 比 Java 或 C# 少 "production language",它们可以生产的标准是什么。
任何 books/references 将这一点画回家或升华它,也很棒!
提前致谢
生产代码通常意味着它已准备好运送给客户。
- 最明显的错误已修复
- 代码结构良好,self-documenting
- 编写了自动化测试并具有足够的覆盖率
- 它在被合并到主要代码库之前已经过同行评审过程。
- 它将通过 "build system" 可能会自动检查规则,例如:编码约定、复杂性、linting、测试、编译。有时这可能包括成功部署到测试环境。
这与非生产代码相比如何?
几乎所有开发人员都是从 prototype/non-production 代码开始的,即使是使用测试驱动开发 (TDD) 的开发人员也是如此。他们的代码的目标是“只是让这个工作”,这样他们就可以开发出解决问题的第一步。这通常会导致变量命名不当、函数过长(命令数量)、格式不正确以及通常很少或根本没有测试。
一旦开发人员有了令人满意的工作解决方案,他们就会回去清理代码。他们修正拼写错误;使用 design patterns, if they see one that's helpful; they make their code fit the teams coding conventions and style guide, some of which lead to real heated debates on using tabs vs spaces.
最好的思考方式是:
编写代码的第一步是编写软件草稿,让开发人员在页面上表达想法,直到他们完成“故事”或功能集。目标是让他们理解它。
第二步,即为生产做好准备,就是对其进行改进,以便其他人可以理解他们的代码。用论文写作术语来说,你给它一个更连贯的结构,并试图更好地向其他人传达你的意思。
这还不是全部。
虽然这通常适用于编写代码,但“准备好投入生产”的部分内容包括实际应用程序代码不涉及的所有步骤。
通常这是将代码交到客户手中或上线所需的所有步骤。
这可能是在创建一个 Continuous Integration and Continuous Deployment 系统。设置服务器、部署组、监控系统等。
如果没有这些东西,您的应用程序可能不会被您的组织视为生产就绪。
我是一名研究科学家,我们编码的方式绝对不被认为是 "production code" 那是原型代码,但是生产代码是什么? 测试可扩展性、处理实时流量的能力以及测试所有边缘情况? 但是还有什么,例如我还听说 Python 比 Java 或 C# 少 "production language",它们可以生产的标准是什么。
任何 books/references 将这一点画回家或升华它,也很棒! 提前致谢
生产代码通常意味着它已准备好运送给客户。
- 最明显的错误已修复
- 代码结构良好,self-documenting
- 编写了自动化测试并具有足够的覆盖率
- 它在被合并到主要代码库之前已经过同行评审过程。
- 它将通过 "build system" 可能会自动检查规则,例如:编码约定、复杂性、linting、测试、编译。有时这可能包括成功部署到测试环境。
这与非生产代码相比如何?
几乎所有开发人员都是从 prototype/non-production 代码开始的,即使是使用测试驱动开发 (TDD) 的开发人员也是如此。他们的代码的目标是“只是让这个工作”,这样他们就可以开发出解决问题的第一步。这通常会导致变量命名不当、函数过长(命令数量)、格式不正确以及通常很少或根本没有测试。
一旦开发人员有了令人满意的工作解决方案,他们就会回去清理代码。他们修正拼写错误;使用 design patterns, if they see one that's helpful; they make their code fit the teams coding conventions and style guide, some of which lead to real heated debates on using tabs vs spaces.
最好的思考方式是:
编写代码的第一步是编写软件草稿,让开发人员在页面上表达想法,直到他们完成“故事”或功能集。目标是让他们理解它。
第二步,即为生产做好准备,就是对其进行改进,以便其他人可以理解他们的代码。用论文写作术语来说,你给它一个更连贯的结构,并试图更好地向其他人传达你的意思。
这还不是全部。
虽然这通常适用于编写代码,但“准备好投入生产”的部分内容包括实际应用程序代码不涉及的所有步骤。
通常这是将代码交到客户手中或上线所需的所有步骤。
这可能是在创建一个 Continuous Integration and Continuous Deployment 系统。设置服务器、部署组、监控系统等。
如果没有这些东西,您的应用程序可能不会被您的组织视为生产就绪。