Quelques termes techniques à savoir pour briller en réunion

Le complément de mon article sur le travail avec des développeurs

Publié le

API (Application programming interface)

Point d’accès, en développant du code autour, pour un applicatif d’accéder à des fonctions interne depuis l’extérieur de l’application. Que ce soit pour prendre ou pousser des données, des ordres. Par exemple Twitter à une API qui permet de fabriquer des Twits avec quelques lignes de code.

Une bonne API permet d’augmenter les fonctions d’une application existante sans devoir intervenir dessus. Quand on interconnecte des API entres elles on peut faire communiquer ensemble des systèmes qui n’ont pas été prévus pour travailler ensemble. Chaque API est plus ou moins bien complète, gratuite, accessible, stable… et pour savoir si une fonction si est disponible il faut regarder dans la documentation.

SDK (Software development kit)

Boîte à outil pour un développeur pour utiliser un logiciel ou un matériel avec du code écris dans cette optique. On trouve des SDK partout : dans Windows, dans Android, avec des cartes Blackmagic, dans des cartes graphiques, dans les codecs MainConcept… C’est parfois le seul point d’accès pour utiliser certains matériels ou logiciels. Si l’API est une extension à une application, le SDK est le point d’accès principal, la télécommande en quelque sorte. Les SDK sont très variés et forcément très dépendants de la techno avec qui ils sont liés.

Agile

Méthode d’organisation du travail du développement logiciel qui, sur le papier, résout tous les problèmes. Après tout, du moment où le travail est fait…

IDE (Integrated development environment)

Logiciel qui aide à écrire du code. L’équivalent de Adobe After Effects ou de Protools pour le développeur. Assez terrifiant pour le néophyte car rempli de plein de machins partout dans des fenêtres surchargées (ne cherchez pas à comprendre… car ça un sens). Quand un développeur l’ouvre devant vous, c’est que les choses deviennent sérieuses.

Pre-prod

Infrastructure logicielle et matérielle pour tester un développement dans les conditions proches de la production. Une preprod parfaite, c’est quand vous pouvez inverser l’infrastructure prod et pre-prod à chaque mise à jour.

Binaire

Code machine exécutable par un processeur, illisible pour les humains. Exemple : un fichier .exe sous Windows ou un .app sous macOS. Il est généré à partir d’un code source (lisible) sous forme de fichier(s) ou en mémoire vive.

Si le code source dépend du langage dans lequel il est écrit, le binaire dépend du système d’exploitation ou de la technologie qui va le lancer. Pour que ça soit clair : il est extrêmement difficile de modifier un binaire, c’est pour cela qu’avoir accès aux sources est important pour l’avenir. De même un binaire Mac n’est pas compatible Windows ou Android. Et vice-versa.

Open source & logiciel libre.

Les définitions ne manquent pas sur le web. On va en prendre une : tout code source écrit qui n’est pas disponible en visualisation et en modification pour tous et sans autorisation préalable n’est pas un logiciel libre.

De fait un logiciel libre ne vous piégera jamais car vous pourrez toujours intervenir (ou le faire faire) sur son code en cas de besoin. Ça peut sembler naïf comme approche, mais sachez que les plus gros du web considèrent de plus en plus que c’est une importante source de business. Linux, Firefox et MyDMAM sont des logiciels libres.

VM (Virtual Machine)

Un ordinateur complet exécuté dans un vrai ordinateur physique comme si c’était un logiciel. La VM ne sais pas qu’elle est une VM et donc une VM peut être de tout type et de tout système d’exploitation. L’intérêt de la virtualisation, c’est d’avoir des gros serveurs qui hébergent plein de VM en même temps ; ça reviendra moins cher que d’acheter, stocker, maintenir, refroidir et alimenter autant de serveurs que vous aurez de VM. La virtualisation permet aussi une reprise en cas de panne, un déplacement de VM entre serveurs sans couper la VM, un backup facilité, un clone de VM, un déploiement automatique… bref, c’est très puissant et très stable : certains vendent des automations et des serveurs de diffusion en virtuel. OVH et Amazon louent des machines virtuelles, et toute la plateforme Netflix est sur des machines virtuelles.

Repository/dépôt/git/svn/Trac/Redmine

Technologies de gestion de code source et plus largement pour certains de gestion de projet de développement. Ce sont des outils pour que les développeurs puissent s’organiser et soient efficaces (un jour, je vous dirai pourquoi un bon développeur doit être feignant et organisé).

Y avoir accès vous permet, même si vous ne comprenez pas tout, de suivre au jour le jour l’activité du projet. On peut même vous donner la possibilité d’agir en vous donnant un accès en écriture. Sachez que le ou les serveurs qui gèrent et stockent cette chose sont le centre névralgique du projet. Celui qui l’a en est le centre. Si c’est sur vos serveurs, c’est mieux.

Pour aller plus loin, Wikipedia est une bonne source d’information. Vous pouvez aussi me poser des questions.