Comment réutiliser du code informatique ?

reutiliser_code_informatique

Est-ce possible de réutiliser du code pour dupliquer une fonctionnalité ?

On nous demande régulièrement si nous pouvons réutiliser le code de nos précédents projets d’applications mobiles et de sites web pour aller plus vite dans le développement de certaines fonctionnalités. Globalement… la réponse est “oui”, mais c’est un peu plus compliqué que du copier/coller

Car non, il ne suffit pas de copier un morceau de code pour dupliquer une fonctionnalité d’un projet à un autre. Même à fonctionnalités similaires, deux applications mobiles auront forcément des différences : au niveau du design, de l’ergonomie, de l’architecture, des API appelées ou encore du système d’information environnant. Nous pouvons donc nous inspirer du travail qui a déjà été fait, mais une partie du code devra forcément être fait sur-mesure.

Mais il est vrai que le fait d’avoir déjà réalisé des applications, services et fonctionnalités similaires nous permet de gagner significativement en efficacité.

L’une des plus longues parties dans la réalisation d’un projet est le choix des technologies, des langages et de l’architecture qui va être construite pour apporter une solution à un problème. Cela nécessite une phase de réflexion, de recherche, de test et, après seulement, d’implémentation de la solution dans le code source du projet. Ainsi, si nous avons déjà fait cette démarche pour un projet similaire, nous serons plus efficace pour le vôtre !

C’est tout simplement une question d’expérience. Avec le temps et la pratique, nous accumulons des réflexes, des bases de données de librairies réutilisables que nous connaissons bien et nous ne reproduisons plus les erreurs que nous avons pu faire par le passé.

Comment réutiliser le code source d’un projet similaire ?

Souvent, nous intégrons des fonctionnalités standards à nos projets, comme par exemple un menu s’ouvrant sur la gauche d’un écran mobile et qui bascule en format paysage lorsque l’on retourne le téléphone. Si nous avons déjà développé ce menu pour un projet précédent, 3 possibilités s’offrent à nous pour le reproduire dans une autre application mobile :

  • Réécrire complètement la fonctionnalité manuellement. Comme nous l’avons déjà réalisé au moins une fois, nous savons comment nous y prendre et cela ne prend pas beaucoup de temps ;
  • Récupérer le code d’un autre projet et l’adapter manuellement pour l’ajuster au projet en cours. Cela implique que le précédent code ait été soigné et commenté pour une reprise facilitée ;
  • Faire et/ou utiliser une librairie ou bibliothèque logicielle. C’est-à-dire un ensemble de fonctions utilitaires, regroupées et mises à disposition afin de pouvoir être utilisées sans avoir à les réécrire. Elle peut être open source (téléchargeable gratuitement) ou privée, c’est-à-dire développée pour une utilisation personnelle/interne.

Nos pratiques à Mobizel

Pour le web comme pour le mobile, il existe énormément de librairies open source disponibles sur internet. Elles sont réalisées et maintenues par des entreprises, professionnel·le·s indépendant·e·s et des passionné·e·s qui font profiter à la communauté de développeurs de leur travail et de leurs recherches. Nous les utilisons régulièrement et si besoin nous les adaptons pour qu’elles répondent parfaitement aux besoins de nos clients.

Nous trouvons la plus grande partie de nos librairies sur ces trois plateformes collaboratives de mise à disposition de librairies, bundles et composants conçus pour être adaptés facilement sans avoir à intervenir sur le code :

Ces deux plateformes ont la particularité d’adapter les librairies choisies aux résolutions d’écrans et aux versions de système d’exploitation visés.

Dans le cas où nous ne trouvons pas de librairie adaptée à la fonctionnalité que nous souhaitons développer, ou que nous estimons le temps de recherche plus long que de développer notre propre librairie spécifique, nous concevons nos propres outils internes.

Par exemple, nous avons développé nos propres librairies et composants. Ils sont protégés par une licence et ils contiennent tous les éléments standards que nous réutilisons dans la plupart de nos projets : menu, boutons, uniformisation automatique des polices, champs de texte, etc. Lorsque nous en avons besoin, il nous suffit de les “appeler” dans notre code.

NB : Cela n’empêche pas que nos clients sont entièrement propriétaires du code source des interfaces que nous développons pour eux. Les éléments issus de nos librairies sont protégés par une licence, ce qui leur permet de les utiliser librement dans le cadre de leur projet, commercial ou non.