Essa convenção hierárquica existe para fornecer clareza, ajudando-nos a conhecer o escopo de influência de cada configuração e a diferenciar várias configurações com um nome idêntico ou ambíguo entre vários módulos.
Isso é útil em aplicativos com muitas configurações possíveis para incluir no usuário principal páginas de opções (onde a hierarquia é mostrada por guias ou páginas) e uma boa alternativa à planilha INI files (com [title]
delimitadores de seção) que são mais propensos a erros do usuário e geralmente exigem um reinicialização do aplicativo para entrar em vigor.
As configurações hierárquicas também podem refletir, até certo ponto, o modelo interno orientado a objetos usado pelos desenvolvedores:
Nestemodelodeexemplo,podemosimaginarumaconfiguraçãodepessoa.professor.disallow_strikes=true,enquantoumstudents.disallow_strikespodepermanecercomofalsoounãoestardisponível.Essacompartimentalizaçãoétambémabaseparausing System.Threading.Tasks
).
Então, agora podemos supor que a configuração network.http.xxx
não deve ter influência sobre network.ftp
ou outros submódulos da rede, enquanto uma configuração network.xxx
provavelmente terá influência sobre todos eles.
A informação extra é benéfica ...
-
para o usuário: temos uma ideia melhor de qual parte do aplicativo uma determinada configuração terá influência, facilitando a resolução de problemas (e evitando!)
-
e para os desenvolvedores: a pessoa que trabalha ou soluciona problemas de um módulo específico pode estar facilmente ciente de qual configuração modificável pelo usuário pode afetar seu trabalho atual e se concentrar nisso.