2012-04-02 3 views
1

Le code JavaScript de mon application Web est devenu un fichier volumineux. Je veux le découper en modules, donc c'est plus facile à gérer.Comment diviser une base de code JavaScript en modules?

Je ne sais pas s'il existe des bonnes pratiques pour anatomiser la base de code d'une application web, ou si cela varie trop d'un projet à l'autre?

En particulier:

  • chaque module devrait être responsable d'un concept d'application à l'échelle, comme "mise en page" ou "stockage clientside", etc? Les modules doivent-ils être conçus pour des concepts spécifiques à l'application (comme "commentaires" ou "calendrier"), et chaque module doit-il gérer sa propre mise en page, son propre stockage côté client, etc.?

  • ou un mélange des deux?

Répondre

3

Si vous prenez Separation of Concerns et Single Responsibility compte alors chaque module, etc./composant devrait être responsable de faire ce qu'il fait et rien d'autre. Décomposez vos modules en les décomposant en petits morceaux faciles à gérer qui font leur travail et rien d'autre. En ce qui concerne votre application JS, vous pouvez jeter un oeil à certains frameworks MVC côté client (tels que knockout, sproutcore, colonne vertébrale etc. pour n'en citer que quelques-uns) ces frameworks permettent de séparer logiquement les vues et les mises en page aux contrôleurs et des modèles. Vous pouvez également utiliser quelque chose comme require.js pour charger vos modules au fur et à mesure de leur utilisation.

There is a very good book by Alex McCaw qui vaut la peine d'être lu. MVC est juste un modèle, mais c'est un modèle très populaire et répond à certaines des préoccupations que vous avez.

Bonne chance.

1

Toutes choses égales par ailleurs, il est préférable de créer vos modules autour de concepts spécifiques à l'application. Ceci est plus orienté objet, et tend à regrouper le code qui est plus susceptible de changer ensemble. Cela rend votre code plus facile à comprendre, plus tolérant au changement, plus facile à développer et à étendre (les avantages de la «modularité»).