7 techniques de programmation qui font tranquillement de vous une élite
Agence web » Actualités du digital » 7 techniques de programmation qui font tranquillement de vous une élite

7 techniques de programmation qui font tranquillement de vous une élite

La programmation nécessite un ensemble de compétences variées, du codage de bas niveau à des tâches de haut niveau comme la communication. Les conseils suivants m'ont aidé à m'améliorer au cours de ma carrière de programmeur.

Évitez une optimisation prématurée

Les débutants écrivent du code inefficace et les programmeurs avancés écrivent du code optimisé. Mais les vrais experts savent quand optimiser leur code et quand ne pas le faire.

En vérité, il n'existe pas vraiment de « code optimisé » : le code peut être optimisé pour la vitesse, pour l'utilisation de la mémoire ou pour plusieurs autres facteurs. Mais lorsque nous parlons d’optimisation prématurée, nous parlons généralement de tentatives d’optimisation pour la vitesse, ce qui entraîne généralement un coût différent.

Le coût peut être lié à l'utilisation de la mémoire, à la taille de votre programme ou à la conception et à la maintenabilité globales du programme. L'optimisation nécessite souvent des techniques beaucoup plus difficiles à maîtriser que l'alternative, ce qui peut rendre le code plus difficile à comprendre pour les autres, voire déroutant pour vous à l'avenir !

Essayez d'éviter d'optimiser votre code trop tôt dans son cycle de vie ; évitez au moins d’en faire le point central. Testez votre code, mesurez ses performances et comprenez quelles parties de celui-ci peuvent bénéficier d'une optimisation.

Collaborer avec les autres

La plupart des façons dont vous pouvez vous améliorer en tant que programmeur impliquent, dans une certaine mesure, la collaboration. Même si vous travaillez entièrement seul sur une base de code, vous devrez collaborer avec d'autres versions de vous-même : le vous qui est fatigué, qui passe d'un autre projet, ou qui a plus de connaissances que le vous actuel.

Mais les bonnes pratiques ne sont pas uniquement une question d’intérêt personnel : la grande majorité des programmeurs finiront par travailler sur du code avec d’autres, à un moment donné.

Travailler ensemble est une compétence générale complexe, alors ne vous sentez pas mal si cela vous semble difficile au début.

Qu'il s'agisse de programmation en binôme, de travail avec un responsable de projet sur GitHub ou d'utilisation d'un assistant IA, la pratique rend parfait. Vous apprendrez à accepter les suggestions des autres, à expliquer votre propre approche et à respecter les opinions divergentes.

Ce n’est pas seulement une compétence générale. Des outils comme GitHub et Slack peuvent faire une grande différence, surtout si vous en tirez pleinement parti. Être capable d'écrire du code (ou de la prose) clairement compréhensible peut faire de vous un ajout précieux à n'importe quelle équipe.

En matière de programmation, vous n'êtes jamais à court d'outils pour apprendre. Qu'il s'agisse de principes fondamentaux, tels que votre langage et votre pile technologique, ou de petits utilitaires qui facilitent le déroulement de votre journée, vous devez toujours être à la recherche d'une aide supplémentaire.

Cette technique ne consiste même pas nécessairement à utiliser les meilleurs outils, mais à les utiliser de la meilleure façon. Au lieu de vous inquiéter de votre choix entre Vim et VSCode, choisissez-en un (après avoir fait vos recherches !) et apprenez à bien le connaître. Vraiment bien.

Je me souviens encore à quel point il était instructif de voir un collègue, un maître Vim, au travail, au début de ma carrière. Ils parcouraient les fichiers avec facilité, naviguant d'une manière que je ne pouvais même pas comprendre, apportant des changements radicaux en appuyant simplement sur une touche. Et ce n'était rien comparé au collègue qui utilisait Emacs !

Trouver un outil qui fait de vous un meilleur programmeur est passionnant car il est souvent bon marché et vous offre une mise à niveau instantanée et permanente.

