Ho due amici che hanno scuole di pensiero completamente diverse su come definire il loro codice.
Il primo dice che il codice dovrebbe essere ben indentato e usare molti spazi e nominare le variabili in maniera giudiziosa per organizzare le cose in modo da poter immediatamente capire la gerarchia e la semantica del codice.
Ecco un esempio di come appare il suo codice:
var Stack = function () {
var pair = function ( first ) {
return function ( second ) {
return function ( dispatcher ) {
return dispatcher ( first ) ( second );
};
};
};
var getFirst = function ( pair ) {
return pair ( function ( x ) {
return function ( y ) {
return x;
};
} );
};
var getSecond = function ( pair ) {
return pair ( function ( x ) {
return function ( y ) {
return y;
};
} );
};
var emptyStack = function () {
return function () {
return null;
}
};
var stack = emptyStack ();
var self = {
push: function ( item ) {
stack = pair ( item ) ( stack );
return self;
},
pop: function () {
var top = getFirst ( stack );
stack = getSecond ( stack ) || emptyStack ();
return top;
},
top: function () {
return getFirst ( stack );
}
};
return self;
};
Il secondo dice che è meglio avere il tuo codice scritto in modo più compatto in modo che tu possa vedere una parte più grande dell'immagine contemporaneamente e essere in grado di riconoscere più immediatamente come una parte di il programma ne influenzerà un altro.
Ecco lo stesso programma scritto nel suo stile:
var Stack=function(){
var pair=function(x){return function(y){return function(f){return f(x)(y)}}};
var fst=function(p){return p(function(x){return function(y){return x}})};
var snd=function(p){return p(function(x){return function(y){return y}})};
var empt=function(){return function(){return null}};var stk=empt();
var slf={push:function(val){stk=pair(val)(stk);return slf},
pop:function(){var top=fst(stk);stk=snd(stk)||empt();return top},
top:function(){return fst(stk)}};return slf}
Personalmente preferisco scrivere il codice nel primo modo, ma non ho provato molto il secondo modo, quindi forse non ci sono abituato.
Ho notato che quando guardo il codice Javascript della maggior parte dei siti web professionali, di solito usano il secondo stile, quindi potrebbe esserci qualcosa.
Oltre alle semplici preferenze stilistiche soggettive, c'è un motivo per preferire l'una rispetto all'altra?