什么是“代码配置”?

时间:2016-08-29 07:04:02

标签: gulp

我在google 代码优于配置配置代码上多次看到这个词。我试着在google上搜索它,但仍然没有得到任何结果。最近我又开始在gulp上工作了,神秘来自代码配置

你能告诉我两者是什么,它们之间的区别是什么?

3 个答案:

答案 0 :(得分:7)

由于你用gulp标记了这一点,我会给你一个与另一个工具(Gruunt)的流行比较,以区别对待。

  

Grunt的任务是在配置对象中配置的   Gruntfile,而Gulp是使用Node样式语法编写的。

取自here

所以基本上使用配置,你必须为你的工具提供它认为必须工作所需的信息。 如果您专注于代码,请告诉您的工具必​​须直接完成哪些步骤。

关于哪一个更好,有很多讨论。您必须阅读并确定最适合您项目的内容。

答案 1 :(得分:1)

代码优于配置后跟 gulp )和相反的配置代码关注通过 grunt )是软件/程序开发中的方法/原则,其中gulp和grunt都用于自动化任务。该方法指的是根据典型的编程约定开发程序,而不是程序员定义的配置。这两种方法都有其自身的背景/目的,而不是哪个更好的问题。

gulp 中,每个任务都是一个java脚本函数,必须事先没有涉及配置(尽管函数通常可以采用配置值)并将多个函数链接在一起以创建构建脚本。 Gulp使用节点流。流基本上是连续的数据流,可以异步操作。但是在 grunt 中,所有任务都在文件中的配置对象中配置,并且这些任务按顺序运行。

参考https://deliciousbrains.com/grunt-vs-gulp-battle-build-tools/

答案 2 :(得分:1)

因为你谈到了“代码”,我会尝试给出一个不同的视角。

在回答有关从 docker 容器内部找出 IP 地址的问题时 Docker container IP address from .net project

有两种可能的代码

var ipAddress = HttpContext.Request.HttpContext.Connection.LocalIpAddress;

这将在运行时为您提供 IP 地址,但是,它无法控制它。 它还可能导致将来有更多代码来对 IP 地址执行某些操作。就像喂一个负载平衡器或类似的东西。

我更喜欢配置而不是它。

比如 为每个容器服务预配置 IP 地址的环境变量。如:

    WEB_API_1_IP=192.168.0.10
    WEB_API_2_IP=192.168.0.11
    .
    .
    .
    NETWORK_SUBNET=192.168.0.0/24

一个 docker-compose 将环境变量绑定到容器的 IP 地址。如:

version: '3.3'
services:
  web_api:
    .
    .
    .
    networks:
      public_net:
        ipv4_address: ${WEB_API_1_IP}
.

以及一些将两者联系起来并在代码中提供访问权限的 .net 代码。

Host.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                config.AddEnvironmentVariables();
            })

我们写的代码是关于通读配置的。 但它提供了更好的控制。根据您运行它的环境,您可以拥有不同的环境文件。

子网的机器数量,它们都是配置选项,而不是需要更多维护且容易出错的棘手代码。