Sélectionner une page

Personnellement, je connais des développeurs qui ont beaucoup de talent et qui peuvent créer de superbes applications avec peu ou pas de difficulté. En raison de ces personnes douées, l’industrie du développement d’applications est pleine d’attentes élevées. Mais la triste vérité est: tout le monde n’est pas super développeur interplanétaire.

Et c’est exactement ce que je suis: un développeur médiocre. Cet article vous aidera à survivre dans l’industrie si vous n’êtes pas un génie. 🤓

Je google tout le temps même les choses les plus simples

Je ne me souviens pas de beaucoup de choses. Comme les fonctions et les méthodes des bibliothèques standards, les positions d’arguments, les noms de paquet, les codes boilerplates etc.

Je google en permanence. Et je le fais tous les jours. Je réutilise aussi le code des anciens projets. Parfois, je copie même des réponses de StackOverflow ou Github. Ma méthode s’appelle le StackOverflow Driven Development. 😆

Mais je ne suis pas seul. Beaucoup d’autres développeurs le font aussi. Il y a une discussion populaire sur Twitter qui a été lancée par le créateur de Ruby on Rails et auteur de Rework un bouquin que j’adore.

Pourquoi est-ce mauvais ? 🤔 Parce qu’il y a plusieurs inconvénients:

  1. Cela peut vous faire copier de mauvaises implémentations d’algorithmes ou le code vulnérable d’autres personnes
  2. Cela forme un état d’esprit spécifique: si nous ne pouvons pas googler quelque chose c’est la fin du monde
  3. Quand Internet va tomber, nous ne pourrons plus travailler

Mais, je ne pense pas que ce soit un gros problème. 😋 Il peut même servir d’arme secrète. ✊🏾 J’ai quelques conseils à vous partager pour diminuer les effets négatifs si comme vous êtes comme moi.

Comment survivre ?

  1. Utilisez un IDE pour obtenir l’auto-complétion et des suggestions, comme cela vous n’aurez pas à googler les  b.a.-ba d’un langage de programmation
  2. Rappelez-vous où (pas comment) vous avez déjà résolu ce problème. Vous pourrez toujours chercher la solution
  3. Tout le code que vous collez dans le projet doit être analysé, débuggué et revu plus tard. De cette façon, vous ne nuirez pas au projet avec du mauvais code, et vous bénéficierez d’une solution rapide

Je garde les choses simples

Les machines font toujours ce qu’elles doivent faire. Parfois, on leur dit tout simplement de faire la mauvaise chose. Ainsi, le principal problème dans le développement d’applications n’est pas les machines, mais la capacité mentale des développeurs. Et çà, c’est très limité. Ainsi, nous — les développeurs médiocres — ne pouvons pas la gaspiller pour créer des abstractions complexes, des algorithmes obscurs ou des blocs de code longs illisibles. Gardez les choses simples.

Mais comment pouvons-nous dire qu’un code est simple ou complexe ? Nous devons utiliser la méthode WTFs / Minute pour mesurer la qualité du code.

Le principe est très facile et clair à comprendre. Chaque fois que vous trouvez quelque chose dans le code que vous ne comprenez pas, c’est trop complexe. Que pouvez-vous faire ?

  1. Réécrivez-le pour avoir un design propre
  2. Fournissez une documentation
  3. Ajoutez des commentaires aux parties les plus délicates. Mais rappelez-vous, que les commentaires sont à votre code ce que le maquillage est aux dames.

Comment écrire des choses simples:

  1. Utilisez des noms corrects pour les variables, les fonctions et les classes
  2. Assurez-vous que chaque partie de votre programme ne fait qu’une chose
  3. Préférez les fonctions pures aux fonctions régulières
  4. Préférez les fonctions régulières aux classes
  5. N’utilisez les classes uniquement quand c’est indispensable

Je n’ai pas confiance en moi 😑

Certains développeurs ont prouvé qu’ils fournissaient du code de haute qualité. Comme cette femme: Margaret Hamilton, ingénieur logiciel principal du projet Apollo. Dans cette image, elle se tient à côté du code qu’elle a écrit pour la mission de la lune:

Mais, chaque fois que j’écris un code, je ne me fais pas confiance. Je peux très mal faire les choses même dans les parties les plus faciles du projet. Cela peut inclure:

  1. des erreurs de langage
  2. des erreurs logiques
  3. des erreurs de conception
  4. des erreurs de style
  5. des erreurs de sécurité
  6. des erreurs WTF (mes favoris de tous les temps!) 😂

Il n’y a pas de livre de magie sur comment “apprendre à écrire du code sans bug”: c’est parfaitement normal. Tous les logiciels ont des bugs. Sauf ce framework cependant 😁. Deal with it !

