Session du 15 avril 2025 à 21h00
Librairie Standard & Modules
Deviens membre Premium magic_button
Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !
Premium
- check +100h de formations
- check +180 exercices de code
- check +100h de mentorats en rediffusion
- check 20 projets
- check Mentorats groupés hebdomadaires
- check Support individuel avec nos mentors
Concevoir un agenda Python pas à pas
Découvrir une méthode concrète pour concevoir un script Python d’agenda, depuis l’idée de départ jusqu’à la structuration du projet.
00:00:00 :Hop là, c'est parti.Avant de commencer à quoi que ce soit, je voulais savoir si parmi vous, il y avait des éléments ou autre, des choses que vous auriez souhaité voir sur Python.
00:00:17 :Peut-être des questions à poser.Et des fois, s'il y a quelque chose qui vous a un petit peu perturbé ces derniers temps.Je sais si ça peut aider.
00:00:28 :Je vois que c'est un grand succès.Du coup, ici, non.Non ?Bon.Ce que je comptais vous proposer ce soir, si ça vous va, on ne va pas spécifiquement voir un module ou autre.
00:00:53 :C'est plutôt quelque chose qui est mis en arrière-plan, qui n'est pas forcément tellement étudié dans le langage Python.C'est plus l'approche de la conception d'un script, en fait, ou d'un programme Python de manière globale.
00:01:11 :Alors, ce que je vais vous présenter, ce n'est pas forcément hyper académique.C'est plus la méthodologie que je vais utiliser, moi.D'accord ?Maintenant, jusque-là, tout ce que j'ai eu à faire en Python et que j'ai fait avec ça, ça m'a permis de sortir des choses assez fiables.
00:01:32 :Donc, je me dis que, finalement, la méthode ne doit pas être si mauvaise que ça.Elle est très certainement perfectible, mais voilà.Donc, j'ai pensé vous parler un petit peu de ça ce soir.
00:01:43 :Ce qui est sûr, c'est qu'on n'en parle pas trop, et qu'il faut qu'il commence un petit peu le langage Python.Il ne sait pas trop exactement comment s'y prendre.
00:01:51 :Quand on a l'exercice, il nous dit que si on fait ça, c'est blanc, c'est noir.On dit que c'est super, j'ai réussi à faire un script.
00:02:05 :Est-ce que ça vous convient comme programme ?Oui.Donc, voilà.Alors, tout bêtement, déjà, il faut décider ce qu'on va faire.Je vais prendre un risque.
00:02:24 :Je vais vous demander de me proposer, tiens, est-ce qu'on ne pourrait pas essayer de faire un script pour ci ou pour ça ?Je vous laisse me suggérer une idée, et on se lance, on va voir comment on procède pour faire la chose.
00:02:35 :Alors, ne me demandez pas de construire un ordinateur Benoît 20 non plus, quand même.On a quand même un temps qui est relativement contraint.Donc là, je n'ai forcément pas arrivé au bout.
00:02:47 :Je ne sais même pas si je suis capable de le faire.Mais est-ce que vous avez, est-ce qu'il y a quelqu'un qui se lance, une petite idée, un petit script, qu'on pourrait travailler comme ça ensemble, une fée ?
00:02:55 :Non, personne ne se lance.Une idée de script ?Extension, qu'est-ce que tu entends par là, Axel ?Tu peux ouvrir le micro, il n'y a pas de souci.
00:03:12 :Extension de Benoît.Oui, vous m'entendez ?Oui.Extension de bureau.Oui, vous m'entendez ?Oui, on t'entend, oui.Extension de bureau, par exemple, moi qui utilise Mozilla, créer une extension très personnalisée, par exemple, je ne sais pas moi, pour son travail, son rendez-vous, un agenda, peu importe, une extension, quelque chose qui soit utile.
00:03:42 :Un agenda ?On va partir sur l'idée d'agenda, par exemple.Un agenda avec notification et qui soit relié avec une base de données des contacts, par exemple.
00:04:11 :Après, voilà, c'est juste une idée de base, mais il est important que ça soit quelque chose d'utile sur un bureau.Alors, je vais vous lancer, vous partager, voilà, mon IDE.
00:04:25 :Ok.Voilà.On va d'abord commencer par créer notre premier fichier Python, notre base.On va l'appeler main.Alors, c'est, hop, je vais enregistrer ça sur le bureau.
00:04:46 :Alors, c'est assez classique de commencer par un dossier, par un fichier main, mais moi, c'est un fichier que j'ai toujours créé en premier.Pourquoi ? Parce que ça va être mon fichier de départ dans le cadre de la conception de ce que je vais faire.
00:05:05 :Par la suite, je vais peut-être ajouter d'autres fichiers qui me serviront de module, parce que je vais vouloir séparer mon code ou autre.Et le main, je sais que c'est le fichier depuis lequel je suis parti, donc c'est celui-là qui va vraiment être central à tout ce que je vais faire.
00:05:20 :D'accord ?Donc là, d'abord, ce que je vais commencer par faire, c'est noter un petit peu ce que je vais faire.Donc, l'objet, c'est un calendrier.
00:05:28 :Ou un agenda pour rendez-vous.Ok ?Donc là, je vais commencer à réfléchir.Qu'est-ce qu'il me faut ?Déjà, il va falloir que je gère le temps.
00:05:39 :Donc, pour gérer le temps, qu'est-ce que je vais utiliser ?Je sais que je vais partir forcément sur du datetime.En Python, pour gérer le temps, son datetime, c'est un peu compliqué.
00:05:54 :Il va falloir que j'entre des rendez-vous, forcément.Pour les rendez-vous, il va falloir que je définisse un format de rendez-vous.Alors, qu'est-ce qu'on pourrait imaginer comme format de rendez-vous ?
00:06:13 :Déjà, tout bêtement, il va falloir une date, une heure, et on va rester sur un motif.D'accord ?Ou un sujet plutôt, ça sera plus clair.
00:06:28 :Donc voilà, on a déjà défini nos rendez-vous.Maintenant, je sais comment je vais créer mes rendez-vous.Je vais décider comment les stocker.On verra bien qu'à un moment ou à un autre, je les enregistre.
00:06:44 :Là, j'ai plusieurs choix.Alors, on pourrait très bien, comme tu disais Axel, partir sur une base de données.Pour l'instant, on n'est pas encore sur une version, on va dire, top améliorée.
00:06:54 :On va, dans un premier temps, chercher à faire des outils qui vont nous permettre d'être fonctionnels.Et ensuite, au fur et à mesure, on va faire des scripts pour notre programme.
00:07:11 :On va rajouter des fonctionnalités supplémentaires pour rendre la chose plus agréable,voire, ensuite, plus pro.D'accord ?Donc là, pour le stockage, on aurait dit qu'on rechante la base de données.
00:07:27 :Moi, je vais retenir plutôt, dans ce cas-là, pour commencer simple, par un fichier.D'accord ?Le fichier, qu'est-ce qu'on pourrait prendre comme type de fichier ?
00:07:42 :Qu'est-ce que vous me proposez de prendre comme type de fichier ?Jason ?Par exemple ?Est-ce que Jason, ça paraît bon à tout le monde ?
00:07:57 :Vous proposez ce que vous voulez.L'idée, c'est d'un petit peu brainstormer, de réfléchir.Vous essayez aussi, en même temps que je le fais, de vous confronter un petit peu à l'exercice.
00:08:14 :Non, Jason fait l'unanimité.Bon, on reste sur Jason.Donc déjà, vous voyez là, ça fait quelques minutes qu'on est sur le sujet.Pour l'instant, je n'ai toujours pas exclu le code.
00:08:31 :D'abord, je réfléchis.Il y a un gros typo qui me saute aux yeux.Il fait mal.Voilà.Dans un premier temps, quand je vais faire quelque chose comme ça, je réfléchis.
00:08:44 :Quels objectifs j'ai à avoir ? Qu'est-ce que je veux faire ?Alors là, je le fais directement sur l'IDE, parce que pour partager avec vous, c'est plus simple.
00:08:54 :Maintenant, ce que je vous conseille d'avoir toujours un portail de main, c'est un petit carnet avec un stylo.Ça peut paraître bête, mais l'idée de script ou l'idée de programme que vous pouvez avoir,vous n'allez pas forcément l'avoir toujours devant votre ordinateur.
00:09:11 :Par contre, si vous prenez la douceur d'avoir un petit carnet et un stylo,que vous êtes dans les transports en commun, qu'il y a votre script vagabond,et que vous vous dites « Tiens, ce serait peut-être bien de faire un petit script pour ci ou pour ça »,hop, vous avez le carnet et vous le mettez.
00:09:24 :Vous commencez à réfléchir sur le script.L'avantage de cette technique-là, c'est que lorsque vous utilisez un petit carnetpour concevoir votre script ou votre programme, surtout dans ces moments-là,vous n'êtes pas face à l'ordinateur.
00:09:42 :Donc, vous n'êtes pas tenté.Par exemple, tentation que j'aurais pu avoir, je mets « Gérer le temps ».Tout de suite, sur mon script, je commence à mettre « Import this file ».
00:09:54 :Puis là, j'ai commencé à taper.Qu'est-ce que je fais ? Je continue, je continue, je continue.Mais en fait, je ne réfléchis plus à ce que je vais vouloir avoir réellement dans mon script ou dans mon fichier.
00:10:05 :D'accord ?Donc, prenez bien ce temps quand vous concevez un petit script ou un programmed'utiliser le papier, le bon vieux crayon de bois ou le stylo,selon le choix d'écriture,pour noter ce que vous voulez mettre dedans.
00:10:22 :Vous n'allez pas définir sur votre feuille ou dans votre carnetl'intégralité des fonctionnalités de votre programme.Mais si vous avez déjà fixé quelques objectifs clairs,tout de suite, ça va aller un peu mieux,parce que vous aurez un objectif, un guide sur lequel vous vous accrochez.
00:10:43 :C'est bon pour vous ?On continue.Donc,qu'est-ce qu'il va nous falloir justement, puisqu'on en parlait,comme module pour faire ce petit script ?Tu peux importer tes modules, JSON et Deadtime.
00:11:08 :Voilà, cela on sait qu'on va en avoir besoin.Ok.On va faire un import de Deadtime tout court.Voilà.Donc ça, typiquement, là j'ai mon copilot qui s'est mis en place.
00:11:28 :Donc, on va faire un import de Deadtime tout court.C'est mon copilot qui s'émerve tout seul.On va essayer d'en faire abstraction.Typiquement,il m'a proposéFrom Deadtime, Import Deadtime, Time Delta.
00:11:46 :Ça, surtout quand vous commencez en Python, évitez.Alors, ça va être très lourd à écrire au début.Deadtime.Parce que, par exemple, lorsque vous allez vouloir créer un objet à Deadtime,vous allez vouloir écrire Deadtime.
00:12:03 :.Deadtime..No.Juste pour afficher le jour.Comme ça, au début, c'est assez lourd à écrire,c'est fastidieux,et on arrive très vite à la facilité de vouloir faire ça.
00:12:23 :Hop.From Deadtime, Import Deadtime.Hop, on réduit à Deadtime.No.Et voilà.Ça, c'est une habitude, un petit travers qu'on a tendance à prendre rapidement.Essayez de l'éviter au maximum au début.
00:12:45 :Par la suite, après, vous pourrez faire comme vous voulez.Mais je vous conseille, surtout quand vous abordez Python,de bien rester sur les imports les plus, comment dire,on va dire purs, même si ce n'est pas le bon mot.
00:12:59 :Ça va vous permettre de bien vous mettre en tête, justement,les hiérarchies de modules et de méthodes,les fonctions qui sont présentes dans les modules.
00:13:09 :Ce qui fait que par la suite, quand vous aurez besoin de retrouver quelque chose,d'utiliser une fonction ou une méthodologie particulière,vous aurez un petit peu en tête à quel moment on trouve quelque chose.
00:13:19 :OK ?On continue.Alors, qu'est-ce qu'on a vu ?Qu'est-ce qui va être le cœur de notre application ?Les tâches, par exemple.Les rendez-vous, d'accord ?
00:13:40 :Les rendez-vous, les tâches, les choses à faire.Donc, on va créer un objet pour chaque rendez-vous.On va créer un rendez-vous à chaque fois.Je ne sais pas.
00:13:57 :Je ne sais pas lequel est le plus pratique.Alors, là, on va rester simple dans un premier temps.On va partir sur les fonctions.OK ?
00:14:07 :Créer.Rendez-vous.RDV, comme ça.Voilà.Donc, on va avoir besoin d'une date,d'une heure,et d'un sujet.OK ?Alors, pareil.Parce que là, c'est tout.
00:14:34 :Moi, j'ai un peu l'habitude.Ça ne me pose pas trop de problèmes, maissi on vous propose d'utiliser Copilot gratuitement,surtout au début, évitez.Vous voyez, ça va tout faire à votre placeet vous n'allez finalement pas apprendre grand-chose.
00:14:47 :Alors, donc, cette date,on va faire nos commentaires, justement.Comme il le veut.Un rendez-vous.OK.Et là, on va mettre nos arbres.Alors, la date et l'heure.
00:15:17 :Ça va être quel type d'objet ?Un objet Dead Time.Voilà. Ça va être un objet Dead Time.OK. L'heure aussi.Pareil pour l'heure et puis une chaîne de caractère pour le sujet.
00:15:37 :Voilà.OK.Alors, on va mettre du rendez-vous.Heure du rendez-vous.Et sujet du rendez-vous.Voilà.Ça, ce petit ghosting là que je viens de faire,quand vous créez une fonction,astreignez-vous surtout au début à essayer de le faire.
00:16:17 :OK.Ça va vous permettre assez facilement de savoir ce que vous avez voulu créer.Et quand vous allez revenir sur vos anciens scripts de plus tard,vous saurez avec quoi vous parlez.
00:16:28 :Si je vous ai dit de le faire, c'est parce que je ne l'ai pas fait au début.Voilà.Et que j'ai conçu certains programmes.Quand j'ai voulu revenir dessus pour les maintenir,eh bien, ça a été extrêmement compliquéparce que je ne me rappelais plus quelle était ma logique
00:16:45 :et pourquoi j'avais fait les choses de telle et telle manière.Donc, ce n'est pas le plus passionnant dans ce que l'on peut faire dans le code,mais peut-être que tu veux.
00:16:55 :OK.Bon, le petit dictionnaire que Victor nous a proposé est pas mal.Maintenant, je vais vous poser une petite question.Est-ce qu'à votre avis, les choix qu'on a fait jusque là sont bons ?
00:17:11 :Est-ce qu'on ne pourrait pas déjà un petit peu simplifier notre fonction ?Je vais peut-être dire une bêtise, mais je les ai abordés il n'y a pas longtempset vu qu'on est que sur de la donnée pure,est-ce qu'on ne pourrait pas utiliser des data classes ?
00:17:40 :Alors, là, ce n'est pas ce vers quoi je voulais vous emmener,mais la data class n'a pas de gros avantages là-dessus.Oui.Parce que oui, on pourrait créer un objet,mais là, je suis parti sur le fait de créer une fonction.
00:18:02 :Donc, la data class pourrait être utile si on est parti sur l'objetplutôt que sur la fonction pour créer le rendez-vous.Ok.Moi, la petite tentation qu'il y a, c'est de me dire, je crée une date en datetime,une heure en datetime, est-ce que je ne pourrais pas tout coubler dans une seule et même variable ?
00:18:22 :Finalement, si je fais du datetime, je peux finalement avoir un objet datetimeavec l'heure et le jour compris dans une seule variable.Est-ce que ça vous paraît cohérent ?
00:18:38 :Oui, mais quoi ?Ah, voilà, il y a un mais.Il y en a qui commencent à me connaître.Il faut que je change mes astuces.
00:18:50 :À votre avis, pourquoi...Attention, là, on est dans la création, il n'y a pas de bonnes ou de mauvaises réponses.Maintenant, quels seraient les avantages et les inconvénientsd'avoir un seul objet datetime pour la date et l'heureou de conserver deux variables comme on l'a fait avant ?
00:19:14 :Il n'y a pas assez d'expérience là-dessus.Dites ce qui vous passe par la tête, il n'y a pas de jugement.Peut-être pour le temps d'apparition de la page.
00:19:40 :Non.Je n'ai pas le mot en tête.Que ça retarde un petit peu le processus.Je vois ce que tu veux dire, mais non.En fait, les deux solutions pourraient être valables.
00:19:53 :D'accord ?Maintenant, l'avantage de garder date et heure séparées,c'est que si on veut classer, on veut savoir quels sont les rendez-vous de tel jour,ça va être plus simple si on a date et heure séparéesque si tout est dans le même objet.
00:20:11 :Et là, vous voyez, les dates et les heures ont été modifiées en chaînes de caractère.Donc, du coup, c'est pour notre recherche à nous, par exemple,il vaut mieux séparer les deux.
00:20:25 :Par exemple, si je cherche par heure, par date, je peux trouver plus facilement.Ça peut être plus simple à gérer en termes de logique.D'accord.
00:20:34 :Par exemple.Maintenant, bon, ça peut simplifier aussi la gestion en mémoirede nos différents rendez-vous.Il n'y a pas de bonne ou de mauvaise solution.
00:20:53 :Là où je veux mettre votre attention, c'est que regardez sur une simple réaction de rendez-vous.On a déjà des choix qui s'opèrent.Les choix, on les fait à un moment donné.
00:21:07 :Et ce qu'il faut surtout derrière, c'est que vous testiez ce que vous faitespour voir si effectivement, au bout du compte,c'est cohérent par rapport à notre logique de base.
00:21:19 :D'accord.Il n'y aura jamais de bon ou de mauvais choix.La seule chose qui compte, au final, c'est le résultat.Est-ce que votre script va effectivement faire ce que vous voulez ?
00:21:33 :D'accord.Après, quand vous aurez vraiment beaucoup plus d'expérience en termes de programmation,vous commencerez à réfléchir sous un format d'optimisation.De se dire, on va essayer d'optimiser les choses pour qu'il y ait moins de variables,que ce soit un peu plus fluide dans l'exécution.
00:21:59 :Mais attention, c'est aussi un piège,parce que des fois, l'optimisation nous amène à des variables avec des ligneset des calculs tellement complexes qu'on ne sait même plus de quoi on parle.
00:22:10 :Donc, il faut savoir aussi, de temps en temps, garder et dire,tiens, finalement, c'est mieux de garder les valeurs séparées,parce qu'au moins, c'est plus clair pour moi, je comprends mieux ce que fait mon script.
00:22:20 :D'accord.Donc, ce qu'il faut vous retenir surtout, c'est qu'il n'y a pas de mauvais choix.Il n'y aura que le choix que vous faites.Tant que ça marche et que c'est clair pour vous, c'est un bon choix.
00:22:32 :D'accord.Donc là, on a fait notre première petite fonction.Qu'est-ce qu'on va faire ensuite ?Vous avez une idée de l'étape suivante ?Là, on a créé les rendez-vous. Qu'est-ce qu'on va faire ?
00:22:48 :Peut-être la mise en forme, mais non, ça sera peut-être pour la suite.Je ne sais pas.Eh bien, l'étape suivante, elle est très simple.C'est qu'on vient de créer une fonction.
00:23:12 :Qu'est-ce qu'on doit faire avec cette fonction ?L'appeler ?Voilà. On va la tester.N'oubliez pas.Alors, vous verrez plus tard, quand vous serez bien avancés sur le parcours Python ou autre,tout ce qui est tests unitaires, PyTest et ainsi de suite.
00:23:37 :Là, dans un premier temps, quand vous commencez à construire des petits scripts comme ça,les tests, vous les allez faire beaucoup à la main.Ok ?
00:23:49 :Et tout simplement, on va regarder.Tout simplement, on va regarder si notre fonction, elle marche.Est-ce qu'elle me convient bien, un rendez-vous ?Celle que je l'ai définie.
00:24:01 :Ok ?Donc, je vais rajouter quelques lignes.Alors, on va l'appeler « premier rendez-vous ».Hop.Je n'ai pas envie de m'embêter.Et on va imprimer le premier.
00:24:25 :Et on va imprimer le deuxième.On va voir si ça nous renvoie bien à un rendez-vous tel qu'on l'a défini.On en sort.Impeccable.Il nous donne bien la date.
00:24:43 :Il nous donne bien une heure, un sujet de rendez-vous.Donc, notre fonction « créer rendez-vous » marche.Ok ?Ça, c'est une phase qui est extrêmement importante.
00:24:54 :Pour à chaque fois que vous créez votre script,ou que vous faites un programme,que vous avancez bien étape par étape.Vous travaillez sur une nouvelle fonctionnalité.
00:25:06 :Vous testez cette nouvelle fonctionnalité,de manière à être sûr qu'elle va bien déjà faire ce qu'on attendait.Et de deux, qu'elle ne va pas se télescoper avec une autre fonctionnalité.
00:25:19 :On pourrait très bien imaginer que,le fait de créer un rendez-vous comme ça,je ne sais pas,ça fait que, par exemple,il n'y a pas de vérification lorsqu'il n'y a pas un rendez-vous à cette heure-là de prévu,les deux rendez-vous se télescopent.
00:25:36 :Ok ?Donc, il faut vraiment que vous testiez à chaque fois.Vous créez une nouvelle fonction.Ok, on prend deux minutes, voire plus,la complexité de la chose.
00:25:48 :Pour dire, ok, je vérifie là,à mon étape là où j'en suis.Ok, pour l'instant, mon script est toujours bien dans sa logique.Il fonctionne bien.
00:25:56 :Ok ?On va se garder ces deux exemples-là de côté,pour la suite.Maintenant,on a fait notre logique pour créer un rendez-vous.Quelle est la prochaine logique qu'on va attaquer ?
00:26:12 :Stocker le rendez-vous.Exactement, super.C'est qui qui m'a répondu ça ? Je n'ai pas vu.C'est Incapace.Excellente réponse, Incapace.Tu as plus d'un point.
00:26:26 :Voilà.Donc, on vasauvegarder notre rendez-vous.Alors, sauvegarder.Ça va aller.Voilà.Qu'est-ce qu'on va lui passer comme paramètre ?Le rendez-vous.Voilà.La variable premier rendez-vous, par exemple.
00:26:52 :Enfin, le rendez-vous en question.On va l'appeler rendez-vous tout court,puisqu'on a juste besoin d'avoir un rendez-vous.Là, on est dans les concepts-fonctions.J'ai éclaircé ça,parce que ta réponse me fait s'entendreque ce n'est pas super clair.
00:27:08 :Donc, on va l'appeler rendez-vous tout court,puisqu'on a juste besoin d'avoir un rendez-vous.Là, on est dans les concepts-fonctions.J'ai éclaircé ça,parce que ta réponse me fait s'entendreque ce n'est pas super clair.
00:27:18 :Peu importe le nom que vous mettezdans l'argument d'une fonction,la variable, quand vous allez la passer à la fonction,à l'intérieur de la fonction,elle aura pour nomle nom de l'argument que vous avez donnépar la définition de la fonction.
00:27:36 :OK ?C'est-à-dire que là,je pourrais très bien passerà sel rdv.Je vais le mettre comme ça, d'ailleurs,voilà.Je passe premier rendez-vous ici à sel rdv.
00:27:48 :D'accord ?Mais dans la logique de la fonction sel rdv,les valeurs,la valeur de premier rdvsera contenue dans une variablequi s'appellera rdv.
00:27:59 :D'accord ?Celui-ci, là.Peu importe les noms que vous aurez donnés.Là, il faut bien rapidementfaire cette gymnastique-làquand vous faites vos fonctions.Peu importe le nom que vous allez donner à l'argument.
00:28:20 :Ça n'a pas l'importance.D'ailleurs, il va falloir l'utiliserparce que si vous essayeztout au long de votre scriptd'avoir une cohérenceabsolue dans les noms,des fois, ça peut vite devenir compliqué.
00:28:39 :Parce que, mettons,là, dans le cadre de ce qu'on est en train de lancer,on va manipuler souventdes dates, des heures, des rendez-vous,et ainsi de suite.
00:28:49 :Et si on cherche à chaque foison parle d'un rendez-vous,c'est forcément rdv.On parle d'une heure,c'est forcément une heure,c'est forcément date,et ainsi de suite.
00:28:58 :Et bien, vous allez peut-être des fois vous retrouver,vous êtes au cœur d'une fonction,vous parlez d'heure,mais vous ne savez plus vraimentde quelle heure vous parlez, en fait.
00:29:08 :Parce que tout ce qui est type heure,dans les arguments,vous allez tous appeler heure.Au final, vous ne savez plusà quelle heure ça correspond.
00:29:13 :D'accord ?Donc, les noms de vos arguments,il faut vraiment les mettre en fonctionde ce que vous avez besoin dans votre fonction.Ça fait beaucoup de fonctions, vous allez dire.
00:29:24 :Mais, il faut vraiment les rendre utiles.Pour vous, comme vous,après, vous allez régler votre fonction,vous sachez pertinemment,le rdv, ça correspond à ça,parce que je le manipule de telle manière,je fais ça avec,donc je sais à quoi correspond ce rdvdans ce contexte-là.
00:29:40 :Ok ?Est-ce qu'on va avoir besoin d'autres argumentspour sauvegarder notre rendez-vous ?Les fichiers où on va l'envoyer ?Pardon ?Les fichiers où on va l'envoyer ?
00:29:57 :Où on va le sauvegarder ?Exactement.Alors,on va lireNom fichier, hop.Nom fichier, sauvegarde.Autre point, vous voyez,les noms de variables,ils peuvent être très longs.
00:30:20 :Ça, ça ne gênera rien.Du moment que c'est clair pour vous,peu importe,bon, ça risque de vous embêterà la force de devoir retaper les noms de variables,mais,l'important, c'est que le nom de la variable soit clair.
00:30:36 :Donc, s'il doit être très long,il est très long.Ok ?Qu'est-ce qu'on pourrait fairepour cette variable de Nom fichier,justement ?Qu'est-ce qu'on pourrait imaginer ?
00:30:52 :Savoir si le fichier existe ou pas ?Ouais, ça, c'est une première chose,mais après,vu la méthode qu'on va employersur du JSON,ça ne pose pas trop de difficultés,en général.
00:31:04 :On va, tout bêtement,lui donner une valeur par défaut.D'accord ?On va l'appeler agenda commun.Ok.Comme ça,quand on a un rendez-vous,on peut imaginerqu'il y a plusieurs utilisateursà notre script.
00:31:36 :Par défaut,ça va dans l'agenda commun.Si on veut le mettredans l'agenda personnel de quelqu'un,à ce moment-là,on précise un nom d'agenda.Ok ?
00:31:50 :L'idée qui est derrière,c'est que,quand on veut sauvegarder un rendez-vous,par défaut,on n'est pas obligéde donner le nom d'un agenda.Par défaut,ça ira dans l'agenda commun.
00:32:07 :Alors,comment on va sauvegardernotre rendez-vous, maintenant ?Déjà,quel est le formatde notre rendez-vous ?L'objet,la première RDV.Je vous embêteparce que je vous cachela fonction de création.
00:32:27 :Quel est le type d'objetqu'on va avoirdans première RDVou deuxième RDV ?Un dictionnaire.Bien.Réponse à l'émission.Je vais être obligéde distribuer des pointsde partout, ce soir.
00:32:43 :Donc, on a un dictionnaire.C'est bien,on a choisi du JSON,c'est super.Du coup,dictionnaire et JSON,c'est très copains.Donc,on va envoyernotre dictionnaireau JSON.
00:32:59 :OK ?Quelle est la première chosequ'on va faire ?On vaouvrirnotreagenda.D'accord ?C'est qu'il peut y avoirdéjà des rendez-vous.
00:33:13 :Donc,on va dire,on va créer une variableagendaqui va être égaleà JSONcoinloadhopopenclacmon fichiervoilàtemps de lectureAlors,là,on a un petit choix.
00:33:44 :Là, il nous proposela lecture par défaut.Est-ce que vous pensezque c'est la bonne option ?Le mode d'ouverture.Non,pas forcément.Il faut un W, là,pour pouvoir changer des choses.
00:33:57 :Il faut un Right.Un Right.OK.Est-ce que tout le mondeest d'accord avec le Right ?Ouais.Ouais ?Eh ben non.C'est bien horrible.
00:34:13 :Je vous ai piégé,j'ai réussi.J'ai retrouvé mon modulepour les pièges.C'est comme ça qu'on...Ah oui,pour éviterd'écraser tout le fichieraprès, quoi.
00:34:24 :Ah, mais oui.En fait,avec GSON Load,vous n'allez pasmanipuler le fichier directement.D'accord.Vous allez,là,récupérer les donnéesqui sont déjà dans le fichier.
00:34:36 :OK ?Alors,je profitequ'on attaque ça.Est-ce que vous faitesla différenceentre Loadet Loads ?Je vais l'écrire en dessous.Est-ce que vous faitesla différenceentre les deux ?
00:34:58 :Load, c'est ça ?Oui.Bon, je pense que Loadlit ligne par ligneet Loads littout le fichier.Non,ce n'est pas ça.Load,ce n'est pas quand mêmeavec le S,ce n'est pas quand c'estune chaîne de données,c'est quand c'estun S,c'est pas quand c'est
00:35:25 :une chaîne de caractères ?Exact.C'est la bonne mémo-technique.C'est pareil pour le Dump.Dump et Dumps.En fait,lorsque vous faites,quand il y a un S,c'est parce que vous travaillezdepuis une chaîne de caractèresau format JSON.
00:35:40 :D'accord ?Par contre,si vous travaillezdepuis un fichier,il n'y a pas de S.Donc,c'est une mémo-techniqueà retenir.S'il y a un S,c'est qu'on travailleavec des strings.
00:35:57 :Donc,si on met Load,c'est que c'estun format JSONqu'on donneà Loads.Forcement.Load,c'est un fichieret Loads,c'est un format,c'est une chaîne de caractèresformatéecomme un JSON.
00:36:16 :J'ai appelé valeur.Voilà.Très bien.OK.On continue.Notre agenda,c'est un beau dictionnaire.D'accord ?Maintenant,il va falloir résisternotre rendez-vous.Là,à l'état que j'ai des choses,on ne connaît pas,on ne sait pass'il y a déjà des rendez-vousdans l'agenda ou pas.
00:36:45 :D'accord ?Alors,comment on va fairepour le savoir ?Passer des arguments ?Alors,on ne peut pas connaître,on n'a pas le droitd'aller consulter les fichiers.
00:37:01 :Dans un disque dur,on n'a pas accèsen direct,on ne peut pas.Une condition,on est s'il y a un if ?On peut faire plus simplesans if.
00:37:12 :Ah,OK.Ah,OK.Non plus.Le dictionnaire,il a un comportement communavec les listes.Si je fais ça,je vais avoirla longueurde mon dictionnaire.
00:37:39 :D'accord ?C'est-à-dire le nombrede clés qui sont présentesdans le dictionnaire.Donc le nombre d'entrées.Et par extension,le nombre de rendez-vous.On est d'accord ?
00:37:51 :Donc,si je veuxajoutermon rendez-vousavec une nouvelle cléqui va s'incrémenterautomatiquementau niveau le plus haut,on va faire agenda.L'end agenda.
00:38:15 :Donc ça va me créerune cléqui va être forcément égale.On va considérerqu'on est parti de zéro.La clé zéro,c'est le premier rendez-vous.
00:38:23 :La clé un,c'est le rendez-vousqui va être en suivantet ainsi de suite.Et donc,vous êtes bien d'accordque si,en partant d'une numérotationde zéro,j'ai déjà trois rendez-vous.
00:38:33 :C'est-à-dire que j'aile rendez-vous zéro,le rendez-vous un,le rendez-vous de deux.Si je prends la longueurde mon dictionnaire,je vais bien avoirune longueur de trois.
00:38:41 :Donc si je crée une cléavec la valeur trois,je choisis bienmon quatrième rendez-vous.Est-ce que c'est bonpour tout le monde,ce raisonnement-là ?
00:38:51 :Oui.Voilà.Du coup,j'y ajoute mon RDV.OK ?Et c'est maintenantqu'on va ouvrirle fichier,réellement,mais ce coup-cien mode...Alors, quel modeon va prendre pourl'ouverture du fichier ?
00:39:12 :Sachant qu'on vientd'ajouter une valeur,on va faire quoi ?On va écrire.Voilà.Alors, quel mode ?W ou A ?W.Oui, W.
00:39:29 :Parce qu'on va chercherà écraser,justement,notre fichierparce qu'on a déjàrécupéré les rendez-vousqui étaientprésentsdans le fichier.J'avais juste,mais pas au bon moment,on croit.
00:39:43 :Voilà.Voilà.Je vais corriger çaparce que je viens de voirun petit peu encore.C'est pas fort,on va faire un peu ça.Voilà.
00:40:01 :Donc,on va faireOK.Est-ce qu'il y a rienqui vous choquedans mon ouverturede fichier ?Pourquoi l'indentation ?C'est la première foisque je voisun argumentdans une listeindents.
00:40:22 :Alors,l'indent,il n'est pas obligatoire.Ah, OK.OK ?Tu n'es pas obligéde le mettrel'indent,et ainsi de suite.Mais c'est ce qui va faireque,je vais essayerde décrire ça.
00:40:38 :En fait,si tu ne mettais pasl'indent,techniquement,ton fichier JSON,il pourrait ressembler à ça.Je vais prendre les valeursqu'on me propose.Alors,voilà.
00:41:11 :Ton fichier JSON,il pourrait ressembler à ça.OK ?Si tu ouvres le fichierà la main,ce n'est pas très topà lire.Par contre,si tu rajoutes l'indent,ton fichier va se formaterautomatiquementcomme ceci.
00:41:29 :Voilà.Ouais,c'est pour la lisibilité,en fait.Voilà.Ça, c'est vachement bien.J'ai cherché à le faire,déjà.Enfin, à un certain moment,je ne sais plus quand.
00:41:49 :Je ne savais pas que ça existait,ce nid de cartes.Merci.Voilà.Principalement,voilà ce que ça va faire.Ça te permetde pouvoiravoir un fichier.
00:42:02 :Généralement,on met un nid d'indentsde 4.Maintenant,tu peux mettre un peuce que tu veux comme valeur.Il n'y a pas de...Il n'y a pas de prérequis.
00:42:12 :Maintenant,l'indent de 4,c'est quelque chosed'assez classique.Donc, si tu commencesà jouer avec cette valeur-làpour diverses raisons,tu pourrais te retrouverdes foisselon commentcertains programmesabordent le logicielavec des problèmesd'incompatibilitédans d'autres langages.
00:42:27 :Donc, bon.Et après, bon,déjà, quand tu asun indent de 4,c'est quand mêmedéjà pas mal.Et l'indent de 7,il correspond à quoi ?
00:42:37 :Simplement,je vais te montrerparce qu'il existeautomatiquement dans Python.1, 2, 3, 4.C'est comme si tu avaismis 4 espacesà chaque foisque tu descends d'un nid.
00:42:49 :OK ?Donc là,on a créé notre sauvegarde.Donc maintenant,nos rendez-vousvont se sauvegarder.On est d'accord ?Quelle est l'étapeque l'on va faire maintenant ?
00:43:13 :Vous avez peur du piège ?Vous êtes encore là ?Moi, j'ai une questionsur le wit.Oui.Est-ce qu'on est d'accordque open,ça ouvre,mais ça ne ferme pasautomatiquement le fichier ?
00:43:52 :Voilà.Wit le fait.Et du coup,il n'y a pas un conflitentre les deux ?Non.Et du coup,il n'y a pas un conflitentre les deux ?
00:44:02 :Entre le json.loadopenet le wit open ?Normalement, non.On peut utiliser le witaprès sans problème.Excuse-moi deux secondes.Bon, c'est bon.Il y a ma grandequi est rentrée à la maisonet j'ai ma maman,qui n'est pas d'accordparce qu'elle a vuqu'il y avait quelqu'un
00:44:26 :qui arrivait près de la maison.Pardonnez-moi pour le bruit.Oui, ça peut poser un conflit,mais justement,l'étape suivanteva nous permettre de le voir.
00:44:33 :Puisque du coup,je vais vous la donnerindirectement.L'étape suivante,c'est quoi ?Comme je vous ai dit tout à l'heure,on vient de créerune nouvelle fonctionnalité.
00:44:43 :Donc,on la teste.Voyons voir ça.Effectivement,ça nous crée un problème.Donc, comment on varésoudre ça ?Et bien, tout simplement,on va utiliserle withqu'on autilisé après.
00:45:12 :withopenas f.Voilà.Eton met notre valeurdans l'agenda comme ça.Donc,là,ça m'amène parfaitementsur ce que je voulaisvous montrer tout à l'heure.
00:45:35 :En fait,vous voyez,on crée une nouvelle fonction.On la tape un petit peu comme ça.On réfléchit pas forcément,on va pas forcément très loindans les détails et toutde ce qu'on fait.
00:45:44 :On teste.Et là,c'est là qu'on se rend comptequ'il y a un problème.Et bien,ça permet de corrigerle problème de la fonction.
00:45:52 :Avant de continuer,je vais en créer d'autres.OK ?Donc,on va continuerd'avancer.C'est bon,continue mon départ.Stéphane,en fait,moi,sur tout le load là,je pensais utiliser loadparce qu'on a un fichierdisons,mais c'est pas le load.
00:46:15 :Le load.Oui.Je pensais qu'on utilisaitload avec s.Non,parce que là,on a un fichier.Donc,le fichier,c'est là.Du coup,le s,c'est quand on travailleavec les strings.
00:46:34 :Par exemple,si...Attends,je vais relancer normalement.Qu'est-ce qui ne va pas encore ?Je vais faire comme ça.Pour vous montrerce que je pensais.
00:46:52 :OK.Voilà.Voilà.Par exemple,si je mettais ma valeuragendaégaleà ça,là,je suis formatésur la basede ce qu'on pourrait trouverdans le JSON.
00:47:17 :Là,je pourrais utiliser loadpour charger ces valeurs.Comme un objet JSON.OK.C'est là.Attends,là,je suis sur la formed'une chaîne de caractèrequi est à l'intérieurde la chaîne de caractèreet elle est formatéecomme du JSON.
00:47:34 :Donc là,je pourrais utiliser loadpour en faireun JSONet pouvoir aprèsla transformer en dictionnaireou la mettre dans un fichierou autre.
00:47:43 :OK ?D'accord.Je vois maintenant.En fait,pour moi,comme agendadans la sphère commonpour un JSON,c'est un format JSON,je pourrais utiliser load.
00:47:54 :Non.Load,c'est vraiment pour appelerune chaîne de caractèrequi est encore un JSON.D'accord.Je comprends.Et le truc,c'est un fichier.Un fichier.
00:48:04 :Alors,voilà.Je sais ce qui se passe.Là,il nous dit exactementce qui ne va pas.Qu'est-ce qui ne va pasà votre avis ?
00:48:16 :C'est peut-être le Rsur la sauvegarde.R.Non.Alors,comme j'aime bienmes étudiants de ma sphère aujourd'hui.Le fichier n'existe pas.Voilà,je crois qu'il n'existe pas.
00:48:35 :Voilà,il ne voit pas le fichier.La documentation,la lecture,avant toute autre chose.Alors,il faut qu'on créenotre fichier JSON.OK.Alors,là,on a plusieurs choix.
00:48:48 :Soit,on crée un fichier JSONà la main.Et puis,tout va bien.Soit,on crée une logique pour le,on va dire,initialiser notre agenda.
00:49:04 :D'accord ?Donc,qu'est-ce qu'on va faire ?Comme on aime les choses simples,on va créer notre logiquepour initialiser un agenda.OK ?C'est quelque chose de très simple.
00:49:19 :On va l'appelerCreate Agenda.OK ?On va avoir besoin de quoi ?D'un nom d'agenda.OK ?En dehors d'un nom d'agenda,qu'est-ce qu'on pourrait avoir besoin ?
00:49:37 :La date,non,pardon,le,bon,c'est un rendez-vous,ou bien ?Non,là,on veut créer le fichier agenda,en fait.De patine,non ?
00:50:10 :Pour tester,l'existence,si le fichier existe,puis,enfin,le créer.Déjà,on va avoir besoind'une logique passible.Un exemple.OK.Et là,OK.OK.
00:50:28 :On a dit, par défaut,notre agenda,c'était l'agenda commun.D'accord ?Donc, on va donner une valeurpar défaut à nos agendas.On va l'appelerAgendacommun.
00:50:42 :OK ?C'est tout.Vu l'heure,on va profiter de ça.On va d'abordcréer l'objet de passe libre.On vérifie s'il existe ou pas.D'accord ?
00:51:06 :On crée l'agenda.Là, on le crée avec une valeur vie.Et comme ça,on a créé notre agenda.OK ?Du coup,on vient de faireune nouvelle fonctionnalité.
00:51:18 :Qu'est-ce qu'on fait ?On la teste.Voilà.Exactement.Alors,ce qu'on va faire,c'est qu'on va en faire unesans lui passer de variable,pour qu'il nous créeun agendade manière basique.
00:51:40 :Et une autre,on va faire,créer un agenda,on va lui donner,par exemple,on va l'appelerWebStringpointnon,on va l'appelerAgendaWebStringpointJsonEt là,on va voirsi effectivement,la création de notre agendafonctionne.
00:52:12 :On lance le script.D'accord.On lance le script.Attention,sur DocString,t'as écritle dossierStirling.Ah,c'est vrai.Bref,c'est pas grave.Apparemment,alors,ça ne renvoie pas d'erreur.
00:52:28 :Donc,ce qu'on va faire,c'est ça.Voilà.Je corrige l'erreur.Je vais le voir,vite fait.Dossier0CliveOk.EtAh ouais,je sais ce qu'il s'est passé.
00:53:04 :C'est pas grave.Main.Voilà.Je vais relancer mon script.Effectivement,il nous a bien créé nos deux agendas.Ok.Donc,notre fonctionest opérationnelle.Donc,maintenant qu'on a fait ça,on va essayer de mettrenos rendez-vousdans les agendas.
00:53:34 :Alors,pour voir si nos deux agendasfonctionnent,si ça ne pose pas de problème,qu'est-ce qu'on va faire ?On va mettre le premierdans l'agenda communet le deuxièmedansl'agenda de DocString.
00:53:44 :Voilà.Save.Rdv.Donc, on a dit que le premier,on mettait dans l'agenda commun.Premier,c'est vous.Alors,est-ce que je suis obligéde mettre le nomde l'agenda commun ?
00:54:03 :Non.Exact.Voilà.Et le deuxième,comme je vais le mettredans un agenda spécifiqueautre que l'agenda commun,je vais mettre le deuxièmeRdvdansl'agendaDocString.
00:54:25 :OK.Pour quelles raisonson n'est pas obligéde nommer l'agenda commun ?Alors,tout simplement parce qu'on adéfini notre fonctionou le nom d'agenda,le nom d'agenda ici,par défaut,c'est l'agenda commun.
00:54:43 :D'accord.Donc, partant de là,dès qu'on veut mettrequelque chosedans l'agenda commun,on n'a pas besoin de préciser.Et en plus,on avait mis çaquand on a créécette fonction-làpour si jamaisl'utilisateurn'a pas d'agenda particulierou il ne veut pas,enfin,il ne se rappelle plus
00:55:00 :qu'il doit préciserle nom d'agenda,par défaut,le rendez-vousest gardé au moinsdans un agenda.On va lancer ça,voir ce que ça dit.
00:55:10 :Bon, déjà,le terminal ne hurle pas.On va aller voirnos fichiers.Effectivement,il va bien créermon premier rendez-vous.D'accord.Et dans l'agenda upstream,il va versle deuxième.
00:55:24 :Et tout à l'heure,pour la personnequi avait posé la question,je ne sais plus qui c'était,on voit l'effetde l'indent catdirectement sur le gisem.
00:55:32 :OK.On va vérifiersinotre logique,si notre logiquequ'on avait fait,pour ajouterles rendez-vousau fur et à mesure,elle est bonne.On va bien faireles numérotations.
00:56:16 :Alors, qu'est-ce qui va se passerlà, votre avis ?Combien de rendez-vousje vais avoir par agenda ?Pas seul.Alors ?Ah non,sur downstream,il y en aura trois.
00:56:38 :Sur downstream, trois.Et sur l'agenda commun ?Pas seul.OK.On vérifie.Le terminaln'a toujours pas hurlé.Ah,on a deux rendez-vousdans l'agenda commun.
00:56:53 :Oui, il ajoute.Et dans quatre,ben voilà,c'est parce qu'il ajoute en fait.Là, on voitque notre raisonnementqu'on a suivipour ajouterles rendez-vousfonctionne très bien.
00:57:04 :Et surtout,on voit bienque les rendez-vouspréexistants dans nos agendassont conservés.D'accord.Voilà, voilà.Une question,Stéphane.Oui ?La clé du dictionnaire,comment,comment tu l'as ajoutée ?
00:57:20 :Parce que je ne sais pas,je n'ai pas suivi la question.Alors,Stéphane,c'est ici,c'est ici que ça se passe.Non, la clé,j'ai,je peux mettre les 0,1, 2.
00:57:32 :La clé,justement,c'est ici que ça se passe,celui-là.D'accord.En fait,on est parti du raisonnementqueon prend la longueurde cléde tout l'agenda.
00:57:43 :Ah !Ok.Donc,on utilise comme clépour ajouter le numéro.Ok, je vois.Oui, je vois.Je comprends.Voilà, voilà.Donc,bon,on n'est pas allésuper, super loin,enfin,encore peu,c'est déjà pas mal quand même,sur la conceptionde notre petit,notre petit script.
00:58:05 :Mais...Une question,Stéphane,s'il te plaît.Oui ?Alors,j'ai du mal,en fait,sur la lecture des fichiers.Oui.J'ai quand j'ai ajouté,par ici,le save rendez-vous,si je comprends bien,on ouvre le fichierà mode lecture,on lit tout le compte du fichier,on ajoute le rendez-vous.
00:58:23 :Maintenant,on est dans le fichier,maintenant,disons,on éclase,on remplace tout,en fait.Tout ce qu'on a mis,en fait.Voilà.Donc,c'est comme ça.
00:58:35 :Donc,c'est comme ça.Donc,c'est comme ça.En fait,c'est pour çaqu'on utilise du Don,en fait,parce que c'est plus rapideen termes de lecture et écritureet on ne va pas être embêtépar les sauts de ligneet ce qu'on a bien mis.
00:58:48 :Ah,d'accord.Parce que je me demande,s'il n'y a pas moins,de ne pas juste venirajouter juste ce que je veuxet ça,lire toutet là,on va écrire aussiun petit peu de truc.
00:58:59 :Alors,là,ça serait plusdans une logiquebase de données,finalement.Oui,effectivement.Voilà.Donc,là,on a commencéà recevoir le trucqui a été basésur Apiche Jitson.
00:59:14 :On est partid'un premier tempssur Apiche Jitsonen se disantque bon,là,pour manipuler ce soir,vite fait,c'était plus simpleavec Apiche Jitsonque de recréerune base de donnéespour humaniserdes caset ainsi de suite.
00:59:29 :On allait partirdans des déliresqui n'étaient pasl'intérêt de ce soir.Oui,c'est ce que je comprends.Voilà,voilà.Je pense que c'est pasforcément la seuleet c'est pas forcémentla meilleure,mais c'est celleque j'utilisepour créerdes scriptsou des programmeslorsque vous connaissez.
00:59:47 :Est-ce que vous remarquezun autre point importantet on conclura la suitesur les fonctionsque j'ai utilisées ?Est-ce qu'il y aquelque chosede communque vous remarquezsur chacunede mes fonctions ?
00:59:58 :Est-cequ'il y aquelque chosede communque vous remarquezsur chacunede mes fonctions ?Est-ce queil y aquelque chosede communque vous remarquezsur chacunede mes fonctions ?
01:00:12 :Le underscore,moi,c'est plus cher.Ouais,alors ça,c'est l'underscore,c'est plus difficiled'écriture,mais c'est pas çace vers quoije voulais vous amener.
01:00:23 :Je vais vous donnerla réponse.Je vais vous donnerla réponse.Je vais vous donnerla réponse.Je vais vous donnerla réponse.Je vais vous donnerla réponse.
01:00:33 :Je vais vous donnerla réponse.Je vais vous donnerla réponse.Je viens de voir,sans s'en rendre compte,l'un des premiersprincipes de SOLID,parce que vous avezdéjà entenduparler de SOLID.
01:00:44 :C'est unephilosophie qui estcommune à tous lesprogrammes,tous les langagesde programmation.Là,c'est le S de SOLID,c'est le singleresponsibility.C'est-à-direque chaque fonctionn'est chargéeque de faireune seuleet uniquechose.
01:01:01 :Et ça,c'est un simpleprincipe.Et ça,c'est un autrepoint importantlorsque vousexécutez vosscripts.Ne faitespas defonctionscoûteux de suicide.
01:01:14 :D'accord ?Jamais ?Ou est-ceque c'estparfois utilede le faire ?Il fautabsolumentéviterque çase fasse.D'accord.Pourquoi ?Tout simplementsi unefonction aplusieursresponsabilités,dans le temps,elle va poserproblème entermes demaintenancedu programmeou du script.
01:01:39 :Je vaisprendre unexemplepourl'exemple.Admettonsjefusionneles fonctionscréées etsauvegardéesrendez-vous.Ça peutparaîtrelogique.D'accord ?Il n'y apas deproblématiqueau fond.
01:01:59 :C'estjusteunesituationoùchaque foisque vous allezrecouvrirvotre fonctionvous allezpasser plusde tempsà écrirela listedes argumentsque vous n'allezpas forcémentutiliser toutle tempsd'ailleurspour utiliservotre fonction.
01:02:52 :Donc làc'est valableaussi bienpour les fonctionsque pourles classes.Donc déjàce n'est pasune très bonnesolutionpourl'initialisationde lafonction.
01:03:06 :Doncil va falloirque vousinscrivieztoute la logiquede sauvegardeen base de donnéesdans cettefonction uniqueque vous avezcrééequi à la foiscrée le rendez-vouset lessous.
01:03:21 :Et làvous allezvous retrouveravec quelquechose d'asseztentaculaireet vousallez plussavoir commentil aet elledéfinie.D'accord ?Quels sontces arguments ?
01:03:36 :Quelles sontles valeurs quej'ai besoin d'avoirpour chaque rendez-vous ?Je les définisde sorte quece soit ignobledans ma logique.Si je décidede modifierla manièredont je sauvegardemon rendez-vousça ne me posepas de problèmepuisque làma valeur rendez-vouselle est stockée
01:03:54 :elle est utiliséecomme une seuleunique chose.Si demainje décidaispuisqu'on en avaitbattu en débutque plutôt qu'avoirdate et heurej'ai qu'un seul objetdate timeet bien ça ne posepas de problèmepour ma fonctionsauvegarde et rendez-vousje peux la réutiliseret je ne suis pas obligé
01:04:11 :de modifier une fonctionqui contient20 ou 30 ligneset d'essayer de bienadapter toutparce que j'ai faitune modificationdans ma logique.D'accord ?
01:04:20 :Donc il faut vraimentessayer de s'installerà faireune fonctionune actionetune actionetalorsdes foiscette actionelle va vous prendreun nombre de lignesconséquentesparce quecertaines actionsvont nécessiterdiverses opérationspour réaliser une seuleet même actionmaisil faut sûressayer de garder à l'esprit
01:04:44 :quand vous créezune fonctionelle est responsableque de faireune seule choseet fait paschroma gdcok ?Donc ça c'estles principes solidessi ça vous intéresseje vous inviteà aller regarder un petit peuil y a suffisammentde documentationqui est crééesur le net pour ça
01:05:09 :c'est un sujet intéressantet ça peut êtrebien de s'en inspirerdès le débutdès qu'on commenceà programmerc'est bien de s'inspirerdes principesde la méthode solideok ?
01:05:25 :J'avais une petite questionenfin depuis tout à l'heuremais je voulais pas te coupercomme je suis quand mêmeun peu débutantj'aurais voulu savoirj'étais pas très attentifgson dumppoint dumpça correspond à quoiexactement ?
01:05:43 :Alorslàattends je reprends le trucparce quevoilàicilàc'est comme si je faisaisunreadd'accord ?c'est-à-dire queje lis les donnéeset je les récupèreje les mets dans une variablele truc de gsonc'est quand vous faitesun gson loadd'un fichiergson
01:06:08 :l'avantagec'est qu'il nous renvoieun objet de typedictionnaireok ?et le dumpet bien on va lui passerun dictionnaireet luiil va le transformerl'écriredans le fichiersous un format gsonsauf que comme tu peux le voirhop je rouvre celui-làle format gson
01:06:30 :en type de fichieret un dictionnaireen termespitonsfinalement c'estc'est blanc bonnetbonnet blanc quoic'est juste que ça va permettrede mettrele dictionnairesous un format fichierqui estje trouve que mon motstandardiséet écritde la bonne manièred'accordvoilà tout bêtementmerci
01:07:07 :et ça le format gsonsipar la suitetu évolues un petit peusurl'idéeverstout ce qui estappli webc'est quelque choseque tu vas pouvoirutiliser assez souventd'accordet j'avais pasdit au débutmais accèdequand il y a une questionil faut pas hésiter à la poser
01:07:26 :il faut pas hésiter à interromprec'est pas un problèmeouais mais bonc'est clairouais d'accordmerciest-ce qu'il y a d'autres questionsou est-ce que c'est à peu prèsclair pour tout le mondeouid'accordmercimercimercimercila question que moije vais vous poserc'est
01:07:54 :est-ce que ça vous apermisdede voirde manière un petit peuplus clairecomment vous pouvez s'y prendrepour développer un scriptou développer un programmepersonnellementouiparce que c'est moiqui ai quand même lancéle sujetet ça m'aideen concretdans le durdans le réel
01:08:12 :quelque chosequi me paraissaitun peuun peugrouillard quoilà au momentj'arrive àavancer un peu plussursur la logiquede création de clichésetvoilàça m'a beaucoup apportéd'ailleurs je vais revoir la vidéoet puisvoilàattendezattendezparce que c'est vraique c'est un sujet
01:08:33 :qu'on n'aborde pasforcément souventon pense souventvous faire deson va vous montrertel modulecomment il fonctionneououais c'est de la théorie quoimais c'est vraique c'estune partiequ'on n'aborde pasassez souventet voilàaprès attention heince que je vous ai présenté ce soir
01:08:50 :c'est ma méthode de logiqueouiouaisje suis pasforcémentle docteur Espitonje suis pasle maître de Putonc'est la manièreque j'utilisepour développerdes scriptset des programmesmais ce qui m'intéressaiten faitc'est la logiqueque tu utilisesderrièreetc'est cette logique là
Aucune occurrence trouvée pour « ».
00:00:00
Présentation des objectifs et questions des participants
00:03:24
Choix du projet: créer une extension agend
00:07:11
Structurer la logique de création de rendez‑vous en Python
00:26:06
Sélectionner et ouvrir le fichier JSON
00:33:42
Gestion des modes et sécurité du fichier
01:00:37
Introduction aux principes SOLID pour améliorer le code