L'objectif de cet exercice est de s’entraîner à comprendre un énoncé et à utiliser les outils que l'on connaît pour créer des solutions à des problématiques concrètes.
Scénario
On souhaite créer un formulaire permettant de calculer l'impôt que l'on va payer pour l'année courante.
L'objectif de cet exercice est de tester votre capacité à interpréter une consigne et traduire une explication en algorithme.
Le gouvernement a créé une fiche explicative permettant de comprendre le calcul du taux d'imposition mais ce calcul s'avère relativement complexe et on souhaite créer une interface simplifier pour calculer les choses. Le système de calcul de l'impôt est détaillé sur le site du gouvernement en suivant cette adresse : https://www.economie.gouv.fr/particuliers/tranches-imposition-impot-revenu#etapescalculir
- Pour commencer, on souhaite créer un formulaire dans lequel on va entrer la somme que l'on compte déclarer (valeur net) et le système doit automatiquement calculer l'impôt que l'on va avoir à payer ainsi que la somme qu'il nous restera (On prendra le cas d'un célibataire pour commencer).
- On ajoutera une case à cocher pour préciser si on est en couple et un autre champ pour permettre de préciser le nombre d'enfant. En fonction de ces nouvelles données le système adaptera le taux.
- On souhaite avoir un détail du montant que l'on paye par tranche. Le système affichera donc un tableau pour préciser le montant que l'on doit payer pour chaque tranche.
- Pour finir, on prendra le problème en sens inverse et on permettra à l'utilisateur d'entrer la somme désirée (après impôt) et le système calculera les revenus net à avoir pour obtenir cette somme après l'imposition.
Vos solutions
Les solutions proposées à ce challenge sont vraiment abouties et je remercie encore tous les participants. Voici quelques remarques sur les différentes versions que j'ai pu lire :
- Le site donne des exemples de calcul pour l'impôt, aussi il est intéréssant d'utiliser ces exemples comme base de travail et de mettre en place le TDD.
- Les calculs étant un peu complexe il est important de séparer la partie logique et la partie interface. Les calculs placé au milieu du code des compostants ou de la manipulation du DOM est à éviter.
Tentative en live
Vanilla
React
VueJS
Svelte