我在谷歌上看到过很多次这个术语代码高于配置或配置高于代码。我试着在谷歌上搜索它,但仍然一无所获。最近我又开始在大口上工作了,神秘的是代码高于配置。你能告诉我两者是什么吗?它们有什么区别?
3bygqnnd1#
既然你用gulp标记了这个,我将给予你一个与另一个工具(Grunt)的流行比较来说明区别。Grunt的任务是在Gruntfile内的一个配置对象中配置的,而Gulp的任务是使用Node样式语法编码的。取自here因此,基本上,通过 * 配置 *,您必须为工具提供它认为必须工作所需的信息。如果您关注 * 代码 *,则您直接告诉工具必须完成哪些步骤。关于哪一个更好,有很多讨论。你必须读一读,然后决定哪一个最适合你的项目。
sr4lhrrt2#
在gulp中,每个任务都是一个java脚本函数,无需预先配置(尽管函数通常可以接受配置值)并将多个函数链接在一起创建一个构建脚本。Gulp使用节点流。流基本上是连续的数据流,并且可以异步操作。然而在grunt所有任务都在文件中的配置对象中配置,并且按顺序运行。
lf3rwulv3#
因为你谈到了“代码”,我将尝试给予一个不同的观点。在回答有关从Docker容器Docker container IP address from .net project内部计算IP地址的问题时有两种可能的代码
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
将环境变量与容器的IP地址联系起来的docker-compose。例如:
docker-compose
version: '3.3' services: web_api: . . . networks: public_net: ipv4_address: ${WEB_API_1_IP} .
和一些链接两者并在代码内给予访问的.net代码。
Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((hostingContext, config) => { config.AddEnvironmentVariables(); })
我们写的代码是关于阅读配置的。但是它提供了更好的控制。根据你运行它的环境,你可以有不同的环境文件。子网的机器数量,它们都是配置选项,而不是需要更多维护和容易出错的棘手代码。
3条答案
按热度按时间3bygqnnd1#
既然你用gulp标记了这个,我将给予你一个与另一个工具(Grunt)的流行比较来说明区别。
Grunt的任务是在Gruntfile内的一个配置对象中配置的,而Gulp的任务是使用Node样式语法编码的。
取自here
因此,基本上,通过 * 配置 *,您必须为工具提供它认为必须工作所需的信息。如果您关注 * 代码 *,则您直接告诉工具必须完成哪些步骤。
关于哪一个更好,有很多讨论。你必须读一读,然后决定哪一个最适合你的项目。
sr4lhrrt2#
在gulp中,每个任务都是一个java脚本函数,无需预先配置(尽管函数通常可以接受配置值)并将多个函数链接在一起创建一个构建脚本。Gulp使用节点流。流基本上是连续的数据流,并且可以异步操作。然而在grunt所有任务都在文件中的配置对象中配置,并且按顺序运行。
lf3rwulv3#
因为你谈到了“代码”,我将尝试给予一个不同的观点。
在回答有关从Docker容器Docker container IP address from .net project内部计算IP地址的问题时
有两种可能的代码
这将在运行时给予你IP地址,但是,它不会控制它。它也会导致更多的代码在未来对IP地址做一些事情。比如给负载平衡器或类似的东西。
我更喜欢配置。
例如为每个容器服务预配置IP地址的环境变量。例如:
将环境变量与容器的IP地址联系起来的
docker-compose
。例如:和一些链接两者并在代码内给予访问的.net代码。
我们写的代码是关于阅读配置的。但是它提供了更好的控制。根据你运行它的环境,你可以有不同的环境文件。
子网的机器数量,它们都是配置选项,而不是需要更多维护和容易出错的棘手代码。