-
Notifications
You must be signed in to change notification settings - Fork 3
Hi, added a function to extract omocodia number from cf , and combatibile declarations. #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
… for node, and functions are declaration are compatible with node.js and browser
…codia number inside code
|
Passo all'italiano, che mi viene piu semplice :) |
|
Ciao allora direi che la funzionalità che hai aggiunto va più che bene :)
Così facendo si ottiene un Error in cui error.name è 'false'.. non è molto utile
|
|
Ciao Giovanni, il test come era non mi funzionava, ho istallato chai e lanciato con node ./codice_fiscale_testjs ma mi ritornava errore, non ho approfondito piu di tanto, probabilmente mi mancava qualcosa, ma visto che difatto il test controlla semplicmente un identita, mi veniva fascile scriverlo in una funzione, cosi quelli che non gradiscono dipendenze esterne, possono vivere felici e contenti. Io sono un vecchio utente linux, potresti indicarmi come fare ad installarlo con --no-dev? mi piace l'idea della cartella e del modulo framework agnostic. Salvo errori checkCf si comporta come la hai definito tu, dato che isInvalidCF ritorna la stringa del messaggio di errore atteso function checkCf(codiceFiscale) } percui checkCf ritorna true, se e solo se isInvalidCF ha ritornato false ovvero non ha tornato errori, nel caso invece che codiceFiscale presenti errori, r contiene la descrizione dell'errore lancia l'eccezione con la descrizione. function checkCf(codiceFiscale) circa il throw catch, a te mi sembra ti piacciano perche le usi insiee con i .then di $q in chain, a me non piace perche quando voglio ho una serie i chiamate il cui esito e' legato tra loro, voglio poter catturare gli errori singolarmente e cosi mi costringe a gestire molti blocchi try e catch. Insomma non mi piacciono i blocchi try e catch per gestire il flusso di esecuzione, In una funzione di tese concettualmente e' un po strano lanciare un eccezione, ti faccio un esempio per provare a spiegarmi: per l'indentazione personale ti chiedo scusa, quella piu diffusa con le parentesi { perte sulla stessa linea popolare in java a me non piace, e preferisco quella del kernel con { su una nuova linea, ma sono gusti. Ciao Bruno |
|
Ehilà Ieri ho scritto molto di fretta quindi in realtà intendevo --production (ti rimando alla documentazione di npm per i vari flag https://docs.npmjs.com/cli/install Non lo abbiamo ancora pubblicato su npm.org dato che come avrai notato manca un pò di documentazione! Quindi per rispondere alla tua domanda, si mi piacerebbe tenere il test con chai. Poi sI, sarebbe ottimo spostare l'esempio con angular :) Invece per il coding style vedo di caricare un .eslintrc con le nostre linee guida, almeno abbiamo un modello da seguire Per la questione try/catch, (se non ho capito male il tuo esempio), facendo un discorso che prescinda dalla validazione del codice fiscale, a me piace fare cose del genere: function validate(){
checkCf(cf);
qualcosaChePotrebbeSollevareErrori();
...
}
function asyncSave(toSave){
// fai quello che devi fare e torna una promise
}
function errorHandler(error){
//svolgi operazioni comuni a tutti gli errori
logError(err);
//gestisci caso per caso
switch(err.name){
}
}
Promise.try(validate(thing))
.then(asyncSave)
.then(anotherFunc)
.catch(errorHandler)In generale sono dell'idea che la gestione degli errori deve essere disaccoppiata dalla logica della funzione. Questo diventa evidente se prendiamo in considerazione il fatto che spesso la gestione degli errori prevede operazioni che prescindono dal tipo di errore (un esempio banale è il logging) Avere tanti var result = validateCf(cf);
if(result !== true){
logError()
//gestisci errore specifico
return;
}
var result2 = altroControllo(boh)
if(result2 !=== true){
logError();
//gestici altro errore
return [...]
}
Quindi per concludere, il try/catch per me è semplicemente dello zucchero sintattico che facilita il disaccoppiamento della logica vs la gestione degli errori. Poi diciamo che personalmente non amo molto le funzioni che ritornano dati di tipi diversi, alla fine è questo il motivo per cui ho messo il throw. Riguardo alla tua domanda sui numeri pari e dispari: In realtà si mi rendo conto che il nome isCodiceFiscale è sbagliato perchè effettivamente potrebbe farlo sembrare un predicato, sarebbe giusto chiamarla validateCodiceFiscale o qualcosa del genere. Mentre scrivevo questo pippone infinito mi è venuto in mente che l'approccio giusto potrebbe essere quello che viene usato da libphonenumber di google che fa più o meno la nostra stessa cosa ma con i numeri di telefono. Per esempio la nostra interfaccia potrebbe essere: cosa ne dici? |
hi, I added a function to extract omocodia number from cf ,
and combatibile declarations with node.js and browser,
just declared as functions and exported as modules when modules exists ( in node as example ), this way is possible use it in angular or inside the browser in general, without any changes.
I also added a kiss testing, the previus declaration require chai.