Derrière toute application web se cachent des développeurs! On parle souvent de Didacte comme la plateforme de formation, mais aujourd’hui on vous fait faire un tour en coulisse.

Le développement web chez Didacte implique beaucoup de recherches, de rédaction, de révision et de maintenance. Notre équipe travaille fort pour ajouter de nouvelles fonctionnalités tout en s’assurant que le service est encore fiable et fonctionnel.

Comment est-ce que l’application a été développée? Quelle technologie utilise-t-on?

Louis-Michel et Guillaume nous partagent leur avis et leur expérience par rapport à la technologie derrière l’application!

Louis-Michel Couture est développeur principal et propriétaire du produit (Product Owner) chez Didacte. Il est chargé de la prise de décision par rapport aux technologies utilisées et appuie le reste de l’équipe dans la conception et la révision du code.

Guillaume Loubier est développeur back-end chez Didacte. Il est souvent amené à contribuer au développement des nouvelles fonctionnalités de l’application et à participer à la réflexion stratégique et la révision du code.

Photos de Louis-Michel Couture et Guillaume Loubier séparés par une fusée

Quelles technologies ont été utilisées pour développer Didacte et qu’est-ce qui a motivé ces choix?

(Louis-Michel) Didacte est principalement basé sur deux technologies. Pour le back-end, nous utilisons Ruby on Rails. Ruby on Rails, comme son nom le dit, est un framework populaire basé sur le langage de programmation Ruby. Il est aussi utilisé par plusieurs entreprises connues, comme Airbnb, Shopify, Github ou KickStarter.

Pour le front-end, c’est Ember.js qui est utilisé. Ember.js est un framework JavaScript, qui est aussi utilisé par différentes compagnies comme Square, Netflix, Microsoft et LinkedIn.

Pour comprendre le choix des technologies, il faut remonter en 2014, quand l’idée de Didacte est née. Pour la partie back-end, le choix était quand même clair. Tous les développeurs étaient à l’aise avec Ruby on Rails et c’est donc ce qui a été utilisé.

Pour la partie front-end, la décision d’utiliser Ember.js était basée sur le besoin d’avoir une application dynamique. La sélection de frameworks JavaScript en 2014 était quand même limitée et Ember.js était une option prometteuse.

Comment est-ce que le code a évolué entre le premier déploiement et la version la plus récente?

(Louis-Michel) Didacte a énormément cru dans les dernières années. Avec le temps, de nouveaux besoins sont apparus, l’équipe s’est agrandie, les langages de programmation utilisés ont évolué. Des dizaines de fonctionnalités ont été ajoutées.

En 2018, nous avons ajouté un changelog public pour recenser les changements majeurs apportés à Didacte.

Didacte, en chiffre technique, c’est:

  • Environ 300 000 lignes de code et de tests.
  • 16 000+ commits.
  • 2500 pull request.
  • Environ 3800 builds (nombre de fois où la suite de tests de l’application est roulée sur les serveurs d’intégration continue).

Quelles difficultés peuvent être rencontrées quand on ajoute une nouvelle fonctionnalité à un code existant?

(Guillaume) Didacte étant une base de code en constante évolution, il peut être un peu plus complexe d'ajouter une nouvelle fonctionnalité à une partie plus ancienne de l'application. 

Les langages et structures de code sont raffinés et évoluent au fil du temps. Ce qui amène parfois une plus grande complexité que ce qui était prévu pour intégrer une nouvelle fonctionnalité, tout en s'assurant de ne rien briser sur les éléments existants. Nous utilisons cependant plusieurs outils qui nous aident à minimiser ce genre d'irritants.

Le fait que plusieurs parties de l'application soient interconnectées peut aussi amener son lot de difficultés. Une fonctionnalité qui semble simple en surface peut finir par devenir un énorme casse-tête pour lequel on ne doit rien oublier, sous peine de se retrouver avec un nouveau casse-tête encore plus complexe à régler. 

Quels sont les avantages d’opter pour des solutions Open Source dans une stratégie de développement web?

(Guillaume) La beauté de l'Open Source, c'est que tout le monde travaille ensemble pour bâtir des outils communs qui peuvent être utilisés dans des centaines voire des milliers de projets.

C'est donc un très bel avantage d'avoir accès à cette grande variété d'outils déjà prêts à l'utilisation pour nous aider dans l'avancement d'un projet. Il faut cependant garder en tête que ce n'est pas parce qu'un outil existe qu'il comble nécessairement tous nos besoins. 

C'est pourquoi on doit parfois faire des correctifs, des ajustements ou même du développement de fonctionnalités de notre côté, qui pourront ensuite être ajoutés à la base de code du projet Open Source (s'il s'agit d'une modification pertinente qui pourrait aider d'autres personnes). 

Les projets Open Source nous permettent aussi de développer nos qualités de programmeurs. Devoir aller lire et modifier du code écrit par un programmeur venant de l'autre côté de la planète, qui a une spécialité et un historique tout autres que le nôtre, nous permet sans cesse de découvrir de nouvelles méthodes de travail, de nouvelles façons de structurer le code. 

On peut ensuite ramener ces découvertes dans nos projets - ou s'en servir comme exemple de choses à ne pas faire. Il ne faut pas se mentir et se faire croire qu'il n'y a que du beau dans les projets Open Source! 😂

Quels changements devront être apportés au code pour soutenir la croissance de Didacte?

(Louis-Michel) Didacte a eu une croissance très rapide. Le défi au cours des prochaines années sera de continuer de gérer le trafic non seulement grandissant, mais aussi provenant de partout sur la planète.

L’infrastructure devra être adaptée pour permettre d’effectuer de la maintenance et des mises à jour sans impacter les clients connectés. Le défi est complexifié par l’ajout des classes virtuelles qui nécessitent une connexion au serveur pendant toute la durée de la classe.

Un autre grand chantier est la localisation des serveurs. Quand Didacte a été créé, la plupart des fournisseurs d’hébergement cloud ne possédaient pas de serveurs au Canada. La situation s’est inversée dans les dernières années et la plupart des fournisseurs offrent maintenant des serveurs au Canada. Le rapatriement de tous nos serveurs sera un point crucial pour nous permettre de servir les clients dont les données doivent obligatoirement rester à l’intérieur du pays.

Au niveau du code de l’application, l’accent sera sur :

  • L’ajout d’outils de soutien pour nos clients
  • L’automatisation du paiement des plans pour les propriétaires de plateforme
  • Le renforcement des mesures de sécurité pour éviter le spam sans nuire aux utilisateurs

Bref, ce ne sont pas les projets d’amélioration qui manquent!

Découvrez les autres articles de cette série dans la section Équipe du blogue.

Suivez, soutenez et optimisez le développement professionnel de votre équipe.