Organização de código JavaScript

Prefácio

Oi. Sou um seguidor da programação funcional e gosto da simplicidade e legibilidade do código. Cada vez que escrevo qualquer parte do aplicativo, imagino que estou criando algo. Essa coisa deve ter certos detalhes e eles devem estar nos lugares certos. Portanto, todas essas coisas são semelhantes entre si e formam uma grande aplicação.

Eu sou um desenvolvedor JavaScript. Acho que é uma ótima linguagem com características expressivas. Alguém disse que a linguagem não é suficiente para os elementos do OOP, então JS não pode ser levado a sério. Tenho certeza de que JS tem uma das melhores implementações de programação funcional.

Modelo

Com base em minha experiência, criei meu próprio modelo para organizar o código em cada arquivo.

(function(){
'use strict';
// variables declaration and initialization

// functions declaration

// another variables initialization

// global events subscribing

// global API declaration

})();

Este é um módulo de amostra para monitorar qualquer informação e armazenar esta informação em localStorage

(function(){
'use strict';
// variables declaration and initialization
var data = localStorage.hasOwnProperty('data') ? JSON.parse(localStorage.data) : {},
startTime
;

// functions declaration
function updateField(key, value){
if(!data.hasOwnProperty(key)){
data
[key] = 0;
}
data
[key] += value;
}

function saveData(){
localStorage
.data = JSON.stringify(data);
}

// another variables initialization
if(data.hasOwnProperty('timer')){
updateField
('visit', 1);
}

// global events subscribing
document
.addEventListener('customeventstart', function(event){
startTime
= event.timeStamp;
});
document
.addEventListener('customeventend', function(event){
updateField
('timer', event.timeStamp - startTime);
});
document
.addEventListener('anotherevent', saveData);

// global API declaration
window
.monitor = {
save
: saveData,
update
: updateField
};
})();

Espero que este modelo seja útil para alguém.