Le logiciel existe pour résoudre un problème donné. C’est pourquoi les développeurs comprennent le problème, puis conçoivent et implémentent une solution adaptée. Dans ce processus, la pensée abstraite et la pensée structurelle sont des armes puissantes pour comprendre le problème et concevoir la solution.
En général, la pensée abstraite et la pensée structurelle sont souvent expliquées de manière obscure ou vague. Pourtant, il existe bel et bien des méthodologies concrètes pour les mettre en pratique. Cette présentation montre des méthodes précises permettant aux développeurs d’adopter une pensée abstraite et structurelle, et explique comment s’en servir pour concevoir des logiciels, qu’il s’agisse de modélisation de domaine, de refactoring ou d’architecture.
- Le travail des développeurs consiste à créer des programmes
- Si l’on crée des programmes, c’est pour résoudre des problèmes précis, et si l’on résout ces problèmes, c’est au service du business
- La création d’un programme se compose de quatre étapes
- compréhension / analyse -> conception -> implémentation -> feedback
- Plus un développeur devient senior, plus il participe non seulement à l’écriture du code, mais aussi à toutes ces étapes
- Les seniors résolvent rapidement les problèmes grâce à une intuition fondée sur l’expérience
- Mais l’intuition peut être risquée. Il est donc important d’apprendre une méthodologie
- La pensée abstraite et la pensée structurelle constituent la base de cette méthodologie
- L’abstraction consiste à extraire de chaque élément ce qui est commun ou ce qui nous intéresse
- On peut donc voir l’abstraction comme une simplification suivie d’une réinterprétation
- On peut simplifier et réinterpréter grâce à une pensée réductionniste centrée sur les éléments
- Il est possible d’abstraire non seulement les éléments, mais aussi les comportements
- L’abstraction comporte des niveaux
- Il faut déterminer le niveau d’abstraction approprié
- Une abstraction excessive n’est pas souhaitable, car elle fait perdre de vue la réalité concrète
- La pensée structurelle consiste à organiser le contenu sans chevauchement et sans lacunes
- Proche du framework MECE
- L’essentiel n’est toutefois pas de tout organiser absolument sans chevauchement ni lacunes en toute circonstance
- La structuration, comme l’abstraction, comporte aussi des étapes. Elle permet de prendre encore plus de recul
- Il existe des méthodes concrètes pour adopter un mode de pensée abstrait et structurel
- Top-down et bottom-up
- Modèles
- Classification
- Abstraction
- Generalization
- Pensée par framework
- Il est possible d’appliquer la pensée abstraite et structurelle à la conception logicielle
- Si l’on divise globalement l’implémentation logicielle en trois grandes étapes, on obtient la modélisation de domaine, l’architecture et l’écriture du code
- La modélisation de domaine permet d’extraire les exigences de manière abstraite et de les étendre progressivement
- L’architecture représente la manière de faire le travail
- Comment travaille-t-on, comment découpe-t-on
- L’architecture suit le processus exigences -> concept -> implémentation -> feedback
- Il est possible de concrétiser progressivement des concepts d’architecture abstraits
- Un paradigme de programmation est une manière de regarder les composants d’un logiciel
- On peut considérer la logique sous trois angles : Function, Usecase, Aspect
- Le sucre syntaxique est une syntaxe de programmation abstraite
- Il peut aussi devenir un piège
- Le refactoring peut être envisagé sous six angles : paradigme, taille du code, propriété, duplication, possibilité de modification et dépendances
- Il existe trois méthodes de refactoring : abstraction, structuration et généralisation
- Pour développer une pensée abstraite et structurelle, il est bon d’accumuler des expériences variées
- La schématisation est d’une grande aide
- L’intuition relève d’une pensée empirique. Elle permet de gagner du temps, mais peut être risquée
- Les patterns aident à acquérir une pensée abstraite
- Ce qui est abstrait et structurel n’est pas non plus une solution universelle
10 commentaires
Merci pour les slides de la présentation et pour ce résumé du contenu.
À voir votre identifiant, j’imagine que vous êtes bien l’intervenant en personne ! Je n’ai pas pu assister à la conférence à cause de l’échec au tirage au sort d’Infocon, alors merci d’avoir partagé les slides de votre présentation :)
Merci. :D J’espère que mon contenu vous aura été utile !
Merci pour ce résumé détaillé.
Le résumé a pris plus de temps que prévu ^^;; Merci de l’avoir lu !
Merci pour ce bon article et ce résumé~
Merci de l’avoir vu ainsi :D
Je l’ai lu avec intérêt !
Il faut définir un niveau d’abstraction approprié.
-> Il y a une coquille ici :)
Merci pour la vérification. :) En revanche, il semble qu’une fois le post publié, il soit impossible de le modifier, snif snif.
Ah, je ne le savais pas. Merci pour la vérification !