Temps estimé: 30 minutes
Exercice « time trial » sur le refactoring (partie 2)
Pourquoi des exercices de type « time trial » ?
Nous avons remarqué que les étudiants comprennent la matière, mais aux examens, le temps passe vite et ils n'arrivent pas à terminer les questions de code. Le problème n'est pas leur compréhension, mais leur vitesse d'exécution. Nous avons donc monté ces exercices pour développer votre capacité à taper du code, refactorer et naviguer dans l'IDE naturellement et rapidement. Chaque exercice a trois objectifs de temps : or, argent et bronze. Le but n'est pas de bâcler le travail pour aller vite, mais de développer les réflexes vous permettant d'écrire du bon code rapidement. Nous allons aussi inclure des raccourcis IntelliJ pratiques qui amélioreront votre productivité en programmation.
Désactivation de Copilot
Pour ces exercices, nous demandons de désactiver GitHub Copilot pour que vous développiez vos propres réflexes de programmation. Quand Copilot suggère du code automatiquement, vous ne développez pas votre mémoire des patterns de base et vous restez dépendant de l'outil. Vous lisez rapidement les propositions et avez tendance à faire confiance à ce qu'il vous suggère sans le remettre en question et nous savons tous qu'il lui arrive très souvent de se tromper. En écrivant le code vous-même, vous mémorisez mieux la syntaxe et vous devenez plus fluide. Taper le code manuellement améliorera votre vitesse de frappe et votre familiarité avec les raccourcis clavier. L'objectif est de créer cette rapidité naturelle qui vous servira aux examens. C'est la différence entre quelqu'un qui hésite à chaque ligne et quelqu'un qui code de façon instinctive.
Voici comment désactiver Copilot dans IntelliJ
- Dans IntelliJ, allez dans
File→Settings(ouIntelliJ→Preferencessur macOS) - Recherchez
Copilotdans la barre de recherche - Décochez l'option
Enable GitHub Copilot - Cliquez sur
OK - IntelliJ vous proposera probablement de redémarrer pour appliquer les changements
Exercice de refactoring
Repository
Faire un clone local de ce dépôt Github :
git clone https://github.com/GLO4002UL/officiel-lab-account-billingTarget
- 🥇 Or: 20 minutes
- 🥈 Argent: 25 minutes
- 🥉 Bronze: 30 minutes
L'objectif de cet exercice est de tester votre implémentation de l'exercice de refactor officiel-lab-account-billing.
Prenez l'occasion pour remettre en question votre solution et possiblement l'améliorer. L'écriture de tests unitaires
permet souvent de mettre en lumière des problèmes de design. Par exemple:
- Si vous êtes incapables de mocker un comportement
- Vous faites probablement un new directement dans la classe et peut-être qu'il serait préférable de recevoir la classe en paramètre à la méthode ou en paramètre du constructeur de la classe testée.
- Si vous avez une longue liste de mock à configurer dans votre classe de setup
- C'est peut-être un signe que votre classe a trop de responsabilités
- Si vous avez un mock qui retourne un mock qui retourne un mock qui retourne un mock
- Vous avez fort probablement un problème de Tell Don't Ask
Utilisation de Mockito
// Pour définir un Mock, vous devez utiliser l'attribut `@Mock` de Mockito au-dessus de la propriété et ajouter
// @ExtendsWith au-dessus de votre classe.
@ExtendWith(MockitoExtension.class)
public class MyTestClass {
@Mock
Order order;
}
// Configuration d'un mock pour que sa méthode retourne une valeur spécifique.
given(orderRepository.findById(anyString())).willReturn(order);
// Vérification qu'une méthode du mock a été appelée avec une valeur spécifique.
verify(orderRepository).findById(order.id);Raccourcis clavier intéressants et configuration d'IntelliJ
Nous vous conseillons fortement d'essayer tous les raccourcis clavier suivants. Ces raccourcis vous aideront à développer de la rapidité lorsque vous naviguez le code ou lorsque vous en écrivez.
Vous trouverez ci-dessous les raccourcis pour le keymap Windows et pour celui Visual Studio, mais vous n'êtes pas
obligés d'utiliser ceux-ci. À vous de voir lequel vous semble le plus intuitif!
Pour voir quel est votre keymap ou le modifier :
- Allez dans
File→Settings(ouIntelliJ→Preferencessur macOS) - Cliquez sur
Keymap - Sélectionnez le keymap que vous désirez :
Visual Studio,Windowsou autre - Cliquez sur
OK
Vous pouvez aussi changer le raccourci clavier de toutes les actions à partir de ce menu. Vous pouvez donc créer votre propre keymap custom!
Raccourcis communs au keymap Windows et Visual Studio
Ctrl + Click: Permet de voir le contenu d'une classeAlt + Enter: Permet d'afficher les suggestions de corrections rapides. Vous pouvez ensuite faireEnterà nouveau pour sélectionner la première suggestion. Il est très utile pour les imports manquants.Ctrl + F: Permet de chercher du texte dans le fichier actuelCtrl + Shift + F: Permet de chercher du texte dans l'entièreté du projetShift + Shift: Permet de chercher n'importe quoi dans IntelliJ : fichier, classe, setting, méthode, variable, etc.
Raccourcis propres au keymap Windows
Ctrl + N: Permet de trouver une classeCtrl + Shift + T: Lorsqu'on se trouve dans un test, permet de se rendre à la méthode visée par le test. À l'inverse, si on se trouve dans une méthode, permet de se rendre à la classe de testCtrl + Alt + M: Permet d'extraire les lignes de code sélectionnées dans une méthode (utile pour isoler le code répétitif des tests dans une méthode setup)
Raccourcis propres au keymap Visual Studio
Ctrl + T: Permet de trouver une classeCtrl + R + M: Permet d'extraire les lignes de code sélectionnées dans une méthode (utile pour isoler le code répétitif des tests dans une méthode setup)