/ Accueil / English
Indentation

Indentations espacées VS indentations tabulées

Les nouveaux programmeurs négligent souvent l’indentation et la mise en forme de leur code. Davantage confondant, les pratiques et normes recommandées varient souvent d’un milieu de travail à un autre. Une simple recherche Google concernant les bonnes pratiques d’indentation nous permet de remarquer que cette question en soulève un bon nombre d’autres qui se rattachent plus à l’aspect philosophique de la profession :

Comment puis-je devenir un meilleur programmeur?  Quel est le but des conventions de programmation?
Comment puis-je devenir un meilleur programmeur?
Quel est le but des conventions de programmation?

Ces questions sont excellentes. À défaut d’y répondre ici, elles viennent tout au moins soutenir le niveau d’importance qu’a l’indentation dans la profession.

Souvent, c’est le caractère d’espacement qui est utilisé pour faire l’indentation du code. Cette pratique est répandue et plusieurs interfaces de développement remplacent même automatiquement l’insertion de caractères de tabulation(insérés en appuyant sur la touche « Tab ») par un nombre définit de caractères d’espacements. Par exemple, en appuyant sur la touche de tabulation « Tab », c’est 4 ou 5 espaces qui seront automatiquement insérés afin d’espacer le code.

Par exemple, en appuyant sur la touche de tabulation « Tab », c’est 4 ou 5 espaces qui seront automatiquement insérés afin d’espacer le code.
Par exemple, en appuyant sur la touche de tabulation « Tab », c’est 4 ou 5 espaces qui seront automatiquement insérés afin d’espacer le code.

À première vue l’indentation sert à rendre le code plus aisément lisible pour les programmeurs, donc que ce soit via le caractère d’espacement ou la tabulation, on pourrait croire que c’est d’une importance marginale. Cependant, la préconception que l’indentation du code n’a un impact que sur le développeur est erroné.

La préconception que l’indentation du code n’a un impact que sur le développeur est erronée
La préconception que l’indentation du code n’a un impact que sur le développeur est erronée

En fait, même si 4 caractères d’espacement correspondent en apparence à 1 caractère de tabulation, c’est effectivement 4 octets qui sont ajoutés au fichier lors de l’insertion de 4 espaces, au lieu d’un seul octet dans le cas de l’usage du caractère de tabulation. Par exemple, en convertissant les caractères d’indentation du code par des tabulations dans un fichier PHP de 424 lignes, celui-ci est passé de 11778 octets à 9903 octets. Ceci est un gain marginal de 16% au niveau de l’espace disque. Le gain varie évidemment selon le fichier source, mais selon mon expérience le gain se situe invariablement entre 10% et 25%; un gain considérable, ne serait-ce que pour l’économie d’espaces dans le cadre d’un projet Web où l’espace disponible sur le serveur n’est pas illimité.

On pourrait croire que les performances de la compilation du code PHP serait impactée de manière considérable par l’usage de caractères d’espacement pour l’indentation, mais en réalité, le processeur PHP enlève tout les caractères d’espacement(espaces, tabulations, retour de chariot, etc.) du code avant la compilation. Il y a une différence, mais elle est très marginale, surtout si vous utilisez un système de caching.

Ci-illustré l’ensemble des ressources envoyées au navigateur lors du chargement d’une page simple comme la page d’accueil de Google.
Ci-illustré l’ensemble des ressources envoyées au navigateur lors du chargement d’une page simple comme la page d’accueil de Google.

De manière plus importante, dans le cas de projets Web, ce sont les ressources envoyées aux utilisateurs qui ont le plus d’impact. Lorsqu’un utilisateur demande à voir une page, ce sont plusieurs fichiers html, CSS, javascript, etc. qui sont envoyés au navigateur. Ces fichiers représentent de la bande passante et du temps de chargement du côté de l’utilisateur. C’est là que la perte de performance peut être la plus grande.

Plus haut, nous avons mentionné que certaines interfaces de développement indentent automatiquement en utilisant des caractères d’espacement. Dans bien des cas, ceci est une préférence que vous pouvez changer aisément en fouillant dans les options de configuration. Certaines interfaces proposent de convertir les indentations espacées en indentations tabulées. Sublime Text a cette option bien à vue, en tout temps, dans l’indicateur au bas de l’interface.

Si vous désirez compresser d’avantage les ressources envoyées aux utilisateurs, sachez qu’il existe en ligne des outils de minification des ressources CSS et Javascript.

Aidez la communauté des développeur en adressant vos questions et suggestions dans la zone de commentaires qui suit. Bonne optimisation de code à tous!

Auteur.e de l'article

David Barbier

Shaman programmeur
David est un passionné qui ne perd pas une minute. À peine sont DEC d’informatique en poche, obtenu avec brio en 2004, il commence sa carrière de programmeur web et PHP. Toujours à l’affût de nouveautés technologiques, il ne cesse d’apprendre et d’engranger de nouvelles compétences afin de proposer ce qui se fait de mieux à nos clients. Rien n’arrête David. Plus le défi à relever est important, plus il y prend de plaisir. Son enthousiasme permanent est un stimulant contagieux pour le reste de l’équipe!

À découvrir sur notre blogue

2016-12-19

CakePHP : soumettre un formulaire en Ajax et retourner les erreurs de validations

Gilles Duquerroy / Flexocodeur

Exemple de code pour soumettre un formulaire avec CakePHP en utilisant Ajax et avoir un retour des erreurs de validation.

Lire la suite
2017-03-17

SQLite pour vos projets PHP

David Barbier / Shaman programmeur

Nous discuterons spécifiquement de SQLite, ses particularités, ses avantages et quelques cas dans lesquels sont usage est pertinent ou souhaitable.

Lire la suite
2016-11-22

Marier SVG & Javascript

David Barbier / Shaman programmeur

SVG (Scalable Vector Graphics / Graphiques vectoriels redimensionnables) est une spécification du W3C qui date déjà de 2001.

Lire la suite
2018-07-17

La publicité LinkedIn – Une opportunité en or pour le B2B

Antonin Chabannes / Spécialiste en publicité internet

Après Google Adwords et Facebook Ads, penchons nous sur la publicité LinkedIn. Découvrez le fonctionnement de cette incroyable plateforme PayPerClick B2B.

Lire la suite

Laisser un commentaire

Votre adresse courriel ne sera pas publiée. Les champs obligatoires sont indiqués avec *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.