Hacking SpecificityHigh-level Overview

Architectural Principles

On peut vous pardonner si vous pensez que l'idée d'architecture pour du CSS est un concept quelque peu grandiose et inutile : pourquoi quelque chose de si simple et évident ( straightforward) aurait besoin de quelque chose de si comlexe ou considéré comme tel qu'une architecture ?! Eh bien, comme nous l'avons vu, la simplicité du CSS, son laxisme, son caractère ingérable signifient que la meilleure manière de le gérer (lire, de le dompter) quel que soit l'échelle est au travers d'une architecture stricte et spécifique. Une architecture solide peut nous aider à contrôler la spécificité, renforcer les conventions de nommage, gérer l'ordre de nos sources, créer un environnement de développement sain, et de manière général gérer nos projets CSS de manière bien plus consistente et confortable.

Il n'existe aucun outil, préprocesseur, boule magique qui rendrons votre CSS meilleur tout seuls : le meilleur outils d'un développeur lorsqu'il travaille avec une syntaxe aussi maléable est l'autodiscipline, la consciencieusité, l'application et une architecture bien définie qui favorisera l'application de ces traits.

Les architectures sont des collections larges, englobantes, principle-led de plus petites conventions qui viennent ensemble pour fournir un environnement maîtrisé ou le code est écrit et maintenu. Les architectures sont typiquement d'assez haut niveau, et laissent des détails d'implémentation — comme les conventions de nommage, la syntaxe ou le formatage, par exemple — à la charge des développeurs.

La plupart des architectures sont basées autours de design patterns existantes et de paradigmes, et le plus souvant, ces paradigmes sont le fait des chercheur en informatique et d'ingénieurs. Bien que le CSS ne soit pas du ‘code’, et ne montre pas nombre de traits communs avec la programmation, il se trouve que nous pouvons appliquer certains principe de celle-ci à notre travail. Dans cette section, nous allons jeter un œil à certain de ces design patterns et paradigmes, et à comment nous pouvons les réutiliser dans notre code — et augmenter la réutilisation du code — dans nos projets CSS.