Home / Fr 🇫🇷 | En 🇬🇧 / Documentations Fr / Base Gmod / La minification (Optimisation)

La minification (Optimisation)

🇫🇷 🇬🇧

imgNorda Creator of this doc
Document Updated ago
Par défaut mes scripts n'ont pas d'indentation une fois téléchargé via le site, je compte mettre une option qui permet de télécharger les scripts originaux indentés afin de laisser le choix à l'utilisateur de mettre la main sur un code plus facile à lire, mais par défaut le code sera toujours minifié.

La minification est un code allégé de contraintes inutile à son bon fonctionnement, augmentant le poids d'un fichier. La beauté d'un code prend de la place, un code n'est pas juste fait pour paraitre esthétique, mais pour fournir un service qui fonctionne, une meilleure performance et un meilleur référencement quand cela s'applique au web.

Le fait de ne pas minifier un code peut avoir du sens si plusieurs personnes travaillent dessus car cela permet à cette équipe d'y voir clair et d'avoir une meilleure organisation.

Ici, il faut prendre conscience que le code est convertie seulement au moment du téléchargement. Et cela ne m'a jamais posé problème au niveau de la maintenabilité du code source et aux nombreuses mise à jours que je publie chaque semaine.

Pour donner un exemple de comparaison, le poids de mon gamemode terminé est plus optimisé qu'un seul addon lambda. Grace à la minification complète du code source. Pourtant il est extrêmement complet et contient aussi un système d'administration unique au sain de son code source, 540 objets différent tous utile. Et 0 addon.
7 secondes et le temps de chargement malgré les 300 npcs sur la map sur chargé, les milliers de véhicules conductible et les objets présent. (ce que je conseil de ne pas faire, mais l'optimisation de la totalité de mes entités me permet de garder un serveur fluide)

En web, un code non minifié est à mon sens un code non terminé.

Sommaire:
  1. Introduction
  2. Exemple de code minifié
  3. Questions fréquente
  4. Comment réduire le temps de chargement des utilisateurs quand ils rejoignent un serveur Gmod


1. Introduction

Les serveurs Gmod souffrent beaucoup des chargements lorsqu'il y a beaucoup de scripts et beaucoup d'addons, les utilisateurs mettent beaucoup de temps pour rejoindre un serveur et parfois se découragent avant la fin du chargement. Réduire ce temps pourrait permettre d'éviter qu'ils quittent avant la fin du chargement, cette méthode appliqué à tous vos scripts n'est pas à négliger.



En programmation, la minification signifie réduire la taille du code pour réduire la taille d'un programme à télécharger depuis un serveur et ainsi réduire l'encombrement du réseau, sur Gmod la taille d'un fichier Lua coté client s'il est minifié sera plus rapide à télécharger. Cela fait partie des nombreuses règles d'optimisations existantes.

Pour cela on supprime tous les commentaires inutiles et les caractères. Ces suppressions ne gêneront aucunement le bon fonctionnement de l'application. Le module de téléchargement remplacera aussi le nom des variables internes local à l'application pour les réduire à un seul ou deux caractères de façon automatisé. Il est aussi possible d'utiliser certaines écritures compactes propres aux langages (couleur en hexadécimal, raccourcis...)
Ce processus est très utilisé en programmation web et surtout très recommandé.

2. Exemple de code minifié

Exemple 1: Code non minifié
Code non minifié
local function my_supermegahyper_test ( Player , Argument , NUMBER )

local firstnumber = NUMBER[1] ;
return firstnumber * 2;
end
concommand.Add( "give_me_double" , my_supermegahyper_test )



Exemple 2: Code minifié
Code minifié
local function test(a,b,c)return c[1]*2 end

concommand.Add("give_dbl",test)



3. Questions fréquente

Question : Qu'est ce que la minification?
Réponse : La minification est une optimisation de la taille de fichier en supprimant les caractères inutiles sans impact sur le bon fonctionnement du script. Suppression également des espaces inutiles et de l'indentation.

Question : Qu'est ce que l'indentation?
Réponse : L'indentation consiste à ajouter une ou plusieurs tabulations au début de certaines lignes d'un programme afin de le rendre plus lisible.

Question : Est ce que retirer l'indentation change quelque chose au fonctionnement?
Réponse : Et bien, non.

Question : Est ce que retirer l'indentation pose problème au niveau de la maintenance?
Réponse : Non, ceux qui ont expérimenté mon support apprécie toujours ma réactivité. Mon code source de mon coté pour travailler n'est pas la version minifié. Et au pire quand il y a une erreur à la ligne 2 du fichier init.lua. Et bien faut s'attendre à ce qu'il n'y ai pas besoin de chercher plus.

Question : D'où vient la minification?
Réponse : La minification est une forme d'optimisation en web recommandé par Google pour réduire les temps de chargement des sites au maximum et au strict nécessaire pour fonctionner.

Question : Tu parles de faire télécharger des fichiers moins lourd mais il y a des variables qui existent dans tes addons qui semble ne pas être utilisé dans le code, pourquoi?
Réponse : Cela pouvait être le cas avec les scripts de 2015 à 2017 quand j'étais sur Gmodstore. Beaucoup répandu par le leak de mes scripts. Aujourd'hui si une variable vous semble inutile c'est que vous faite erreur de considérer qu'ils ne peuvent pas fonctionner en combinaison avec d'autres de mes produits qui eux auront besoin de ses variables pour bien fonctionner.

Question : Pourquoi avoir fait ce choix?
Réponse : J'ai fait ce choix par défaut pour réduire la taille des fichiers. Des fichiers plus petits prennent moins de place dans le cache généralement stocké dans la mémoire, et téléchargé par le client à sa connexion, donc un choix qui impacte le temps de chargement pour les fichiers Lua car moins de fichiers Lua volumineux à télécharger pour vos utilisateurs, choix que j'applique aussi ici sur ce site et qui paye en performances. On sait tous qu'un utilisateur quittera plus facilement une page si son temps de chargement est trop long. Testez ce site sur Google speed par exemple en comparaison avec un autre site (sans viser personne) qui est une référence pour vous, vous comprendrez de quoi je parle.

4. Comment réduire le temps de chargement des utilisateurs quand ils rejoignent un serveur Gmod

Comment réduire le temps de chargement de mes utilisateurs sur mon serveur Gmod / DarkRP ou autre gamemode?


- Réduire le nombre d'addons workshop au strict nécessaire à votre projet, ne faite pas télécharger du contenu superflue et inutile, le plus long du temps de chargement il est là, les addons workshop.
- Installez des scripts téléchargé depuis des sources proposant une version minifié! Ici on réduira la taille des fichiers Lua téléchargé.
- Ne surchargez pas vos maps d'entités mal optimisées.

La minification n'est pas la méthode ultime et micracle pour optimiser votre serveur si vous tournez avec 200 addons workshop, c'est seulement qu'une étape.
Appliquer la minification sur tout un programme donne un résultat qui n'est pas négligeable surtout si celui ci est téléchargé lors de la connexion de chaque utilisateur.
Cette méthode est utilisé pour réduire le temps de téléchargements dans beaucoup de langages.