Écrire des programmes de taille appropriée

La philosophie Unix stipule que le logiciel doit « faire une chose et bien la faire ». Cette approche ne dépend pas d'Unix, vous pouvez donc l'appliquer n'importe où ailleurs et vous en retirerez probablement des avantages.

L'écriture de programmes plus petits signifie qu'ils sont plus faciles à maintenir et peuvent vous aider à accomplir un plus large éventail de tâches. Vous pouvez combiner de petits outils pour travailler ensemble, en utilisant des fonctionnalités telles que les tuyaux et la redirection, ce qui contribue à réduire la dépendance à l'égard d'une application monolithique.

Résoudre le problème actuel

Le problème que vous essayez de résoudre est étroitement lié à la taille du programme. Parfois, vous pouvez influencer cela en décomposant la tâche en parties plus petites et en résolvant chacune avec un programme distinct.

Souvent, cependant, vous aurez une tâche clairement définie, mais les détails peuvent influencer votre concentration. Il est facile de viser soit de manière trop spécifique, soit de manière trop générale. La première approche peut donner lieu à un code trop étroitement lié à un seul problème, qui est alors difficile à adapter si le problème évolue. Cela peut conduire à des réécritures coûteuses, qui non seulement demandent du temps et des efforts, mais augmentent également le risque d'introduction de bogues.

Pendant ce temps, une généralisation excessive du problème peut créer une tâche qui va bien au-delà de ce dont vous avez réellement besoin. Il est tentant de continuer à généraliser, en essayant de résoudre un défi de plus en plus utile ou intéressant, et de finir par travailler sur un « programme pour résoudre tous les problèmes », ce qui est très éloigné de votre véritable priorité.

Écrire des fonctions de la longueur appropriée

Dans le même esprit, les éléments constitutifs de votre code (les fonctions) doivent également être d'une longueur raisonnable. Nous avons tous dû faire face à des programmes constitués d'une seule fonction géante, et ils sont beaucoup plus difficiles à suivre, à raisonner et à modifier.

À l’inverse, il est possible d’aller trop loin : si chaque fonction n’est qu’une seule instruction, vous vous retrouverez avec un code tout aussi confus et déroutant que l’extrême opposé.

Personnellement, j'aime une fonction qui tient sur un seul écran, afin que je puisse revoir tout ce qu'elle fait sans faire défiler d'avant en arrière. Je trouve que c'est généralement une ligne directrice utile pour garder les fonctions gérables, même si cela dépend évidemment de la taille de votre écran, de la taille de la police et de la longueur de la ligne, entre autres facteurs. Certains langages, par exemple, se prêtent à un code plus verbeux ou concis, alors assurez-vous de faire preuve de votre propre jugement.

Savoir écrire une fonction pure

En ce qui concerne les fonctions, la seule chose qui m'a fait apprécier plus que tout le code bien écrit est l'utilisation de fonctions pures.

Une fonction pure est, en termes simples, une fonction qui ne fait rien d'autre que renvoyer une sortie cohérente. Voici un exemple :

int max(int a, int b)
{
    return a > b ? a : b;
}

Cette fonction renvoie uniquement une valeur, et chaque fois que vous appelez max(1, 2), vous obtiendrez le même résultat. En revanche, voici un exemple de fonction impure :

function print_random(array) {
    const n = array.random();
    console.log(n);
    return n;
}

Ce code a un effet secondaire : il s'imprime sur la console et il peut renvoyer des résultats différents, même avec la même entrée.

Les fonctions pures sont beaucoup plus faciles à combiner car elles sont plus prévisibles. Ils sont également beaucoup plus faciles à tester, puisque vous pouvez vérifier leur résultat attendu. Cela ne signifie pas que chaque fonction que vous écrivez doit (ou même peut) être pure, mais vous devez rechercher des opportunités pour purifier votre base de code et la rendre plus fiable.

★★★★★