Comment survivre ?

  1. Écrivez des tests. Ecrivez beaucoup de tests. À partir des tests d’intégration jusqu’aux tests unitaires. Exécutez-le dans l’environnement d’intégration continue avant chaque requête pull. Cela vous protégera de certaines erreurs logiques.
  2. Utilisez le typage statique. Par exemple, utilisez mypy avec python et flow avec javascript. Effets positifs: conception plus propre.
  3. Utilisez des vérificateurs de style automatisés. Il y a des tonnes de vérificateurs de style pour chaque langage de programmation.
  4. Utilisez des contrôles de qualité. Certains outils exécutent des algorithmes heuristiques complexes sur votre base de code pour détecter différents problèmes comme cette ligne a trop de conditions à l’intérieur, cette classe n’est pas nécessaire, cette fonction est trop complexe
  5. Passez en revue votre code. Vérifiez-le avant de fusionner avec votre branche master. Et parfois après la fusion
  6. Payez d’autres personnes pour auditer votre code. Cette technique a une énorme influence positive! Parce que lorsque les développeurs regardent votre code pour la première fois, il leur est plus facile de repérer les incohérences et les mauvaises décisions de conception

Cela ne devrait pas seulement fonctionner sur mon ordinateur

Lorsqu’avec des gars on a développé notre premier gros projet de logiciel il y a quelques années, nous l’avons envoyé sous forme de fichiers source java. Et il a échoué à compiler sur le serveur cible. C’était quelques heures avant la présentation au client. C’était un gros échec ! 😭

Heureusement que nous avons réussi à le faire fonctionner, mais c’était une expérience qui a changé ma vie.

Cela s’est produit parce qu’il y avait beaucoup de configuration et beaucoup de complexité dans le pipeline de build. Et nous ne pouvions pas gérer correctement la complexité de ce système. Depuis ce jour pour réduire la complexité de cette étape, j’essaie de packer mes programmes dans des environnements isolés pour les tester avant le déploiement réel.

Ces dernières années avec la montée de docker (et des conteneurs en général), c’est devenu aussi facile que jamais. Docker vous permet d’exécuter le développement, les tests et la production dans le même environnement isolé. Donc, vous ne passerez jamais à côté de choses importantes en cours de route.

En parlant de moi, j’oublie toujours quelque chose en créant des serveurs, en les configurant au départ ou en les reliant entre eux. Il y a tellement de choses à garder en tête ! 🤦🏾‍♂️ Espérons que nous pouvons toujours automatiser. Il existe différents outils géniaux pour automatiser votre processus de déploiement. Tels que: terraform, ansible et packer. Visitez leurs sites webs pour trouver celui dont vous avez réellement besoin pour vos tâches.

J’essaierai également de mettre en place CI / CD dès que possible. Ainsi, je serai avisé si mon build échoue en test ou en déploiement.

Comment survivre ?

  1. Automatisez tout ce que vous utilisez pour le déploiement
  2. Utiliser Docker pour le développement, le test et le déploiement d’applications
  3. Utiliser les outils de déploiement

Une fois l’application déployée, je ne me fais toujours pas confiance

Oh, enfin, mon application est en production. Il fonctionne maintenant. Je peux faire une petite sieste, rien ne va casser. Attends, non! Tout va se casser. Et oui, je dit bien tout.

En fait, il existe des outils pour faciliter la recherche et la résolution des problèmes existants.

  1. Sentry. Lorsqu’une erreur survient pour l’un de vos utilisateurs, vous en serez averti. Il a des liaisons à presque n’importe quel langage de programmation
  2. Différents services et outils pour collecter les journaux de plusieurs processus et serveurs en un seul endroit
  3. Server monitoring. C’est l’endroit où vous pouvez configurer des moniteurs pour les processeurs, les disques, les réseaux et la mémoire. Vous pouvez même repérer le temps nécessaire pour que les utilisateurs rompent réellement votre service.

Pour la faire courte, nous devons surveiller notre application en production. Nous utilisons parfois tous ces outils, ou parfois seulement les parties les plus nécessaires.

Apprendre constamment

Wow, c’est beaucoup de choses à apprendre. Mais c’est comme ça que ça fonctionne. Si nous voulons écrire un bon logiciel, nous devons constamment apprendre à le faire. Il n’y a pas de chemins courts ou de tours magiques. Apprenez simplement à être meilleur chaque jour.

En conclusion, nous devons comprendre deux choses fondamentales:

  1. Les problèmes arrivent à tout le monde. La seule chose qui compte est de savoir à quel point nous sommes prêts pour ces problèmes
  2. Nous pouvons réduire les sources des problèmes à des taux acceptables

Et cela n’a rien à voir avec votre capacité mentale ou votre état d’esprit.

TheGalsenGeek👨🏾‍💻🇸🇳

Partagez cet article: