Fork me on GitHub
#clojure-italy
<
2019-01-22
>
manuel07:01:56

buondì fellas

andrea.crotti10:01:36

interesssante non avevo pensato a questi drawbacks delle environment variables

andrea.crotti10:01:59

voi come gestite la questione della configurazione?

andrea.crotti10:01:27

stavo provando Aero, per vedere se possiamo togliere il env variables per tutte le cose che non sono secrets perlomeno

andrea.crotti10:01:26

e sembra ottimo, ma ci sono cose tipo: - in Country X questa feature dovrebbe essere sempre disabilitata, - su Environment Y (staging/prod etc), questa feature dovrebbe sempre essere abilitata - e magari a volte dovrebbe prendere la precedenza il Country o a volte l'Environment

nilrecurring10:01:42

Noi stiamo iniziando a usare il pattern di avere tutta la config Dhall in una singola ENVVAR, che poi leggi nel programma

nilrecurring10:01:07

Puoi usare le Enum, gli Optional e avere logica condizionale, etc

nilrecurring10:01:34

Così non devi avere la logica lato applicativo

nilrecurring10:01:58

E la Config è typecheckata, per cui se non conforma al tipo l’app non parte

gon10:01:09

io mi trovo molto bene con https://github.com/tolitius/cprop e' molto flessibile, versatile e imho meno opinionated rispetto agli conf manager

andrea.crotti11:01:30

dhall sarebbe interessante, ma convincere parecchia gente prima di usarlo

andrea.crotti11:01:19

cprop sembra anche buono, ce ne sono 1000 di librerie diverse per gestire la configurazione 😮

helios11:01:23

una cosa un po' simile, da cognitect

mpenet11:01:07

usiamo aero cui

andrea.crotti11:01:41

per librerie preferisco fidarmi di Juxt mi sa

reborg13:01:13

Qui environ

helios13:01:25

anche io personalmente uso environ

andrea.crotti13:01:12

si anche noi abbiamo environ

andrea.crotti13:01:03

ma non fa niente delle cose che vorrei al momento environ

manuel14:01:26

@nilrecurring quindi col tuo dhall-clj si può già iniziare? 🙂

nilrecurring14:01:01

Yep, col caveat che le call http non ci sono ancora, però gli import da envvar e file locali si 🙂

nilrecurring14:01:56

E.g. se hai la config in una envvar e il tipo della config in ./Config.dhall puoi fare (input "env:APP_CONFIG : ./Config.dhall")

manuel14:01:25

ottimo, davvero

😊 5
nilrecurring14:01:51

Grazie! Forse dovrei submittare a qualche conf, perchè sto compilatore è un trip

andrea.crotti14:01:41

un altra cosa che mi da' fastidio delle env variables e' che se vuoi cambiare una flag al volo per testare qualcosa di diverso

andrea.crotti14:01:08

devi riavviare tutto l'ambaradan (a meno di non andare a modificare a mano nel codice dove viene usata)

andrea.crotti14:01:20

con uno di queste librerie piu' furbe + integrant/component posso fare il reload della configurazione piu' facilmente

gon14:01:17

ok, ma integrant/component bestie diverse da environment/cprop.aero etc...

andrea.crotti15:01:18

certo, da usare insieme intendo

andrea.crotti15:01:47

con integrant ancora piu' facile

manuel15:01:26

e niente love per mount?

andrea.crotti15:01:05

beh integrant mi piace di piu'

andrea.crotti15:01:14

ed e' James Reeves approved

andrea.crotti15:01:23

(nel senso che e' una delle sue 1000 librerie :D)