Mais conteúdo relacionado Semelhante a Development Principles & Philosophy (20) Mais de François-Guillaume Ribreau (12) Development Principles & Philosophy23. @FGRibreau
Bringr Strategy Bringr Impact
Bringr Backend
....
Bringr Sourcing Bringr Account
...
Bringr Alerts
Filtering
Statistics
Rules EnginePublishing
Statistics Updater
UIUIUI
Indexing
G+
Vimeo
Facebook
Youtube
Wordpress
Twitter
Notifications
... ... ...
55. @FGRibreau
//
config.js
module.exports
=
function(){
switch(process.env.NODE_ENV){
case
'development':
return
{dev
setting};
case
'production':
return
{prod
settings};
default:
return
{error
or
other
settings};
}
};
63. @FGRibreau
var env = require('common-env')(logger);
var config = env.getOrElseAll({
amqp: {
login: 'guest',
password: 'guest',
host: 'localhost',
port: 5672,
reconnect: false
}
});
var conn = require('amqp').createConnection(config.amqp);
AMQP_LOGIN="user" AMQP_PASSWORD="azerty" node server.js
npm install common-env
https://github.com/FGRibreau/common-env
66. @FGRibreau
?
var config = env.getOrElseAll({
amqp: {
addon:{
login: 'guest',
password: 'guest',
host: 'localhost',
port: 5672,
reconnect: false
}
}
});
var conn = amqp.createConnection(config.amqp.addon);
71. @FGRibreau
var config = env.getOrElseAll({
amqp: {
login: {
$default: 'guest',
$aliases: ['AMQP_ADDON_LOGIN']
},
password: 'guest',
host: 'localhost',
port: 5672,
reconnect: false
}
});
var conn = amqp.createConnection(config.amqp);
73. // /config.js
var logger = require('my-logger').createLogger();
var env = require('common-env')(logger);
module.exports = env.getOrElseAll({
amqp: {
login: 'guest'
// ...
}
});
// /app.js
var config = require('./config');
// /src/my/own/module.js
var config = require('../../../config');
76. var logger = require('my-logger').createLogger();
var env = require('common-env')(logger);
module.exports = env.getOrElseAll({
amqp: {
login: 'guest'
// ...
}
});
/config.js
77. var logger = require('my-logger').createLogger();
var env = require('common-env')(logger);
module.exports = env.getOrElseAll({
amqp: {
login: 'guest'
// ...
}
});
/config.js
78. var logger = require('my-logger').createLogger();
var env = require('common-env')(logger);
module.exports = env.getOrElseAll({
amqp: {
login: 'guest'
// ...
}
});
/config.js
79. // config now asks for logger
module.exports = function (logger) {
var env = require('common-env')(logger);
return env.getOrElseAll({
amqp: {
login: 'guest'
// ...
}
});
};
/config.js
80. // config now asks for logger
module.exports = function (logger) {
var env = require('common-env')(logger);
return env.getOrElseAll({
amqp: {
login: 'guest'
// ...
}
});
};
/config.js
// caller, must specify logger to use config
// app.js
var logger = require('my-logger').createLogger();
var config = require('./config')(logger);
84. // /app.js
var config = require('./config')(logger);
// /src/my/own/module.js
var config = require('../../../config')(logger);
✘ DI
✘ DRY
85. // /app.js
var config = require('./config')(logger);
// /src/my/own/module.js
module.exports = function (config) {
};
✔ DI
✔ DRY