Relaxed-businessman-sitting-in-chair
En savoir plus

Les “implicits” en Scala, ou comment sous-traiter au compilateur

Les implicits sont des concepts qui peuvent sembler “magiques” et assez déroutants quand on tombe sur eux pour la première fois. Néanmoins, pour peu que l’on en fasse bon usage, ils peuvent simplifier la vie des devs. Mais qu’entend-on par “implicits” ? À quoi servent-ils ? Comment fonctionnent-ils ? C’est ce que nous allons tenter de comprendre.

Lire la suite
En savoir plus

NCraft 17 : le syndrome du Babel informatique

Comme tous les ans vers la fin du mois de mai s’est tenue la conférence NCraft à Paris. Vous ne connaissez pas ? Dommage. Il s’agit d’un rassemblement de passionnés du développement applicatif qui viennent partager et échanger sur les nouvelles pratiques. Un événement qui s’inscrit dans la tendance du “software craftmanship”, cette fameuse méthode qui met en avant le savoir-faire des développeurs et la bonne conception des logiciels. Dans ces rassemblements, l’important n’est pas tant les technologies évoquées que les pratiques des uns et des autres et le partage des expériences. Et le moins que l’on puisse dire c’est que cette année encore les conférences de NCraft 2017 ont été riches d’enseignements.

Lire la suite
En savoir plus

Agile vs cycle en V : le combat du pilotage de projet

Depuis leur première apparition à la fin des années 90, les méthodes agiles (Scrum, Extreme Programming…) ont progressivement pris le pas sur les méthodes dites traditionnelles (cycle en V, Waterfall,…). Le processus itératif de l’approche Agile, propice à la réactivité, favorisant la communication et l’échange des intervenants au projet, semble gommer les inconvénients de la gestion de projet de type classique, et son fameux et fumeux « effet tunnel ». Représente-t-il pour autant systématiquement la meilleure des démarches ?

Lire la suite
En savoir plus

Le Pattern Matching, le Demolition Man intelligent

Le pattern matching, ou filtrage par motif, est un des outils de programmation fonctionnelle dont les capacités sont parmi les plus subtiles à apprécier pour les développeurs, surtout s’ils font beaucoup de programmation objet. Si vous l’avez déjà rencontré, vous l’avez certainement comparé (au moins dans un premier temps) à une série de if voire d’instructions switch sous stéroïde. Il peut d’ailleurs tout à fait remplacer cette instruction. Mais en réalité, l’intérêt du pattern matching réside dans sa capacité à déconstruire l’encapsulation en posant des conditions de structure afin d’extraire des valeurs et de les manipuler. Bref, c’est une façon très commode de traiter les données. Et je vais vous le démontrer.

Lire la suite
En savoir plus

La récursion terminale à la rescousse !

Posons le décor : vous êtes à un entretien. Tout se passe bien. Quand tout à coup, la fameuse question sur la récursivité arrive. Aucun souci pour le développeur que vous êtes, vous savez ce qu’est une fonction récursive. Vous implémentez donc une solution au problème posé. Et voici le résultat obtenu : Exception in thread « main » java.lang.StackOverflowError.

Lire la suite
En savoir plus

Créer des types fonctionnels en F# et en Scala

Réaliser un programme c’est surtout manipuler des données. Il est donc recommandé de disposer d’entités spécialisées pour chaque cas d’utilisation de ces données. Cela tombe bien, les familles de langage offrent différentes manières de créer un type. Et la programmation fonctionnelle n’échappe pas à cette règle. Vous allez le voir, dans certains cas, ces “types” fonctionnels sont même des amis précieux. Exemples en F# et en Scala.

Lire la suite