Gostariamos de criar um mecanismo que realiza a leitura de variáveis de configuração da plataforma a partir de diferentes sources, que seja de fácil configuração e utilização.
Dado o seguinte exemplo:
var server = require('http');
var router = require('router');
server.createServer(env('port'), router)
Gostariamos que a função env, por exemplo, consiga carregar esta informação de porta de várias fontes diferentes, de forma ordenada e com ordem de prioridade.
Até então pensamos em três fontes: config.json, environment e cmd arguments.
Segue abaixo os exemplos de utilização das três formas citadas, com base no exemplo acima:
config.json
Arquivo que já utilizamos hoje que pode conter várias configurações da aplicação e bibliotecas utilizadas.
environment
Utilizar o env da máquina para configuração de informações.
export port=8778
thrust startup.js
argumentos
Nova forma de passagem de parâmetros que estamos avaliando para o thrust v5.
thrust startup.js -port 8778
Com base nestas informações, gostariamos de levantar a discussão em relação as possíveis fontes (se devemos incluir/remover alguma) e da ordem de prioridade das mesmas.
Imagine, que em um determinado momento utilizamos as três fontes citadas acima, ou seja, temos o arquivo, fizemos export no env, e também passamos port como argumento.
Qual deve ser a prioridade das fontes?
Iniciamente eu e o @cneryjr discutimos e consideramos que os argumentos de linha de comando devem ser os de maior prioridade.
Como segundo e terceira ordem de prioridade, tivemos pensamentos divergentes e gostariamos de discutir aqui para que consigamos elaborar um sistema inteligente e que reflita bem todo o fluxo do desenvolvimento, desde o startup com o arquiteto até as fases de deploy em hml e produção.
Gostariamos de criar um mecanismo que realiza a leitura de variáveis de configuração da plataforma a partir de diferentes
sources, que seja de fácil configuração e utilização.Dado o seguinte exemplo:
Gostariamos que a função
env, por exemplo, consiga carregar esta informação de porta de várias fontes diferentes, de forma ordenada e com ordem de prioridade.Até então pensamos em três fontes:
config.json,environmentecmd arguments.Segue abaixo os exemplos de utilização das três formas citadas, com base no exemplo acima:
config.json
Arquivo que já utilizamos hoje que pode conter várias configurações da aplicação e bibliotecas utilizadas.
{ "port": 8778 }environment
Utilizar o env da máquina para configuração de informações.
export port=8778 thrust startup.jsargumentos
Nova forma de passagem de parâmetros que estamos avaliando para o thrust v5.
Com base nestas informações, gostariamos de levantar a discussão em relação as possíveis fontes (se devemos incluir/remover alguma) e da ordem de prioridade das mesmas.
Imagine, que em um determinado momento utilizamos as três fontes citadas acima, ou seja, temos o arquivo, fizemos export no env, e também passamos port como argumento.
Qual deve ser a prioridade das fontes?
Iniciamente eu e o @cneryjr discutimos e consideramos que os argumentos de linha de comando devem ser os de maior prioridade.
Como segundo e terceira ordem de prioridade, tivemos pensamentos divergentes e gostariamos de discutir aqui para que consigamos elaborar um sistema inteligente e que reflita bem todo o fluxo do desenvolvimento, desde o startup com o arquiteto até as fases de deploy em hml e produção.