La flexibilité pour vous est généralement la flexibilité pour eux. Toutes ces meilleures pratiques que vous suivez sont des gains des deux côtés de l'application.
Un point critique et souvent manqué, cependant, est l'écriture d'une interface utilisateur robuste. Beaucoup trop de composants d'interface utilisateur sont trop ancrés dans un contexte ou un ensemble HTML trop exigeant et ils ont mis en place CSS pour échouer.
Si vous avez une liste déroulante, par exemple, il est beaucoup moins difficile pour JS d'ancrer un composant de chute en position absolue à l'intérieur d'un conteneur cliqué de jeu relatif (pas de coordonnées nécessaires) que de retirer le marteau JQuery et d'obtenir les coordonnées pour le survoler. sur l'élément et il suffit de le coller en place. Il est également beaucoup moins susceptible de se briser dans les cas où la page se déplace ou si une nouvelle fonctionnalité de navigateur désactive les informations de positionnement. Plus vous comptez sur les compétences HTML / CSS pour éviter le travail JS, plus votre interface utilisateur sera généralement robuste.
En règle générale, j'essaie de m'assurer que la seule chose dont mes composants d'interface utilisateur ont besoin est une balise HTML pour vivre avec un ID ou une classe appropriée. Plus vous pouvez faire de choses avec ce conteneur sans que l'interface utilisateur ne se casse ou avec le conteneur qui s'adapte comme l'expansion / la réduction pour s'adapter à l'évolution des dimensions du conteneur, plus il peut être facilement implémenté sur n'importe quelle partie de l'application sans avoir besoin d'un côté client expert. Tout ce qu'ils ont à faire, c'est de coller une classe dessus.
Préférez la délégation d'événements sur les conteneurs d'interface utilisateur à l'attribution directe d'écouteurs aux nœuds de point de terminaison comme les boutons. Ce composant d'interface utilisateur peut fonctionner avec du HTML statique maintenant, mais vous ne savez jamais quand quelqu'un voudra pouvoir extraire et réécrire le HTML à l'intérieur avec innerHTML ou quelque chose. Si le conteneur est intact et que tous les événements sont délégués (voir la méthode jquery 'on'), vous n'avez pas à vous en soucier et ils pourraient ne jamais apprendre à la dure que le remplacement de HTML interrompt les écouteurs.
Dans l'intérêt de conserver la délégation en option, n'utilisez stopPropagate que sur les noeuds finaux et envoyez des messages de haine aux développeurs de framework idiots qui les spamment partout.
En ce qui concerne la mise en page, gardez le HTML minimal, sémantique et évitez les wrappers div. Moins il y a de code HTML, plus les problèmes de mise en page sont faciles à diagnostiquer pour les débutants.
Utilisez des noms de classe explicites pour l'utilitaire CSS. Une classe "ligne" est probablement plus claire pour les noobs CSS que "clearfix".
Donnez toujours des éléments sectionnels uniques, des identifiants uniques. Cela permet d'identifier plus facilement où se produisent des éléments spécifiques à une section, il est plus facile de remplacer des éléments, et il peut également s'agir d'une victoire JS de lisibilité et de performances.
De toute évidence, c'est une mauvaise nouvelle d'être excessif avec un schéma de classes, mais plus un développeur principal peut définir simplement en ajoutant les bonnes classes aux choses, plus il sera facile pour eux d'apporter des modifications à la page existante.
Et bien sûr, au début du projet, amenez-les à s'entendre sur au moins cette chose: la connexion arrière et frontale via HTML et JSON uniquement. Ne les laissez pas utiliser des choses qui "écrivent le JavaScript pour vous!" C'est un bordel sanglant et un cauchemar d'entretien.
Comme pour tout ce qui concerne le développement, préférez SEC et minimalisme.