je ne suis absolument pas en train de défendre
des trucs genre boring haskell, si on utilise le langage c’est quand
même pour pouvoir se servir de ses points forts
le but n’est pas de rien utiliser comme features avancées, mais de le
faire de manière délibérée et en prenant bien en compte les coûts
l’idéal c’est de trouver des contextes limités
dans lequel tester (ou confiner) les parties complexes. par exemple avec
MTL chez fretlink, on était quelques uns à être à l’aise dans ces
couches là et on fournissait le support aux autres quand c’était
nécessaire, ça marchait bien
un autre bon moyen complémentaire c’est de rendre les personnes qui
introduisent des technos responsables de leur maintenance. ça fait
réfléchir un peu, et ça encourage les gens à faire monter les autres en
compétence
l’archi reste le meilleur moyen de se protéger
de ça, soyez très attentifs aux choix d’archi poussés par une techno.
c’est souvent très risqué, donc il faut bien peser le pour et le
contre
pour finir, c’est contextuel, il n’y a pas une liste de features
autorisées et d’autres interdites. ça dépend de l’équipe, du problème,
du contexte, etc
l’idéal c’est quand même d’avoir un garde-chiourme qui est là pour
réfréner les ardeurs et demander si on a vraiment besoin d’utiliser les
lens dans la suite de tests ou trees that grow dans les DTOs