Purposes, concepts, misfits, and a redesign of git

✒ Enzo SandrĂ© · 📆 02/03/2023 · #ïžâƒŁ Façonnage de code

🙊 Git est un bon outil, mais le nombre d’appels Ă  l’aide sur StackOverflow prouvent que son design est affreux. Deux chercheurs du MIT nous expliquent oĂč le bĂąt blesse Ă  l’aide des techniques de design conceptuel.

🛑 Quiconque a pratiquĂ© un peu connaĂźt les dĂ©fauts de git : difficile de changer de branche avec du travail en cours, de crĂ©er des variations locales sans les commiter, de comprendre l’état de tĂȘte dĂ©tachĂ©e, etc. Pourquoi ? Car une rĂ©gle fondamentale du design a Ă©tĂ© violĂ©e par git : la bijection concept/motif.

💭 Un concept est quelque chose que l’utilisateur doit comprendre pour utiliser un logiciel. Dans un bon design, chaque concept rùgle un problùme, que l’on nomme son motif.

👉 Un concept sans motif est une complexitĂ© inutile.

👉 Un concept qui prĂ©tend rĂ©gler plusieurs problĂšmes bĂącle souvent les deux.

👉 Un problùme qui n’est le motif d’aucun concept rend le logiciel incomplet.

👉 Un problĂšme qui motive plusieurs concepts créé la confusion.

4ïžâƒŁ Git possĂšde ces 4 catĂ©gories de dĂ©fauts, analysĂ©s dans le papier. Il constitue une vraie leçon de design qui devrait ĂȘtre enseignĂ©e dans les Ă©coles.

🌠 Les auteurs poursuivent en proposant Ă  des utilisateur de tous niveaux de git l’essai de Gitless, un fork de Git respectant les canons du design conceptuel. Les rĂ©sultats en matiĂšre de prise en main sont bien meilleurs.

SOURCE

Santiago Perez De Rosso and Daniel Jackson. 2016. Purposes, concepts, misfits, and a redesign of git. SIGPLAN Not. 51, 10 (October 2016), 292–310. DOI:10.1145/3022671.2984018

Enzo Sandré


📄 Lien public DOIs: 10.1145/2983990.2984018