SLOC signifie Source Lines of Code, ou lignes de code source, mais désigne une famille de mesures et non un total universel. Le compte physique suit les lignes de texte ; le compte logique suit les constructions du langage. SourceTally compte délibérément les segments physiques terminés par LF, CRLF ou CR, plus le dernier segment non terminé, et sépare les lignes composées d’espaces. Il ne présente pas ce total comme un SLOC sans commentaires ni comme un SLOC logique.
Une définition utile du SLOC doit préciser la règle
Avant de comparer deux valeurs SLOC, précisez s’il s’agit de lignes physiques ou d’instructions logiques et si les lignes vides, commentaires, fichiers générés, tests, dépendances tierces et fichiers en échec sont inclus. Notez aussi l’outil et sa version. Sans ces choix, la même étiquette décrit des populations différentes et les totaux ne sont pas comparables.
Le formatage peut changer le SLOC physique sans changer l’instruction
La déclaration const total = price * quantity; occupe une ligne physique et constitue une instruction logique. Si elle est coupée après le signe égal et avant le point-virgule, elle occupe trois lignes physiques non vides tout en restant une seule déclaration. Le compteur physique doit refléter ce formatage ; le compteur logique a besoin de la grammaire JavaScript pour reconnaître la construction inchangée.
Les lignes physiques décrivent la mise en page
Une instruction peut occuper une ligne ou vingt après formatage. Un bundle minifié peut contenir beaucoup de comportement sur une ligne. Documentation, configuration, jeux de test, clients générés et données peuvent ajouter des milliers de lignes sans logique nouvelle. Utilisez le total comme inventaire, pas comme classement des compétences.
La SLOC logique exige une grammaire
Une ligne logique vise les constructions du langage, pas les rangées visuelles. Points-virgules, indentation signifiante, expressions multilignes, macros, modèles, langages embarqués, chaînes et préprocesseur rendent la définition propre au langage. SourceTally ne présente pas un découpage de texte comme un compte logique universel.
Comparez des exécutions équivalentes
Notez commit ou instantané, exclusions, échecs, encodage, choix des fichiers générés et version. Une différence n’a de sens qu’à conditions égales. Davantage de lignes peut signifier tests, validation, documentation, interfaces générées ou duplication. Traitez le nombre comme signal d’inspection, jamais comme objectif isolé.
Les commentaires exigent un contexte lexical
Les mêmes caractères peuvent ouvrir un commentaire, figurer dans une chaîne, une expression régulière ou un langage embarqué. Un bloc traverse chunks et lignes. La documentation peut être source et documentation. Une séparation fiable exige des lexers et politiques révisés ; la première version montre total, vides et non vides.