GNU/Linux Magazine Hors-série N°
Numéro
113

Code Legacy ...ou comment maintenir vos vieux codes encore en production

Temporalité
Mars/Avril 2021
Image v3
Code Legacy ...ou comment maintenir vos vieux codes encore en production
Article mis en avant

Résumé

Printemps 2021 : à l’occasion d’un nettoyage de printemps bien nécessaire et maintes fois reporté, Anatole retrouve un disque dur poussiéreux, rangé consciencieusement sur une étagère. Mais pourquoi donc avait-il gardé cette relique ? Allez hop, à la poubelle ! Mais, et si… Par acquit de conscience, Anatole suspend son coup de marteau fatidique et branche le disque. Il découvre, ébahi, une multitude de programmes qu’il avait écrit une dizaine d’années plus tôt : de petits outils sans prétention, mais qui lui seraient particulièrement utiles aujourd’hui. Il essaye de les exécuter, de les compiler, rien n’y fait. Pourtant il en est certain : ils fonctionnaient jadis !

Dans ce numéro...


Dans le dossier de ce hors-série, nous allons voir un aspect de la maintenance logicielle qui consiste essentiellement à recréer un environnement dans lequel un programme obsolète pourra être exécuté. Mais un autre aspect de la maintenance de code est à garder en mémoire également bien que se situant en amont : la qualité du code !
Voici une sélection d'ouvrages pour la plupart récemment sortis ou sur le point de sortir et qui ont attiré notre attention.
Expliquer des faits scientifiques (des formules mathématiques, des phénomènes de physique, etc.) ou du code n’est pas toujours simple. Le recours à des animations peut apporter beaucoup plus de clarté et faciliter la compréhension de votre auditoire. Et ce n’est pas si compliqué à créer...
Maintenir régulièrement et efficacement un logiciel n’est pas une tâche simple. La complexité croissante qui vient avec l’enrichissement de la solution et la multiplication des versions, ainsi que des plateformes d’exécution ajoutent sans cesse à la problématique. Pour y parer, méthode comme outillage adapté sont donc requis.Dans cet article, nous nous proposons de faire un petit tour d’horizon des défis qui caractérisent aujourd’hui la maintenance logicielle.
Docker est un mot à la mode qu’on associe volontiers à microservices et autre Cloud. Cependant, nous allons voir ici qu’il peut aussi rendre des « macroservices » :-) dans un cadre tout à fait différent, voire contraire : celui de la maintenance logicielle !
Pour la recherche scientifique comme pour d'autres domaines, on a souvent besoin de reproduire un environnement logiciel à l'identique non seulement sur différentes machines, mais aussi à différents instants dans le temps. Docker et les machines virtuelles, qui sont souvent la solution choisie pour répondre à ce besoin, ont des limitations qu’il est facile de ne pas voir. Cet article illustre l’utilisation de GNU Guix pour des déploiements reproductibles, au bit près, dans l’espace et dans le temps.
Tracer les fractales de Mandelbrot ou de Newton sur de petits microcontrôleurs 8 bits ou 32 bits nous donne l’opportunité d’appréhender la représentation des nombres en virgule fixe pour une implémentation efficace de l’arithmétique – même sur des nombres complexes – sur systèmes embarqués à ressources réduites. Pouvoir tester le même code sur une multitude de plateformes impose de structurer son code pour séparer la partie algorithmique et l’accès aux ressources matérielles : nous allons proposer une architecture de code et de Makefile compatible à la fois avec des tests sur PC et sur diverses architectures de microcontrôleurs, en faisant appel aux stubs.
Il n'est pas rare de vouloir intégrer de petits tableaux dans ses documents. LaTeX permet de créer rapidement et simplement une telle représentation d'informations. Il est également possible, avec un peu d'huile de coude, de créer des tableaux très complexes ! Ce n'est pas si compliqué... à condition de savoir comment faire !
Les tests ont toujours été un facteur non négligeable de réussite lors de la conception d’un projet de développement. Ces différentes procédures, accompagnant généralement le code source, permettent d’augmenter grandement la qualité d’une application, qu’elle soit libre ou fermée. Même s’il est vrai qu’un programme ne peut-être testé dans son intégralité, les tests mis en place permettront de livrer à l’utilisateur final un système stable ainsi qu’une garantie de fonctionnement. Bien entendu, Erlang/OTP n’est pas en reste, et fournit aux développeurs tout un arsenal d’outils agissant sur l’excellence du produit.

Magazines précédents

Débogage : outils et méthodes pour traquer les erreurs
GNU/Linux-Magazine Hors-série N°111
Débogage : outils et méthodes pour traquer les erreurs
Python 3 pour débuter la programmation
GNU/Linux-Magazine Hors-série N°110
Python 3 pour débuter en programmation
Dossier : Programmez avec un moteur 3D !
GNU/Linux-Magazine Hors-série N°109
Programmez avec un moteur 3D !
Dossier : Codez une fois, déployez partout !
GNU/Linux-Magazine Hors-série N°108
Codez une fois, développez partout !
Dossier : Git - Maîtrisez le versionning de code
GNU/Linux-Magazine Hors-série N°107
GIT - Maîtrisez le versionning de code

Les derniers articles Premiums

Les derniers articles Premium

Game & Watch : utilisons judicieusement la mémoire

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Au terme de l'article précédent [1] concernant la transformation de la console Nintendo Game & Watch en plateforme de développement, nous nous sommes heurtés à un problème : les 128 Ko de flash intégrés au microcontrôleur STM32 sont une ressource précieuse, car en quantité réduite. Mais heureusement pour nous, le STM32H7B0 dispose d'une mémoire vive de taille conséquente (~ 1,2 Mo) et se trouve être connecté à une flash externe QSPI offrant autant d'espace. Pour pouvoir développer des codes plus étoffés, nous devons apprendre à utiliser ces deux ressources.

Raspberry Pi Pico : PIO, DMA et mémoire flash

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Le microcontrôleur RP2040 équipant la Pico est une petite merveille et malgré l'absence de connectivité wifi ou Bluetooth, l'étendue des fonctionnalités intégrées reste très impressionnante. Nous avons abordé le sujet du sous-système PIO dans un précédent article [1], mais celui-ci n'était qu'une découverte de la fonctionnalité. Il est temps à présent de pousser plus loin nos expérimentations en mêlant plusieurs ressources à notre disposition : PIO, DMA et accès à la flash QSPI.

Programmation des PIO de la Raspberry Pi Pico

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

La carte Pico de Raspberry Pi est appréciable à bien des égards. Ses ressources, son prix, ses deux cœurs ARM... Mais ce morceau de silicium qu'est le RP2040 renferme une fonctionnalité unique : des blocs PIO permettant de créer librement des périphériques supplémentaires qu'il s'agisse d'éléments standardisés comme SPI, UART ou i2c, ou des choses totalement exotiques et très spécifiques à un projet ou un environnement donné. Voyons ensemble comment prendre en main cette ressource et explorer le monde fantastique des huit machines à états de la Pico !

Body