Grands mots ou phrases de programmation

Protecteur de pocheTravaillant avec des programmeurs exceptionnels, je me retrouve souvent en réunion avec des architectes, des responsables et des développeurs qui (je pense) adorent lancer des mots ou des phrases importants pour essayer d'effrayer les chefs de produit ou leurs clients.

C'est une de ces choses que les programmeurs aiment faire. En voici dix avec une description très simple (qui attirera sans aucun doute la colère des développeurs du monde entier alors que je pirate à mort leur terminologie avec mes simples métaphores de voiture):

  1. Abstraction - cela prend un processus ou une fonction difficile et le décompose fondamentalement de manière logique… soit par hiérarchie (A appartient à B, B appartient à C, etc.) soit par caractéristique ou fonction (couleur, taille, poids, etc.). L'abstraction facilite la programmation orientée objet en organisant la fonctionnalité de manière logique. Pour construire ma voiture, je construis un cadre, un moteur et une carrosserie séparément.
  2. Désapprobation – cela signifie qu'il y a un ancien code dans le système qui peut rester mais doit être supprimé progressivement. Lorsque le code est obsolète, les programmeurs ne référencent pas le code ou n'utilisent pas de code plus récent jusqu'à ce que toutes les références soient supprimées de l'ancien, moment auquel il doit être supprimé. Parfois, si c'est une fonctionnalité qui disparaît, vous pouvez la conserver pendant un certain temps en avertissant vos utilisateurs qu'elle disparaît. Je reçois un nouveau système stéréo avec un nouveau câblage mais je laisse l'ancien câblage et ne l'utilise pas.
  3. Encapsulation – c'est le processus d'organisation de vos fonctions de programmation au sein d'un parent lorsque la fonction n'atteint aucune autre partie du système. Si vous avez des millions de fonctions, vous voulez qu'elles soient organisées et fonctionnelles efficacement dans les domaines qu'elles opèrent plutôt que de les avoir disponibles dans le monde entier. Je mets la mécanique de soutien du moteur dans le compartiment moteur… Je ne mets pas le filtre à huile sur la banquette arrière.
  4. Héritage - c'est la possibilité de reprendre les propriétés d'un autre morceau de code commun (une classe) afin de le réutiliser pour de nouvelles fonctionnalités sans avoir à le réécrire. L'héritage est une autre bonne pratique de développement orienté objet. Mon siège auto peut être utilisé pour transporter un enfant ou un adulte - quiconque y est assis.
  5. Normalisation - c'est la méthode pour organiser plus efficacement les données dans une base de données en construisant des références. Un exemple serait si je devais enregistrer des feux de signalisation toute la journée… rouge, jaune et vert. Plutôt que d'écrire chaque enregistrement avec du rouge, du jaune et du vert - j'écris 1, 2 et 3, puis je crée un autre tableau où 1 = rouge, 2 = jaune et 3 = vert. De cette façon, je n'enregistre qu'une seule fois le rouge, le jaune et le vert. Chacune de mes portes de voiture a la même poignée de porte. Une poignée, utilisée à 4 endroits différents plutôt que 4 poignées différentes.
  6. Orienté objet - dans les langages de programmation modernes, il s'agit d'une méthode de conception qui vous permet d'écrire du code spécifique en morceaux, par fonctionnalité, puis de les réutiliser. Un exemple serait si je voulais vérifier une adresse e-mail correctement construite. Je pourrais créer la fonction une fois, puis l'utiliser partout où j'en ai besoin dans mon application. Ma voiture a des jantes de 18 pouces qui peuvent être utilisées sur d'autres voitures du même fabricant ou d'autres fabricants.
  7. Polymorphisme – Celui-ci est difficile à expliquer, mais fondamentalement c'est la capacité de développer du code qui peut être utilisé dynamiquement pour d'autres situations. En d'autres termes, il peut hériter de fonctionnalités uniques et dynamiques simplement par la manière dont il est référencé. C'est un moyen de développement très efficace. Je peux utiliser la prise électrique de ma voiture pour recharger mon téléphone ou pour alimenter ma pompe à pneus.
  8. Récursivité – c'est une méthode où le code se référence lui-même. Parfois, c'est efficace et intentionnel, mais d'autres fois, cela peut entraîner une spirale incontrôlable de vos applications. Je clique sur rechercher sur mon autoradio et il passe en boucle dans les stations de radio. Ça ne finit jamais, ça continue.
  9. Refactoring - c'est le processus de réécriture du code pour le rendre plus facile à suivre ou pour mieux l'organiser mais pas nécessairement pour ajouter des fonctionnalités supplémentaires. Je reconstruis mon moteur.
  10. Architecture orientée serveur (SOA) - prenez la programmation orientée objet et appliquez-la à de grands systèmes où vous pouvez avoir des systèmes entiers qui exécutent certaines fonctions. Vous pouvez avoir un système de gestion de la relation client qui parle d'un système de commerce électronique qui parle d'un système d'expédition, etc. Je tire une remorque avec ma voiture pour expédier des articles d'un endroit à un autre. J'utilise un attelage de remorque (XML) pour les connecter.

Je me rends compte que mes métaphores n'étaient pas toujours parfaitement ciblées. J'espère qu'ils ont aidé un peu, cependant!

Quelques conseils lorsque vous entendez ces mots lors de votre prochaine rencontre avec un développeur… ne retournez pas à votre siège et cherchez-les Wikipédia, ils regarderont. Ne bronchez pas, ils attaqueront. Voici ce qu'il faut faire… méditez par la fenêtre comme si vous étiez dans une profonde réflexion, puis regardez en arrière avec un regard inquisiteur ou grattez votre menton. Attendez qu'ils donnent suite à leur déclaration avec plus d'informations.

… Ils regardent.

8 Commentaires

  1. 1

    LOL tu as vraiment réussi Doug 🙂 Essayez-vous de nous mettre en faillite? Vous savez très bien que nous misons sur ces concepts ne pas être compris et donc avoir notre chemin avec les clients. Maintenant, nous devons trouver un moyen de les faire exploser combinant ces mots à la mode pour créer une phrase géante qui pourrait ressembler à ceci:

    Eh bien, vous savez que la fonctionnalité que vous essayez de mettre en place peut être abstraite à plusieurs objets qui encapsulent la fonctionnalité et communiquent via un architecte orienté services.

  2. 5

    En tant que développeur de logiciels, je peux apprécier cet article. Nous ne sommes pas si mal que ça 😉 Je ne ferais jamais bander les gens avec un tel babillage techno 🙂

    Laissez-moi essayer et imaginer quelques mots supplémentaires pour vous….

Que pensez-vous?

Ce site utilise Akismet pour réduire les spams. Découvrez comment sont traitées les données de vos commentaires..