作为一个编程新手,在软件目录中常常会看到这几个词,尤其 config 、 setting 翻译成中文区别不是很大,总让人有点区分不了他们的使用场景。在知乎上看到了关于这个问题的讨论觉得受益挺大的,自己总结了一下各位大佬的回答

问题链接:

config、option、setting这三者在程序世界里是什么区别?

首先是轮子哥的神回答:

Configure some options in the settings.

作者:vczh
链接:https://www.zhihu.com/question/39827177/answer/83301475
来源:知乎

另一位答主解释的也很清楚了。

从字面意义来说Config和Setting有点类似。
Config一般是配置,Setting一般是设置。
其实差不了多少。

但硬要区分的话,Config更容易联想为给开发人员使用的,用来避免一些Hard Code的可参数化的设定。
Setting更偏向于使用者或者运维人员使用的设定。比如设置一个端口号,IP地址类似的。

而Option是选项的意思。比如我们设置Socket的时候可以选同步或者异步的模式。

如何管理?
比如http://ASP.NET Core里面的Sample就不错。你可以指定多个Settings例如
appsetting.json, appsetting.Development.json
appsettings.Prodution.json。可以很好的解决版本库的管理问题。

在使用上我喜欢定义一个config类。然后将配置文件在系统启动的时候或者第一次使用它的时候加载到(反序列化)到这个类的对象。用起来就很方便啦。

作者:苏佳
链接:https://www.zhihu.com/question/39827177/answer/83301475
来源:知乎

config、option、setting辨析的更多相关文章

  1. haproxy [WARNING] 312/111530 (17395) : config : 'option forwardfor' ignored for frontend 'harbor_login' as it requires HTTP mode.

    1.经过调查, 2down voteaccepted x-forwarded-for is an HTTP header field, so has nothing to do with the tr ...

  2. ceph删除pool提示(you must first set the mon_allow_pool_delete config option to true)解决办法

    现象: 1.在mon节点打开/etc/ceph/ceph.conf,增加以下 2.重启ceph-mon systemctl restart ceph-mon.target 3.删除pool [root ...

  3. config system setting for elasticsearch

    1. disable swapping. swap 分区会导致garbage collections 花费太多时间,elasticsearch 响应变慢. 方法1:swapoff -a 方法2:vi ...

  4. GHOST CMS - 配置 Config

    Config For self-hosted Ghost users, a custom configuration file can be used to override Ghost's defa ...

  5. SAS Config文件 处理流程

    Processing Options Specified by Additional CONFIG Options You can also specify additional –CONFIG op ...

  6. Flask中的路由、实例化参数和config配置文件

    Flask中的路由 endpoint 别名不能重复,对应的视图函数,默认是视图函数名.endpoint 才是路由的核心.视图函数与路由的对应关系.可以通过url_for 反向创建url # metho ...

  7. postgresql:pgadmin函数调试工具安装过程

    通过安装第三方插件pldebugger,可实现在pgadmin客户端对函数设置断点.调试,具体过程如下: 1.下载pldebugger安装包:http://git.postgresql.org/git ...

  8. linux内核的makefile.txt讲解

    linux内核的linux-3.6.5\Documentation\kbuild\makefiles.txt Linux Kernel Makefiles This document describe ...

  9. Server Name Indication(SNI)

    转载自: http://openwares.net/misc/server_name_indication.html Server Name Indication是用来改善SSL(Secure Soc ...

随机推荐

  1. arm-linux-gcc/ld/objcopy/objdump参数总结【转】

    arm-linux-gcc/ld/objcopy/objdump参数总结 转自:http://blog.csdn.net/muyuyuzhong/article/details/7755291 arm ...

  2. ES系列十八、FileBeat发送日志到logstash、ES、多个output过滤配置

    一.FileBeat基本概念 简单概述 最近在了解ELK做日志采集相关的内容,这篇文章主要讲解通过filebeat来实现日志的收集.日志采集的工具有很多种,如fluentd, flume, logst ...

  3. ulimit -n 修改

    Linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值.那么应该在哪里设置呢? [root@loca ...

  4. oracle instantclient_11_2 配置文件tnsnames.ora

    文件所在位置(不同版本位置可能不同): oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora WDDB = (DESCRIPTION = ...

  5. 04-Bootstrap的插件

    1.下拉菜单 代码如下: <div class="dropdown"> <button class="btn btn-default dropdown- ...

  6. 请手动释放你的资源(Please release resources manually)

    作者: Laruence(   ) 本文地址: http://www.laruence.com/2012/07/25/2662.html 转载请注明出处 我从来不认为这个问题是个问题, 直到昨天. 昨 ...

  7. 使用ueditor的时候,style样式传递到后台时被过滤没了

    在项目中,使用ueditor的时候,style样式传递到后台时被过滤没了 转:https://www.cnblogs.com/theroad/p/5761743.html 经过chrome的一番调试后 ...

  8. CSS Zoom属性

    CSS中 Zoom属性 介绍 其实Zoom属性是IE浏览器的专有属性,Firefox等浏览器不支撑.它可以设置或检索对象的缩放比例.除此之外,它还有其他一些小感化,比如触发ie的hasLayout属性 ...

  9. hdu1828 扫描线计算周长

    和扫描线计算面积差不多,新加了lbd,rbd线段树来标记区间的左右两侧是否被填充(左右边界是否存在),numbd线段树统计区间有多少边 /*数据弱不用离散化,但是要处理一下坐标*/ #include& ...

  10. ASP.NET Global.asax详解【转】

    global.asax是一个文本文件,它提供全局可用代码.这些代码包括应用程序的事件处理程序以及会话事件.方法和静态变量.有时该文件也被称为应用程序文件. global.asax 文件中的任何代码都是 ...