Session du 16 avril 2022 à 18h00
Veille & Discussions
Outils & IDE
DevOps & Environnement
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
Sécuriser un script Python et découvrir PyCharm
Discussion autour de la protection par mot de passe d’un script Python et prise en main de PyCharm, avec un focus sur l’organisation de l’apprentissage au quotidien.
00:00:00 :alors attend je vais vérifier, moi je me suis fait avoir aussi, je sais plus quand, cettesemaine où j'ai vu j'ai vu Thibaut et puis j'ai bugé et puis en fait c'est vrai, on ne sait plusquel c'est. alors je vais regarder parce que je crois que Chrome va encore m'embêter,
00:00:19 :avec les partages d'écran il est vraiment pénible quand il n'est pas à jour. alors partage d'écran,si je partage ça, non ça a l'air de marcher, ouais ok parfait ça marche, ok super. salut Romain,
00:00:44 :j'ai le verre d'eau pour faire officiel devant vous mais j'ai le porto à côté qui est horscaméra. comment ça va? vous avez pu un peu faire du Python cette semaine? non ouais c'est
00:01:11 :toujours, je sais plus qui, je crois qu'il y a quelqu'un qui m'avait, c'était sur ce serveurlà, qui m'avait parlé de potentiellement faire un article, une vidéo, enfin quelque chose pourjustement un peu parler organisation, peut-être que Camille aussi pourrait en parler du 2.7,
00:01:30 :2.7, 2.7 quoi? de quoi parles-tu Camille? parce que Camille du coup a du Python 2.7,ah ok t'as fait du Python 2.7 oui, oula, ça existe encore ça? oui parce que du coup Camille,
00:01:46 :ça t'a fait un an, un an et demi de parcours open classroom en reconversion, et là actuellement tubosses en tant que développeuse, donc on avait fait un podcast d'ailleurs, je l'avais partagéjustement sur le discord, ton épisode, celui avec Sandy aussi, celui avec, merde j'ai plus son nom,
00:02:10 :Ségolène, donc des gens en fait qui sont passés par des parcours de reconversion, et que ce soitpour une reconversion ou même, l'idée n'est pas forcément que pour des gens qui se reconvertissent,mais quand on veut apprendre quelque chose c'est sûr que d'arriver à trouver le temps et de
00:02:25 :commencer à s'organiser c'est quelque chose qui n'est pas toujours facile, peu importe le domaine,même après c'est un peu valable aussi, peut-être aussi Camille tu pourras en témoigner, que mêmeaprès quand on commence à bosser, vu que c'est un domaine en fait où on continue toujours d'apprendre,ce qui est très intéressant d'un côté, mais qui peut aussi à la longue être un peu frustrant,
00:02:47 :parce qu'on fait ça toute la journée, et quand on rentre le soir des fois, quand on a envie de semettre à jour sur des trucs, on sait qu'on va aussi devoir le soir continuer à faire du Python,à apprendre des nouveaux trucs, et c'est cool d'un côté de pouvoir continuellement apprendre,
00:03:03 :mais c'est vrai que de trouver un bon équilibre c'est parfois difficile. Salut Christophe! Doncce soir on va voir, je reviens dans les générales, donc il y avait, alors je sais pas si tous lesgens qui avaient posé des questions, parce que des fois je me plante encore un petit peu,
00:03:29 :là normalement vous n'êtes encore pas suffisamment nombreux pour que je me plante trop dans les nomset tout, mais ce qui est plus compliqué c'est entre les pseudos discord et les prénoms des gens,donc Roquet, je sais jamais si c'est Romain ou William, c'est Romain, c'est ça, Romain Roquet,
00:03:47 :c'est ça, donc je me plante pas, parce qu'il y a William, donc WheelRiders, donc ça aussi,vous êtes cohérents sur les pseudos. Donc oui il y avait Roquet alias Romain, donc tu parlais
00:04:00 :pour la sécurité, donc ça on va en parler, on va en parler tout de suite. Ah merci Thibaut,ouais c'est vrai que t'as mis ton pseudo discord, c'est plus facile comme ça ouais. Donc oui on va
00:04:17 :parler de ça, on va parler de sécurité, je vais te décevoir d'ailleurs Romain, parce que c'est pas,j'ai pas, en tout cas à ma connaissance je n'ai pas de solution à t'offrir, enfin j'ai une solutionmais c'est pas celle que tu veux, par rapport à la protection dans un programme, protéger certaines
00:04:35 :parties avec mot de passe, en tout cas si tu veux rester 100% local c'est compliqué, voireimpossible. A ma connaissance, je veux pas non plus dire que je connais tout, mais de ce que j'ai
00:04:48 :vu et de ce que je sais, ce n'est pas possible, mais je vais te proposer des solutions. On vaaussi voir du coup, je crois que c'était, donc oui il y avait le PyCharm c'est ça, donc ça c'étaitWilliam. L'organisation, alors je te demanderai aussi les précisions par rapport à l'organisation,
00:05:07 :est-ce que c'est l'organisation juste vraiment en tant que commencer un projet, comment est-ce qu'oncommence un projet directement avec PyCharm, est-ce que c'est finalement plus de l'organisation,peu importe l'éditeur, l'organisation de projet, ou est-ce que c'est, et ça j'en parle dans lesformations, les formations PyCharm, de l'organisation en termes, parce que par exemple dans Django des
00:05:29 :fois on commence à avoir, je prends l'exemple de Django, mais ça peut être d'autres frameworks oud'autres gros projets comme ça où on a plein de fichiers qui sont générés, les fichiers de vue,d'URL, de formulaire, d'API, tout ça. Et il y a des façons dans PyCharm de facilement filtrer
00:05:46 :en fait des fichiers selon les types, selon les noms, et ça permet de facilement s'y retrouver,parce que c'est vrai que dans un projet Django on passe son temps à changer de fichier,qu'entre les fichiers HTML, les fichiers de vue, les fichiers d'URL, toutes les deux secondes onchange de fichier. Donc c'est important et PyCharm est génial pour ça, moi je l'adore, c'est une des
00:06:04 :raisons aussi pour lesquelles je préfère moins VS Code, aussi parce que je le maîtrise moins,il y a peut-être des manières de faire qui existent que je connais pas, mais je trouve que pour lemultifichier le quick search de PyCharm c'est une tuerie. Donc je vais vous montrer un petit peu
00:06:19 :tout ça. Et est-ce qu'il y avait, pour commencer, des questions spécifiques sur des petits trucspeut-être que vous n'avez pas eu le temps d'évoquer sur le Discord, des trucs que vous avez en tête,là vous dites j'ai vu ça cette semaine et puis j'aimerais bien qu'on en reparle aussi,
00:06:35 :ou on commence directement avec le côté mot de passe. Salut à tous, je sais pas si vous m'entendeztrès bien, j'ai pas un casque de haute qualité. On t'entend, c'est bon. Ok, bonjour à tous,
00:06:50 :juste voilà, moi je suis en formation de Python, donc j'ai pas fini la formation, je suis encore,je passe beaucoup de temps à faire les exercices et à vraiment creuser la tête. De ce que j'ai pu
00:07:02 :remarquer, mes exercices en fait j'avance bien, j'ai bien la, on va dire la logique à l'exercice.Après ce qui me manque c'est des petits trucs, comme tu dis, voilà, je pense que ça viendra vousfaire en mesure, mais c'est assez frustrant pour moi de ne pas retomber sur le même code que toi,
00:07:18 :même si tu me dis que effectivement c'est pas grave, le résultat ça marche, mais je préfèrete suivre à toi, ta manière de faire, parce que l'expérience que t'as quoi, tout simplement. Au
00:07:31 :niveau des variables, j'ai bien compris que j'avais tendance à faire un peu comme, je crois que c'estRoquet qui en a parlé cette semaine, ou quelqu'un d'autre, Romain, je sais plus, de parler enfrançais. Effectivement apparemment c'est pas un truc à faire, donc il faut que je m'habitue à ça,
00:07:47 :à reconvertir tout en anglais, forcément, et je me suis beaucoup cassé la tête sur les boucles,j'avais pas compris qu'effectivement je ne pouvais pas boucler sur, par exemple, un chiffre,où ça ne m'envoyait que des caractères, enfin que des strings. Donc voilà, donc j'avance,
00:08:08 :mais effectivement je passe beaucoup de temps sur les exos, parce que ça me semble intéressant,et ça me fait manipuler pas mal le code. Ouais, alors il y a plusieurs choses, je sais que dans
00:08:19 :certains exercices, et je sais jamais trop comment me positionner là-dessus, dans certains exercicesje mets des noms de variables en français, il y a un peu du franglais on va dire, parce qu'effectivementje trouve que des fois dans les explications après, c'est plus clair en fait, quand par exemple,
00:08:37 :je sais pas, je prends un exemple, si t'as une variable qui s'appelle nombre d'élèves, c'estplus facile après quand tu lis la solution de l'exercice, d'avoir un nom de variable en français,parce que ça donne des phrases que tu peux lire, quoi qu'ils sont, on prend le nombre d'élèves,
00:08:51 :dans la variable nombre d'élèves, etc, plutôt que de dire number of students, etc, et d'avoir un nomanglais comme ça au milieu d'une explication en français, je trouve que ça fait bizarre. Alors
00:09:00 :après effectivement, dans un script, au-delà d'un exercice, dans un script, je conseille toujours,oui, et c'est même pas juste moi, c'est les conventions de Python, et même je dirais dedéveloppement en général, ça se retrouve dans d'autres langages de programmation, de tout mettreen anglais, même si, et c'est une question que je me pose sur Dockstring, où je te dirais que,
00:09:23 :donc sur Dockstring où je suis à 100%, c'est moi qui développe tout, y'a pas une équipe tu vois,et ça m'arrive, donc par habitude du coup j'ai tout fait en anglais, donc les noms des variables,c'est sûr que là dans un projet je ferai toujours en anglais, par contre là où j'ai commencé tu
00:09:40 :vois à mettre certaines choses en français, c'est dans les Dockstrings, donc les Dockstrings,les chaînes de, pas le site web, les chaînes de documentation, et même tout ce qui estcommentaires, parce que finalement je trouve que quand c'est expliqué en anglais, une Dockstring,t'as dit il faut que t'arrives sur la fonction et rapidement tu vois ce que ça fait, etc,
00:10:02 :sinon en fait tu la lis pas, et là en fait je commence à les mettre en français, parce queje me dis que bon en plus je suis tout seul, mais même je me dis si j'étais avec plusieurs,je sais pas, y'a un côté si vraiment finalement t'es sur un truc français, je sais pas,
00:10:18 :je me pose la question, donc en général après sur des projets où vous êtes à plusieurs,bon bah même si c'est des projets en France, il vaut mieux toujours faire les choses en anglais,au cas où, parce que si jamais tu engages un freelance, ça va être compliqué s'il faut
00:10:33 :qu'il traduise toutes les Dockstrings de son côté en anglais, mais oui c'est moins évident sur cestrucs là de documentation, je me dis quand t'as tout qui est en anglais, finalement ça enlève unpeu ce côté pratique d'arriver sur ton code et d'avoir des phrases en anglais qui sont pas
00:10:49 :forcément très explicites parce qu'on a pas forcément un niveau incroyable en anglais,donc ça donne des phrases qui sont un peu, parce que dans les Dockstrings souvent tu veux expliquerles choses de façon un peu fine, tu vois, de vraiment expliquer le truc, donc quand t'es enanglais c'est un peu compliqué. Mais oui et sur les boucles, après sur les boucles de tout ça,
00:11:08 :et le fait que t'es pas forcément la même solution que moi, je te dirais que c'est mêmequand t'auras un niveau plus avancé, la probabilité que tu tombes, à moins que ce soit sur vraimentdes exercices très très simples, et encore, la probabilité pour que tu tombes exactement sur la
00:11:25 :même chose que moi est quand même assez faible, parce qu'il y a tellement en fait de façons defaire les choses, même sur des trucs simples, et donc ça faut pas trop s'en faire, je pense qu'ona tous une façon différente de coder, on apprend aussi certaines façons de faire, tu vois, je pense
00:11:41 :que sur des exercices comme ça où il n'y a pas vraiment des notions de performance aussi, toutesles solutions sont un peu valides, tu vois, parce que finalement bon, après si tu t'en vas sur desproblèmes d'algorithme où vraiment il y a des notions de performance qui rentrent en jeu, là
00:11:56 :tu vas peut-être retrouver des similitudes dans des gens qui vont résoudre un même exercice parcequ'ils vont utiliser précisément les façons de faire qui vont permettre d'avoir un codeefficient, mais après ouais c'est ça sur des, moi je vois des exercices où voilà il y a des gensqui plutôt que de passer par un append, ils font un plus dans leur liste, plutôt que de faire un
00:12:17 :slice, ils prennent, enfin tu vois, ils utilisent une autre façon de faire pour récupérer, c'est enfonction de ton apprentissage, ça va dépendre, et je pense qu'il y a aussi effectivement, tu tecalques après sur la personne de qui tu apprends, je le vois notamment sur les formations d'interface
00:12:32 :graphique où moi j'organise mon code d'une certaine façon en séparant, pour ceux qui ont vu lestutos d'interface graphique ça va vous parler, en séparant la création des widgets, de lamodification, de l'ajout dans les layouts, etc. Et donc quand il y a des gens qui suivent mes
00:12:46 :tutos je retrouve ça dans leur script après, parce qu'ils aiment bien, voilà, généralement la façond'organiser de cette façon, et donc il la copie et tu fais des émules un peu, un peu si tu veux.
00:12:57 :Mais du coup quelqu'un qui apprendra avec un autre prof, tu vois, peut-être qu'il aurait une façontotalement différente de faire qui n'est pas forcément moins bien. Donc ouais, faut pas trop
00:13:06 :s'en faire là dessus, mais c'est vrai, c'est bien de s'entraîner, de pas hésiter aussi justementdu coup d'aller voir ailleurs que sur docstring, d'aller chercher sur des sites anglais, sur descodes académique, pour justement voir d'autres façons de faire. Je pense que là dessus c'est
00:13:18 :intéressant. Sur les cours, pas forcément, parce que bon, un cours expliquer une boucle,une variable ou des trucs comme ça, bon, sur les théories de base c'est plus la méthode pédagogiquequi va être différente, mais sur les résolutions d'exercice ça peut être bien de voir différentesfaçons de faire, et c'est ce que vous voyez après quand vous êtes dans une entreprise,
00:13:37 :c'est que vous vous rendez compte que vos collègues ils ont pas du tout la même façon d'aborderd'aborder les problématiques, ce qui peut causer des problèmes d'ailleurs dans des équipes, parceque pour avoir un code uniforme, c'est pour ça qu'on fait aussi beaucoup de code review,généralement parce que ça permet d'avoir quelqu'un qui est un peu plus senior, qui va permettre au
00:13:56 :delà du code en tant que tel, de regarder, de vérifier que le code est fait et pensé de lamême façon, si vous voulez. Et donc ça c'est aussi important, c'est pas le genre de truc auquel
00:14:07 :on pense au départ, mais il y a généralement quelqu'un qui va s'occuper, notamment dans cescode review, de dire bon bah effectivement ton code il marche, mais tu vois nous on utilise plutôtces façons de faire, donc on va changer ton code pour que ce soit plus cohérent avec le reste de
00:14:21 :l'équipe. Merci en tout cas, l'anglais ça me pose, enfin j'ai mon petit niveau, mais ça me faitprogresser du coup, en cherchant les variables tout ça, donc c'est l'avantage, donc je vaism'y coller, je vais y rester comme ça, effectivement c'est une bonne façon de faire, et pour ce que
00:14:40 :tu disais effectivement sur les exos, je note que c'est pas grave si je trouve pas le même code quetoi, sachant que je trouve quand même que ton code, ta manière de t'organiser, forcément tu doispasser beaucoup moins de temps que moi à trouver ça, et ce que je voulais dire aussi, c'est que
00:15:01 :oui, mon code est très compliqué, en fait j'arrive au même résultat, mais je passe par des phases quetoi en fait tu vas plus dans le but, et c'est vrai que ça je mis force, je pense que c'est dans tonorganisation, quand tu démarres un projet en fait, c'est ça, tu as une méthode, et moi c'est vrai que je pars un peu
00:15:24 :dans tous les sens, après j'organise, mais c'est un peu compliqué dans ce sens là. Je te dirais que des foisen fait c'est pas aussi, parce que bon toi tu vois la solution qui a été faite, pensée, des fois mêmeça m'est arrivé de faire des solutions pour des exercices et de me rendre compte trois mois après
00:15:43 :qu'il y avait une façon beaucoup plus efficace de le faire, donc faut pas croire non plus que tu voisquand tu vois un exercice où il y a quatre lignes de code, j'ai fait les quatre lignes de code d'uncoup comme ça, des fois ça m'arrive de faire quatre cinq lignes et puis de me dire bon, parce que
00:15:56 :justement en faisant l'exercice, en réfléchissant, au bout d'un moment, ben voilà tu fais,comme tu sais comment faire les choses, tu avances étape par étape, et tu fais les chosessans forcément avoir le big picture, sans forcément avoir tout l'exercice en tête, donc turaisons un petit problème, tu le fais d'une façon, et ça m'est arrivé récemment, ben juste en fait
00:16:17 :je crois que c'est précisément l'exercice là sur lequel j'ai fait la vidéo, je sais passi vous l'avez vu la vidéo toute dernière sur youtube, ou en fait c'est marrant parce quetu vois c'est donc cet homme, Tommy là sur le serveur, qui a fait cet exercice, et lui du coup
00:16:33 :il est, c'est ça en fait, il a fait l'exercice de la façon, alors je sais plus qui a fait la façonque je montre en premier dans la vidéo, mais il avait fait un truc un peu plus compliqué je croisque ce que je montre dans la vidéo, et donc du coup moi j'avais commencé par simplifier son code
00:16:52 :parce que justement il faisait des trucs un petit peu redondants, donc j'avais simplifié le truc,et en le simplifiant je me suis dit ah oui c'est marrant, tu vois moi je l'aurais pas abordé commeça, et puis après du coup j'ai enlevé son code et je me suis dit en fait moi j'aurais abordé le truc
00:17:05 :différemment, parce que pour faire rapide tu vois c'est une liste où en fait tu accumules lesnombres, et le truc c'est que dans toutes les listes que tu passes le premier nombre il changejamais, donc tu vois moi j'ai abordé le truc en me disant bon bah je règle déjà le cas de ce
00:17:21 :premier nombre, donc je l'enlève avec la méthode pop, et comme ça le premier nombre il est plusdedans, et après je m'occupe des autres, et en faisant ça je me suis rendu compte que du coupma solution était, c'est pas quelque chose je pense que la plupart des gens auraient fait de base,
00:17:35 :parce que je pense que voilà il y a la façon d'aborder un problème, les gens sur un truc unpeu récursif comme ça se dirait probablement plutôt qu'il faut vraiment passer à traverstous les nombres, moi sachant que la méthode pop existe et sachant que j'ai déjà fait ça sur d'autres
00:17:51 :exercices, tu vois j'avais un peu cette idée de me dire bon on règle ce cas là et après on passeà la suite, et finalement ça m'a fait arriver sur une solution qui me fait additionner moins dechoses, et sa solution lui après coup je me suis dit en fait elle est plus logique de prime abord
00:18:02 :parce que tu fais la somme de tous les nombres à chaque fois, c'est avec des fonctions aussi plusde base, mais enfin c'était intéressant, allez voir cette vidéo parce que sinon tu vois les deuxapproches et tu vois à quel point tu peux résoudre le même problème en partant d'une approche
00:18:18 :différente. Et oui, c'est super intéressant, c'est super intéressant et c'est marrant justementqu'on réfléchisse tous de manière différente et c'est ça la richesse du truc. Après il y a un
00:18:39 :truc vraiment sur l'exercice, il y a juste un côté aussi boîte à outils un peu que je dis,c'est que c'est sûr que forcément c'est le genre de truc au bout d'un an tu vois tu t'en rends pluscompte mais en fait tu as beaucoup beaucoup de méthodes sur les chaînes de caractère,
00:18:52 :sur les listes, tous ces trucs là que tu connais et qui te permettent justement d'aborder lesproblèmes de plein de façons différentes. C'est sûr qu'au début quand tu connais juste quelques
00:19:02 :méthodes pour chaque type d'objet, tu vas forcément penser avec ce spectre là. Et ça c'est intéressantparce que tu vois je trouve que sur javascript par exemple tu as beaucoup moins de ces méthodes demanipulation de chaînes de caractère, de listes etc. Il y a plein de méthodes qui n'existent pas,
00:19:20 :qui existent en Python et du coup ça te force à penser un peu plus bas niveau je dirais, c'estque tu es obligé d'aller vraiment dans un côté de manipulation de data pur alors qu'en Python tupeux justement, c'est ça qui fait que des fois je trouve il y a 3 ou 4 solutions différentes parce
00:19:33 :que tu peux utiliser 3 ou 4 méthodes différentes, tu peux faire un slice, tu peux enlever un truc,tu peux prendre un bout de quelque chose, tu peux le transformer aussi parce que des fois il y a deslangages de programmation qui ne vont pas t'autoriser tout ce qu'on peut faire en Python,
00:19:46 :de passer d'un type à un autre. Ce qui fait que des fois aussi je vois des gens qui font des,tu parlais de la boucle tu vois sur le nombre qui n'était pas possible, donc des fois tu vas voirdes gens justement qui vont être bloqués parce qu'il y a un truc qu'ils ne peuvent pas faire,
00:20:02 :et ils vont du coup, et c'est là que ça va complexifier à fond le truc parce qu'ils disentbon bah là je ne peux pas boucler sur ce nombre donc je vais le transformer en chaînes decaractère et là ils commencent à faire un truc super complexe parce que c'est ça qu'ils connaissent,
00:20:13 :ils connaissent les nombres et les chaînes de caractère et finalement après toi tu sais quetu peux passer par une autre façon qui est plus efficace. Donc au début voilà c'est normal que
00:20:20 :des fois quand tu n'as pas toute cette boîte à outils tu passes par des façons détournées etc'est sûr que c'est pour ça qu'il faudrait revenir aussi je pense que ça peut être intéressant derevenir sur les exercices. Tu vois là tu les fais tous une première fois et dans six mois tu remets
00:20:33 :le truc à zéro et tu les refais tous et je pense que tu verras que juste en ayant plus de bagagescomme ça tu feras les choses différemment. C'est ce que tu avais dit déjà et c'est vrai qu'il me
00:20:44 :tarde de les avoir signés et de recommencer parce que forcément j'aurais une approche différente.Par contre effectivement tu mets à côté AIDE dans les exercices que je n'utilise pas,je me force à ne pas utiliser ça. Je suis vraiment à peu près et moi justement je vais sur d'autres
00:21:04 :sites, je me documente, enfin voilà j'essaye de chercher effectivement la solution et ça marchepuisque on tombe à peu près d'accord sur les solutions prouvées quoi, sur ça en tout cas,donc sur ces méthodes. Tu arrêtes de parler, je ne vais pas y passer la nuit.
00:21:22 :Non mais je vais juste finir en disant que c'est valide aussi pour les projets, je voyais Loïc quia fait un bon premier projet, qu'il a commencé à faire en orienté objet etc où ça commence à êtrefini et des fois moi j'avais pris l'habitude comme j'apprenais des fois de faire table rase,
00:21:42 :tu vois de se dire bon, parce que ça m'est arrivé en fait de perdre carrément le code de projet etdonc sur le coup tu te dis ah merde faut tout recommencer et en fait tu te rends compte qu'enrefaisant tout bah en fait tu as encore le code dans la tête, tu sais ce que tu avais fait et
00:21:58 :puis en fait tu peux réapprocher les trucs différemment avec une base plus saine, avecdéjà un bagage et du coup sur les projets je trouve que c'est intéressant aussi des fois dese dire voilà soit en utilisant une autre techno tu vois tu dis et là je pense qu'il y en a quelques
00:22:10 :uns qui commencent à faire ça tu vois qu'on fait un projet en tinyDB et puis ils vont essayer de lefaire avec une base de données SQL donc c'est bien de prendre ce que tu as déjà et d'essayerjuste de le monter un peu donc c'est valide pour les exercices, tu prends la base que tu avais
00:22:23 :faite et tu essaies de voir si tu peux pas l'améliorer avec moins de lignes de code,avec des trucs plus efficaces et pareil pour un projet, est-ce que je peux l'organiser différemment,est-ce que je peux traiter mes données différemment tu vois, donc faut pas hésiter de faire table rase
00:22:34 :des fois je pense. Alors, pas de soucis et donc on va passer du coup à ta question Romain sur lesdonc ton, donc en fait c'est un projet que tu fais avec Qt avec PySite si je me trompe pas etdonc un projet d'interface graphique et le truc c'est que donc tu aimerais restreindre certaines
00:23:02 :parties du programme à certains types d'utilisateurs qui auraient donc un mot de passe et donc ce queje veux dire c'est valide pour toute cette idée en fait de cacher, alors que ce soit cacher du codetu vois, parce que je sais que c'est quelque chose qui revient très souvent aussi, les gens ils
00:23:18 :veulent, ils aimeraient bien partager des programmes en se disant j'aimerais bien que les gens n'aientpas accès au code source du programme et ça peut être aussi donc restreindre juste sans que ce soitdirectement le code source, se dire j'aimerais bien restreindre l'accès à ces fonctionnalités àcertains utilisateurs. Alors le problème déjà, tout est un peu lié mais le problème en fait
00:23:38 :quand tu veux restreindre l'accès à ton code c'est que Python, alors il y a des mécanismesqui existent, tu peux trouver des bibliothèques qui vont te faire ça, qui vont t'offusquer le code,donc qui vont te mettre du charabia à côté etc, le truc c'est qu'il y a l'inverse qui existe,
00:23:52 :donc c'est en fait très, c'est quasiment impossible, en tout cas moi de ce que j'avais vu,de vraiment complètement masquer ton code source dès que quelqu'un en fait télécharge son projet,même si tu fais un.exe ou un... une application sur macOS ou un exécutable sur Linux, même en
00:24:11 :transformant en fait tout ton code en un seul fichier, il y a des programmes et tout ce qu'ilfaut qui existent pour à partir du fichier récupérer le code, même si le code est offusqué derrièrepour redéchiffrer le truc et donc retomber sur tes pieds. J'avais déjà essayé le truc justement
00:24:24 :avec du PySide et effectivement tu pouvais mettre deux trois couches comme ça pour essayer de masquerle truc et en fait tu retrouvais le code. Et après donc le deuxième problème un peu là-dessus qui va
00:24:38 :avec ce premier là, c'est que tu pourrais donc mettre une base de données, en fait si tu restes100% local et c'est là où je vais faire la différence et c'est là où je vais te donnerune piste de solution, c'est que si tu restes 100% local, sachant que en fait tu peux pas vraiment
00:24:52 :masquer ton code, tu pourrais donc par exemple mettre une base de données dans laquelle tu vasstocker des mots de passe et tu les stocks avec un hash donc tu ne stocks pas le mot de passedirectement et restreindre l'accès à cette base de données forcément avec un utilisateur et un mot
00:25:06 :de passe. Le truc c'est que forcément ton script Python pour qu'il accède à cette base de donnéeslui il faut qu'il se connecte, que ce soit avec un token, avec un mot de passe en clair, avec un hash,peu importe, il faut qu'il ait une clé quelconque pour pouvoir se connecter à cette base de données.
00:25:20 :Et du coup cette clé quelconque, généralement ce qu'on fait c'est qu'on la met dans un fichierséparé, donc par exemple si tu fais, je prends l'exemple d'un projet Django, un projet web,tu vas pas mettre ce fichier dans ton git, tu vas voir ton projet dans lequel dans tes fichiers de
00:25:38 :settings tu vas dire va chercher dans les variables d'environnement ou dans ce fichier qui n'est pasdans ton projet, qui est juste sur le serveur en fait, va chercher les clés donc comme ça danston fichier Python en fait t'as pas le mot de passe ou la clé, t'as juste un truc genre get token
00:25:53 :ou token key et après lui il sait qu'il faut qu'il aille chercher dans le fichier cette clééquivalente. Le problème donc c'est que si t'es 100% local, ce fichier il sera sur l'ordi de la
00:26:03 :personne tu vois. Donc si tu distribues ton programme à un ami, si tu ne distribue pasce fichier d'environnement avec, ton programme il ne saura pas où aller chercher les clés,il va essayer d'aller chercher dans les variables d'environnement ou dans le fichier et le fichiersera pas là donc il y aura un problème. Donc il faudrait soit que tu puisses créer un utilisateur
00:26:24 :lui-même pour avoir accès à cette base de données et puis qu'il puisse donc créer cepremier utilisateur d'accès à la base de données qui serait protégé du coup d'ongle. C'est une
00:26:40 :librairie William? Non je sais pas. Mais parce que souvent donc une clé de sécurité. Ah tu veuxdire un oui c'est ça un dongle, oui une clé USB c'est ça oui. Oui c'est ça donc il y a probablement
00:26:58 :des moyens un petit peu détournés comme ça de faire. Après généralement en fait ce que tu faisc'est que, et c'est ce qu'on voit dans tous les programmes, quand t'as un programme maintenant tutélécharges un programme c'est qu'en fait tu vas avoir un serveur et alors c'est la solution que
00:27:15 :je propose et qui me semble est la plus appropriée, c'est d'avoir, mais donc ça nécessite uneconnexion internet c'est sûr, mais c'est d'avoir un serveur sur lequel en fait tu vas pouvoir alleravoir une base de données ou n'importe quoi un service d'authentification qui fait que la personnequi a ton programme elle n'a pas accès à ce serveur et donc elle peut pas aller regarder tu
00:27:38 :vois les clés d'accès. Donc ça ce serait une façon de faire d'avoir ton programme qui t'a unlogin etc et puis après tu permettes soit de créer un utilisateur soit tu as déjà un mot de passe etc'est juste le mot de passe il est enregistré sur ton serveur et tu le vérifies avec un hash
00:27:55 :justement, tu vérifies que c'est le même. Je ne sais pas si les hash c'est très, tout le mondesait à peu près ce que c'est ou pas. Je peux l'expliquer très rapidement si il y en a qui ne
00:28:11 :savent pas. Donc un hash en fait c'est pour pas stocker en fait le mot de passe en clair dans labase de données donc tu vas utiliser un algorithme qui va permettre de transformer une chaîne decaractère en gros en un hash donc qui a un truc long comme le bras et en fait le principe de
00:28:32 :ces hash c'est que ça marche dans un sens mais pas dans l'autre. Donc en fait tu peux convertirla chaîne de caractère bonjour en hash et ça va te donner donc une grande chaîne de caractère maisaprès à partir de la chaîne de caractère qui fait 32 ou plus caractères tu peux pas récupérer en sens
00:28:54 :inverse le mot de base parce que c'est, j'ai prévu de faire une vidéo youtube là dessus d'ailleursparce que c'est assez intéressant. De prime abord on se dit bah c'est bizarre si on arrive à faire
00:29:03 :un truc dans un sens on devrait pouvoir le faire dans l'autre sens mais pas du tout en fait c'estassez marrant et c'est très difficile de bien expliquer ce concept parce que ça semble un peualler contre la logique mais donc en gros tu peux pas donc tu peux convertir un mot de passe dans
00:29:17 :une chaîne de caractère compliqué mais à partir de la chaîne de caractère compliqué tu peux pasrécupérer le mot de passe. Mais ce que tu peux faire du coup, oui effectivement sur les cryptos
00:29:25 :et tout, bah git aussi est bâti là dessus en fait l'entièreté de git à chaque fois que tu faisune opération ça convertit ton truc en hash et le truc intéressant c'est que généralement leshash sont uniques donc en fait tu peux convertir même un texte entier, une chaîne de caractère
00:29:41 :peu importe dans un hash et après tu peux comparer donc ce hash parce qu'à chaque fois ça va donnerla même chose si tu convertis avec un algorithme le mot bonjour en hash ça va toujours donner lemême hash donc si tu veux comparer après et t'assurer que c'est bien bonjour il suffit de
00:29:58 :comparer le hash avec celui que tu auras reconverti donc quand quelqu'un a son mot de passe tu lereconvertis avec le même algorithme dans un hash tu vérifies qu'ils correspondent bien à celui quetu as dans ta base de données et si c'est le cas ça veut dire que c'est le bon mot de passe. Et ça
00:30:12 :ça permet en fait de pas stocker les mots de passe en clair donc plutôt que de stocker hello ou 1 2 3soleil dans ta base de données ce qui serait problématique si quelqu'un a accès à la basede données parce qu'il aurait le mot de passe en clair, là tu convertis le mot de passe en hash
00:30:25 :comme ça si quelqu'un il a accès à la base de données il aura juste des longues chaînes decaractères sur lesquelles il peut pas faire le sens inverse et donc il pourra pas selogger avec cette chaîne de caractère sur ton compte. Donc voilà vite fait pour les hash.
00:30:41 :Et par exemple sur Django tu vois ce genre de trucs qui sont faits automatiquement de plus enplus maintenant voilà c'est quand même rare de trouver des bases de données où tu as des trucsen clair ou alors c'est vraiment justement parce que tu utilises un peu voulu réinventer la roue
00:30:58 :et si tu fais un petit programme où tu n'as pas envie de t'embêter à utiliser des librairies ouun système d'authentification comme ça et que tu fais juste récupérer dans un textbox le mot depasse et tu le stock dans un json en clair et qu'après tu fais juste le comparer c'est pas
00:31:12 :pas ouf. D'ailleurs c'est ce que j'ai souvent vu en fait quand tu utilises peut-être ça que tu asvu d'ailleurs Romain si tu fais des recherches un peu sur comment protéger un script justementavec un mot de passe la plupart des gens vont te dire de faire comme ça mais le problème c'est
00:31:29 :que bon ça marche si tu envoies ça à ta tante qui sait pas comment aller chercher le truc quoiou effectivement tu pourras mettre un mot de passe et puis si elle essaye ça va pas marchermais pour n'importe qui qui sait un petit peu voilà qu'il peut aller regarder dans le code
00:31:43 :etc bah il trouvera le mot de passe et puis limite il pourra juste avec Python changer dans ton codeet puis voilà donc voilà. Est-ce que ça répond un peu à ta question Romain? Oui oui complètement
00:31:57 :après moi la visibilité du code ça je m'en fiche qu'on puisse regarder dedans ouais après c'étaitouais c'était surtout comment le stocker et comment justement pouvoir s'assurer que la personne tapele bon mot de passe par la suite et du coup de l'explication du hash je comprends déjà rien
00:32:19 :que quand tu t'as oublié un mot de passe et que tu demandes à le récupérer je comprends maintenantque les boîtes ne te renvoient pas le mot de passe directement parce qu'en fait ils peuvent pasils l'ont pas simplement. Ouais c'est ça moi j'ai aucun mot de passe en fait ouais tu as juste la
00:32:34 :chaîne de caractère et tu peux comme tu peux pas faire tu pourrais en fait et c'est ça en fait unpeu les trucs de tels et quand tu veux craquer un mot de passe en fait moi si je voulais à partiesi quelqu'un me dit j'ai oublié mon mot de passe et que on voulait le retrouver imagine tu vois moi
00:32:50 :je pourrais dire bah j'ai ce hash dans ma base de données et si la personne elle sait que son motde passe c'était bonjour avec trois chiffres derrière bah là on pourrait faire un petit scripttrès simple qui convertirait bonjour 1 bonjour 2 bonjour 3 etc jusqu'à 999 en hash et à chaque
00:33:08 :fois on le comparait et puis à un moment on tomberait tu vois sur le même on se dirait bonbah voilà donc en fait ton mot de passe c'était bonjour 357 parce qu'on a réappliqué le mêmele même algorithme sur toutes ces chaînes de caractère et on est retombé sur nos pieds mais
00:33:20 :dans le sens inverse on pourrait pas dire à partir de cette chaîne de caractère dis moi si c'estvoilà si c'est bonjour 357 ça tu peux pas donc ouais ça c'est le c'est la base de la sécuritédans les bases de données et c'est vrai que des fois tu vois encore des sites web où les mots de
00:33:36 :passe sont en clair et tu te dis même des gros trucs quoi et tu me dis c'est pas ouf donc et aufinal c'est assez con quoi t'as plein de plein de librairies de trucs qu'il faut là pour pour faireces opérations donc c'est pas du tout compliqué tu vois et le principe même est très simple
00:33:56 :quoi tu convertis le truc après tu checks si les h sont égaux et puis c'est tout quoi s'ils sontégaux bah tu peux tu peux authentifier la personne mais c'est vrai que les il y a beaucoup de trucsqui a en ce moment il ya beaucoup justement cette semaine je faisais un truc là sur docstring avec
00:34:12 :les les enfin j'ai rajouté une petite partie d'api sur docstring et du coup avec django restframework tu peux tu as différentes façons en fait d'authentifier une personne donc tu peux lefaire avec mots de passe identifiant etc et ce qui est beaucoup fait que vous avez peut-être vu
00:34:28 :passer maintenant en fait ce qu'on fait c'est qu'on fait des tokens donc en fait mais qui estvraiment équivalent à un mot de passe c'est juste que du coup tu as ça génère un token aléatoirequi est pareil une longue chaîne de caractère et l'intérêt enfin l'intérêt des fois je me
00:34:43 :demande en fait je sais pas trop c'est difficile des fois d'expliquer vraiment la différenceparce qu'il n'y a pas vraiment de différence avec un mot de passe c'est juste un peu tout le systèmeet tout tout ce qui est autour qui est fait différemment genre juste le nom on parle d'un
00:34:55 :token et pas d'un mot de passe mais au final c'est un peu pareil quoi c'est juste que legénéralement c'est séparé tu vois tu vas avoir tu vas te logger un service par exemple on pourraitdire bah tu te log à je vais prendre l'exemple de docstring tu vois je pourrais dire tu as un
00:35:09 :compte sur docstring et tu te log avec avec tout mon utilisateur et ton mot de passe et imagineun moment je veux permettre je veux faire une API pour docstring pour permettre aux gens d'utiliserdonc mon API pour récupérer leur progression dans une formation etc les trucs comme ça bah
00:35:25 :là en fait généralement tu vas faire un système comme ça de token que tu vas pouvoir régénéreret que tu vas pouvoir aussi séparer par application tu pourrais dire par exemple je vais faire j'aitrois applications à faire et je vais faire un token pour chaque application et ça permet aussi
00:35:40 :de séparer du coup de ton compte parce qu'on pourrait très bien dire bah tu vas te loggeravec ton utilisateur et ton mot de passe personnel mais là du coup voilà si finalement tu vois tumets ton script après sur un serveur et que le serveur se fait hacker bah ils ont accès du coup
00:35:57 :à ton mot de passe pour te logger sur docstring alors que si c'est juste le token qu'ils ont bahtu peux très facilement supprimer le token et même si tu supprimes pas le token bah du coupils ont juste le mot de passe pour voilà accéder à ton API mais pas accéder à ton compte si
00:36:11 :directement donc ça permet un peu de séparer les choses et c'est quelque chose qui est maintenanttrès généralisé en fait. Est-ce qu'il y a un peu d'autres questions là dessus ou ça fait le tour?
00:36:23 :Un petit peu de porto pour faire la transition. C'est tout bon? Santé de même! Saoud comme ondit ici. Alors ouais PyCharm alors est-ce qu'on se convainc sur PyCharm? Mon petit mon logiciel
00:36:49 :préféré. Alors je vais vous partager mon écran et je vais ouvrir je vais vous montrer docstring.Juste pour faire une parenthèse sur PyCharm, ce que j'attends en fait j'ai trois projets à fairealors vous allez tous me traiter de malade. C'est des petits projets, ça me semble petit,
00:37:21 :c'est des styles je sais pas faire un calendrier en fait que les gens puissent prendre rendez-voussur ce calendrier. Je sais pas comment on ferait à feuille mais l'idée ça ferait ça quoi. Le
00:37:34 :premier projet ça ferait ça, après ça ferait e-commerce et donc tu mets des articles en faittu mets un prix voilà les gens vont dans le panier ça ferait un petit peu ça mais style c'est pasces discounts on n'en est pas là mais c'est au moins plus petit quoi. En échelle humaine et voilà
00:37:53 :je voudrais juste commencer par ça par contre avant de m'y mettre c'est pour ça que je demandeeffectivement un peu d'aide parce que PyCharm tu en as déjà parlé j'ai vu la vidéo tout ça,ça a l'air bien et avant de m'y mettre à fond je voudrais confirmer si la méthode est bonne et
00:38:08 :voilà. Après je me dis que j'ai démarré comme j'ai suivi tes vidéos tu faisais du code sur VSCdonc ça me va bien mais je sais pas si on peut tout faire avec VSC, voilà j'ai pas lu ladocumentation à fond. Ouais alors et ces projets tu pensais du coup les faire avec Django même
00:38:29 :le calendrier ou enfin c'est vraiment l'idée de faire le projet? Oui oui oui par rapport enfinje vais rester dans l'optique dogstring donc ça serait avec la formation. Ouais ok alors déjà
00:38:41 :faut savoir quand même que et de plus en plus avec VSCode tu peux faire quasiment tout ce quetu fais avec PyCharm je dirais que en fait il y a des fonctionnalités que tu as en plus c'estvraiment des trucs qui vont te permettre d'aller un peu plus vite et tout mais après il n'y a
00:38:55 :rien tu vois qui est comment dire enfin après ça reste du Python tu vois au final tu écris du texteet puis Python l'interprète donc ça tu peux même limite tu peux le faire avec un notepad vraimentultra classique sans rien du tout donc VSCode va pas te limiter dans ce sens là même je réfléchis
00:39:14 :après tu vois la semaine dernière on parlait du debugger il y a des... enfin ouais même sur peut-êtreque le debugger de PyCharm est un petit peu plus avancé donc tu as un petit peu plus de possibilitéssur jusqu'où tu peux aller pour modifier ton code en cours d'exécution mettre des conditions de
00:39:33 :point d'arrêt assez complexes mais tu peux le faire aussi avec VSCode je sais j'ai jamais faitun état des lieux vraiment parfait des deux je sais juste que je sais en tout cas que PyCharmpeut te permettre d'aller très loin là dessus pareil en fait tu vois par exemple sur des tu
00:39:49 :vas voir des trucs dans PyCharm tu as la possibilité de voir des bases de données donc tu peux teconnecter à ta base de données avoir un aperçu de celle ci tu peux tu as l'intégration de gitqui est bien faite aussi donc tu vois tu as plein de petits trucs un peu connexes comme ça qui sont
00:40:04 :de base aussi c'est ça parce que sur VSCode c'est souvent que tu as une extension tu vois gitmaintenant c'est quand même bien intégré dedans mais c'est vrai qu'il y a des trucs des fois ilva falloir que tu installes une extension donc tu vois c'est une extension qui est tu sais jamais
00:40:18 :trop forcément par qui c'est fait si ça va être maintenu etc... PyCharm a cet avantage j'ai vraimentun tout en un tu vois où c'est vraiment la compagnie qui fait tout le truc et tu as aussides extensions mais personnellement je crois que la seule extension que j'ai c'est le thème tu vois
00:40:31 :pour changer la couleur sinon j'ai vraiment peut-être un truc pour Tailwind vraiment pourla bibliothèque de CSS mais sinon vraiment pour du Python pur et puis même un peu au delà et jevais te montrer justement parce que même sur Django alors je crois par contre que c'est que
00:40:47 :dans la version pro par contre n'hésitez pas je l'ai pas encore mis bien sur le site mais j'aides clés j'ai des clés d'activation pour je crois que c'est six mois de PyCharm Pro et qui en plusaprès vous permettent si vous voulez continuer je crois que c'est quand même pas mal je crois
00:41:05 :qu'il y a un petit 10 ou 20 % de réduction sur une année un truc comme ça donc n'hésitez paslà surtout les nouveaux là Thibaut si tu veux j'ai des clés pour PyCharm et puis même aprèsmoi ça doit faire maintenant peut-être deux ans que je le paye c'est pas je crois que comme vous
00:41:23 :prenez à l'année c'est moins de 100 euros à l'année je crois un truc comme ça et aprèsalors et ça va aller aussi dans mon... je vais faire mon Thierry 5 minutes parce que Thierry
00:41:32 :il met en garde des fois contre l'utilisation de PyCharm parce que justement il fait beaucoupde choses pour toi et c'est vrai que des fois des fois au début ça peut être un petit peu dangereuxun exemple tout con que je sur lequel je me bute à chaque fois c'est par exemple en fait quand tu
00:41:52 :fais une méthode il t'ajoute le self automatiquement et bon maintenant moi je sais clairement où ilfaut mettre les self et tout c'est pas ça le problème et c'est juste qu'en fait t'es tellementhabitué à appuyer sur la parenthèse quand tu es dans une classe et que ça te met le self directement
00:42:06 :que après en fait quand tu reviens dans vs code et que tu fais de l'orienté objet bah ça m'arrivedes fois de complètement les oublier quoi et donc c'est juste bon voilà comme je te dis c'est pasun problème dans le sens où je lance mon code et puis direct il me dit oui il te met l'erreur
00:42:23 :qui t'indique en fait que t'as pas mis les self quoi et il te le dit pas aussi explicitement queça c'est pour ça que quand t'es débutant ça peut être un peu pénible parce que d'un coup quand tupasses de l'un à l'autre tu te dis wow pourquoi j'ai des erreurs je comprends pas avec un peu
00:42:34 :d'expérience tu comprends tout de suite ah oui c'est vrai j'ai pas mis les self parce qu'il meles met pas automatiquement tu vois il y a des petits trucs comme ça où des fois pareil sur lesprojets de django je vais vous montrer quand tu fais un nouveau projet en fait et ça c'est pour
00:42:47 :ça je disais je crois que c'est que sur les versions pro parce qu'il ya la version communitydonc qui est gratuite et qui vraiment vraiment enfin vous avez pas vraiment besoin de la versionpro surtout au début la version pro elle est intéressante notamment quand même pour le web
00:43:03 :parce qu'il prend en compte en fait un peu plus de langage genre dans la version community il prendmajoritairement python et puis peut-être du html et puis après je crois que le javascript par exemplevous avez pu il ya peut-être la coloration syntaxique mais vous allez pas avoir l'autocomplétion ou des
00:43:17 :trucs comme ça et sur la version pro il va vraiment tous les langages sont supportés doncsi vous faites des projets avec donc notamment des projets web où vous pouvez avoir même duscss des fois là du sas des pré-processeurs des trucs un petit peu plus avancé du typescript par
00:43:33 :exemple pour du javascript bah là il va les prendre en charge et là tu vois donc quand jecrée un... ah d'ailleurs je sais pas je vérifie ah oui vous voyez pas j'hésite toujours à partager
00:43:43 :l'écran au complet parce que la dernière fois j'ai eu un bug bon je vais vous partagerpour revenir sur Thierry justement, on avait discuté j'avais posté un truc et il m'avaitdit clairement enfin d'après ce que j'avais compris sur VSC par exemple j'avais mis un petittir en disant arrêtez de faire des prints enfin sur le... enfin de lancer le code par rapport à
00:44:13 :VSC mais j'ai pas d'autre solution j'ai pas compris ce qu'il voulait dire en fait j'ai pas comprisde lancer le code par rapport à VSC... ah oui dans l'intégrateur enfin qu'est ce que vous appelez
00:44:29 :quand on le lance moi je fais toujours effectivement il ya un bouton play enfin pas play mais lectureon va dire et voilà et il disait d'arrêter de faire ça parce que je sais pas pourquoi maisc'était pas la bonne solution quoi bon so modo il y avait d'autres méthodes à faire quoi bah en fait
00:44:46 :c'est que... non mais c'est vrai que en fait c'est que des fois c'est vrai que c'est enfin commentdire la façon la plus pure je te dirais de lancer ton script c'est vraiment d'aller dans d'ouvrir unterminal et de vraiment déjà aussi justement naviguer dans les dossiers choisir ton interprèteur
00:45:07 :activer ton environnement virtuel et lancer le fichier que tu veux je dis toutes ces étapes làparce que tu vois par exemple dans pie charm quand tu crées ton projet tu vois là avec la fenêtre quevous avez devant vous tu peux lui dire bah vas-y crée moi donc tu lui donnes juste la location
00:45:23 :l'endroit où tu veux tu lui dis mets moi un environnement il va tout te proposer par défautavec la version là où il faut le mettre etc tu cliques sur create et à partir de là en fait ilva même te créer une configuration ou pareil en fait tu cliques sur play et puis je crois que même
00:45:40 :maintenant je sais plus si c'est là oui voilà tu voyais la petite case create main.py welcomescript il peut même te créer tu vois un fichier de base avec une fonction de base etc et donc làaprès effectivement tu cliques sur play et tout se lance mais du coup lui il va faire il va activer
00:45:55 :ton environnement virtuel il va s'assurer que tu as la bonne version de python qui est utilisé il valancer le fichier etc et c'est vrai que des fois après il ya des choses que tu fais pas à la mainquoi et ça c'est vrai que je vois après du coup des gens qui quand il y a un bug parce que je sais
00:46:09 :pas peut-être ils ont mal organisé leur projet et du coup ça fonctionne plus bah là au niveaudes imports par exemple ça peut être le cas tu vois en fonction de à partir d'où tu lances tonscript si tu as fait des imports relatifs bah ça peut changer tu vois parce qu'il va se baser de
00:46:25 :façon relative par rapport à là où tu lances ton script donc c'est vrai que c'est bien quand mêmede au début de juste ouvrir un terminal t'assurer que tu actives toi même ton environnement virtuelque tu te déplaces bien où il faut que tu lances le fichier que tu veux et que tu comprends pourquoi
00:46:43 :ça marche ou ça marche pas. D'accord, j'avais pas compris le terminal pourquoi vous parliez toutle temps de terminal et qu'il fallait travailler avec mais je comprends mieux si on doit passerpar ça. Bah en fait c'est aussi qu'après tu vois quand tu lances ton script tu vois si tu fais un
00:47:05 :projet Django par exemple ton projet sur le serveur tu vas pas le lancer à partir de PyCharm tu voisdonc c'est là où effectivement tu peux avoir un projet qui marche à 100% parce que tu es sur tonordi et tu le lances via PyCharm et je vais vous montrer un peu je vais faire un projet là de base
00:47:20 :je vais cliquer sur create main je vais lui laisser faire le virtualenv, new window et jevais vous partager ça alors test project. Donc tu vois là il y a pas mal de choses qui se passent
00:47:46 :en arrière-plan il va créer le squelette de ton truc etc là tu vois tu as déjà un point d'arrêttu as déjà une fonction avec une phrase etc et là tu as déjà un fichier main.py et tu as une
00:48:00 :configuration et tu vois si je vais dans edit configuration bah là tu as le chemin de tonscript donc en fait là il va utiliser l'interpréteur Python qu'il a créé qui est celui à l'intérieurde test project env.bin.py et tu vois il a même le working directory donc ça veut dire qu'il va
00:48:16 :le lancer comme si dans le terminal il était à partir de ce dossier là et tu vois il ajouteaussi content-roots et le source-roots to python-path donc ça aussi c'est des trucs oùdes fois en fait tu vas ajouter des dossiers avec pycharm via l'interface.
00:48:33 :Ah merde attendez je crois que vous voyez pas, oui vous voyez pas le...Je vais essayer de partager tout l'écran et puis au pire en rediffusion ça sera pas super.
00:48:46 :On va retester. Ok donc est-ce que vous voyez bien? Pycharm ouais normalement ça devrait être mieuxvous devrez avoir toutes les petites fenêtres comme ça qui s'ouvrent. Donc tu vois là en fait
00:49:02 :donc tu as le working directory, tu as le fichier qu'il faut lancer, l'exécutable Python à utiliser,il y a même une variable d'environnement, tu vois j'ai jamais pris le temps de savoir à quoi çaservait mais tu vois il s'est une variable d'environnement ici Python unbuffered et tupeux en mettre d'autres aussi et il ajoute donc le content-roots et source-roots au python-path.
00:49:22 :Ce qui fait que des fois tu vois c'est ça en fait, ça c'est clairement si tu fais un dossier ici,imagine tu l'appelles je sais pas source et tu mets des trucs dedans et après tu lui dismark directory as source-roots donc tu fais ça et donc là ça veut dire qu'en fait quand il va
00:49:38 :lancer ton projet il va ajouter tout ce qui est marqué comme des source-roots au python-path,ce qui fait que après tu vas pouvoir importer des modules. Donc là si tu pars du script main
00:49:50 :normalement ce sera le cas parce que quand tu lances un script Python automatiquement ajoutele dossier parent au python-path mais tu vois je sais pas si tu as des dossiers ailleurs,ça c'est le genre de truc qui peut te causer, te jouer des tours quoi parce que dans PyCharm
00:50:03 :il va te le faire et si après tu vas dans un terminal où il fait pas cette opération avantbah là ton projet il peut ne plus marcher à cause de ça. Pareil pour le working directory,
00:50:10 :ça c'est donc là quand je lance un terminal tu vois pareil si je lance un terminal dans PyCharmautomatiquement il m'a activé l'environnement virtuel et automatiquement il me met dans cedossier là. Donc après si tu lances un truc là si je fais un ls là j'ai bien le main.py,
00:50:26 :les sources et le dossier d'environnement. Et donc c'est là où tu vois si je reviens en avant,bah là le dossier il est plus le même, là c'est mon dossier d'utilisateur donc ça peut avoir desimpacts tu vois si j'utilise python 3.9 et que je lance le dossier test-projet comme ça, je le
00:50:45 :lance comme ça ou si je le lance quand je suis ici, bah ça va pas donner la même chose. Si jefais ça comme ça et que là je lance main, ça va pas être la même chose parce que si par exemple,alors ça va dépendre des bibliothèques mais je crois qu'avec os justement si tu fais pwd comme
00:51:02 :ça qui est le print working directory ou getcwd, tu vois si jamais dans ton script tu utilises ça,bah getcwd c'est le projet à partir duquel, alors je sais plus si c'est ça dans ce cas-ci pourcette bibliothèque mais là ça se peut que ce soit par rapport au fichier lui-même mais des fois il
00:51:21 :y a des bibliothèques où ça va vraiment être par rapport à comment tu as lancé ton script. Doncsi tu le lances en étant dans ton script utilisateur, bah le current working directory ça va être cedossier là. Et si tu le lances en étant dans test-webinaire ça va être celui là. Et donc là
00:51:34 :si par la suite après tu te bases sur cette valeur pour concaténer des chemins de fichierspuis aller chercher un dossier pour une base de données ou des trucs comme ça, bah là tu voisça peut ne plus marcher. Donc ouais, faut bien, je te dirais c'est ça, l'idée c'est pas qu'il faut
00:51:48 :ou il faut pas, c'est que si tu le fais il faut comprendre clairement ce qu'il fait. Donc bonaprès, moi je trouverais ça, comment dire, c'est intéressant, c'est pour ça d'ailleurs que je lemontre assez tôt dans les formations, de s'habituer au terminal, de pas repousser le truc trop loin,
00:52:06 :de commencer à voir de quoi il en retourne. Après je trouve que PyCharm est quand même assezplaisant à utiliser et que je te dirais au bout de 2-3 mois d'apprentissage quand même je trouveraisça dommage de vraiment repousser complètement le truc. Surtout que c'est un moment où je me dis
00:52:22 :bon si tu veux vraiment devenir efficace tu vas finir par l'apprendre parce que, enfin moi c'estmon avis, mais tous les gens que je connais qui développent en Python, bon il y a des exceptions,il y a des gens qui préfèrent coder dans Vim, ça existe, il y a des extrémistes du code, mais oui
00:52:39 :la majorité des gens vont préférer PyCharm parce que tu vas aller 10 fois plus vite, c'est plusagréable. Donc sachant qu'à un moment tu vas devoir l'apprendre, je me dis voilà autant savoir
00:52:49 :qu'il faut quand même continuer ton apprentissage sur le terminal et sur tous ces trucs là, etsavoir que PyCharm des fois peut automatiser des choses plutôt que de se dire bah je fais un ansans PyCharm. Donc ça va, des questions? Tout bon? Alors, PyCharm, où commencer? Déjà vous avez
00:53:17 :vu que juste à la création du projet on a pas mal d'options, là si je fais un new project,vous voyez aussi, donc ça comme je vous dis je crois que c'est juste pour la version pro,mais il y a possibilité aussi de créer un projet Django, FastAPI, Flask, Pyramid c'est un autre
00:53:32 :framework web aussi, il y a même du Bootstrap, alors je sais pas ce que ça fait Bootstrap,vous voyez, HTML5 j'imagine ça crée juste un fichier index.html, je sais pas React il doit
00:53:45 :faire des trucs avec npm, scientifique ça doit être un Jupyter Notebook, là ils utilisent Kandar,donc par exemple un projet Django tu vois tu peux lui dire directement bah finalement pour lelangage de template je vais utiliser ça et donc là forcément il va te changer des trucs dans les
00:54:01 :settings, mais là encore c'est des trucs où il vaut mieux les faire une première fois clairementavec un terminal et puis après c'est juste que si tu te retrouves à très souvent créer desprojets Django bah t'as la possibilité de le faire directement ici depuis l'interface.
00:54:14 :Voilà je revenais juste voir dans le chat s'il n'y avait pas de nouvelles questions. Doncdonc déjà effectivement là il y a pas mal de choses que tu peux faire, après au niveau,moi je vous dirais d'aller explorer un peu tout ce qui est les fenêtres, c'est dans View je crois,
00:54:37 :to the window, voilà tous ces trucs là, vous allez voir que justement il y a beaucoup de choses,il y a beaucoup beaucoup de choses, il y a un terminal intégré donc là vous voyez en faitquand on peut directement avoir un terminal ici, dans les préférences vous pouvez choisir
00:54:50 :justement je crois qu'il y a un, je sais plus où c'est, Advanced ou dans Tools, dans Tools voilàTerminal, vous pouvez spécifier plein de trucs donc vous pouvez spécifier quelle shell il utiliseet ça je pense que ça va pas mal changer sur Windows, parce que je crois que sur Windows,
00:55:07 :je sais plus si on peut lui indiquer git bash directement et s'il arrive à l'intégrer,je crois qu'on peut comme Ender on peut le mettre et l'intégrer directement donc là vous avezvraiment la même chose que sur Mac ou Linux et vous voyez vous pouvez, c'était les variablesd'environnement, c'était le, donc par défaut ça va être le dossier du projet, vous pouvez les dire
00:55:25 :donc là c'est la petite case ici, Activate virtualen, c'est ça qui fait que votre environnement va êtreactivé automatiquement, ça c'est le genre de truc voilà il y a plein de, quand tu lances un terminalet pareil avec un projet, encore plus avec un projet Django, tu lances, bah voilà tu sais que
00:55:37 :directement tu es avec ton environnement et que tu peux commencer à faire des Python manage.pyet puis faire des migrations, des trucs comme ça. Les configurations aussi, ça c'est un truc, je
00:55:50 :sais jamais trop, je crois que c'est possible sur VS Code, mais il me semble que c'est pas malmoins user friendly je dirais, et moins puissant aussi, parce qu'il y a beaucoup de trucs en fait,là tu peux faire des configurations, donc ça c'est la fenêtre que je vous avais montré,
00:56:03 :et des fois il arrive que quand on, par exemple on va justement avoir besoin, j'ai ça par exemplepour le bot discord, ou quand je teste le bot discord, j'ai une variable d'environnement quime permet de setter en fait si j'utilise le serveur de staging, donc le serveur de test en
00:56:20 :fait, ou le serveur de production. Donc ça c'est en fait tout simplement des variables d'environnementqu'on va pouvoir setter ou changer, des fois vous pouvez aussi lui dire juste avant, voyez ici,before launch, connecte moi à telle base de données ou une autre base de données,vous pouvez aussi faire des campagnes, donc des groupes de choses, au niveau des tests par exemple
00:56:40 :aussi ça va être intéressant, vous allez pouvoir lui dire bah voilà à chaque fois que je faistelle opération tu me lances les tests, tu fais ça, il y a l'intégration de git aussi, donc commeje vous le disais c'est pour ça que je vous invite à aller voir dans tout le windows, il y a beaucoup
00:56:51 :de choses ici, si vous voyez les databases par exemple vous pouvez aller voir ça aussi, et ily a beaucoup de choses comme au niveau justement de visualisation d'un projet, par exemple structureici, ça c'est un truc j'en avais parlé sur twitter, les gens me demandaient pourquoi, alors là je
00:57:05 :l'ai pas, je l'ai enlevé finalement, mais des fois j'ai un écran vertical et en fait moi j'utilisebeaucoup cette vue ici, structure, bon là j'ai une fonction dedans donc il n'y a pas grand chose,mais quand vous avez dans des projets Django justement, ou des fois vous avez un modèle
00:57:23 :où il y a plein de choses dedans, en fait avec cette vue là il va vous afficher tout ce qu'ily a dans votre fichier, donc vous allez voir si je fais un hide, vous voyez vous avez les fonctionsici, vous avez des options de filtre et tout aussi, donc c'est super pratique, pour vraiment
00:57:41 :retrouver les trucs facilement, et vous avez aussi dans ce panneau projet, et c'est ça vraiment,et ça je le montre, je vais vous retrouver dans quelle formation précisément, je vais vous mettrele lien, n'hésitez pas si vous avez des questions en cours de route, à m'interrompre, ça va me
00:57:57 :permettre d'être sûr aussi qu'il n'y a pas de soucis techniques et que vous m'entendez bien toujours.Alors formation PyCharm, parce que j'ai une formation, donc il y a toutes les formationsPyCharm, il y en a une sur naviguer, donc je vous le met dans le chat, donc celle-ci,en fait je vous montre beaucoup plus en détail tout ce que je vais vous montrer assez rapidement
00:58:34 :ici, mais il y a en fait des façons de filtrer, de trouver des choses facilement, moi ce que j'utilisepas mal en fait, c'est le genre de truc que vous set up une fois et après c'est fini,en fait si je ne me trompe pas, ici vous pouvez afficher project, project files, et vous pouvez
00:58:50 :si vous allez dans les préférences, faire des, vous allez voir ça fait longtemps que je ne l'aipas fait justement, parce que je l'ai fait une fois, voilà scopes, donc là en fait vous pouvezcréer, et ça c'est très pratique pour Django, vous pouvez dire voilà je veux un scope url,
00:59:06 :en fait là dedans vous allez lui dire bah trouve moi tous les trucs qui contiennent le mot url parexemple, parce que dans Django il y a beaucoup de patterns comme ça, vous avez les fichiers devue qui vont s'appeler views, et puis vous pouvez faire views quelque chose après, pareil pour les
00:59:21 :fichiers d'url, donc ça c'est pratique parce que du coup vous allez pouvoir filtrer directement,en disant bah je veux me faire une vue ici à gauche où il y a juste les fichiers url, ou alorsvous pouvez même mettre des extensions, dire bah je veux tous les fichiers.html par exemple,
00:59:34 :et puis vous pouvez faire des trucs très avancés, là je vous laisse aller voir l'aide si vous voulezvoir tous les détails, mais vous pouvez faire des filtres très avancés pour dire voilà je veuxque il y ait marqué template après quelque chose, avec les wildcards etc, pour donc vraiment
00:59:52 :retrouver facilement dans un projet Django les choses, et je pense que je vais vous montrerplutôt sur docstring, alors est-ce que vous voyez là, est-ce que vous voyez, ouais docstring c'estbon, ok, oui parce que je partage le screen, donc là vous voyez par exemple si je fais,alors le raccourci je sais plus lequel, on va faire celui-ci, expand all, vous voyez la petite
01:00:14 :barre ici là, donc bon après là il y a plein de trucs, ça c'est les librairies externes,et vous voyez sur docstring il y a tout ça, bon là il y a des images, et pareil en fait vousallez pouvoir aussi, ça c'est très pratique, vous allez pouvoir en fait dire bah je veux
01:00:31 :marque directory as excluded, et ça c'est super pratique, ça c'est aussi des trucs que je faisau début, là pour le static d'ailleurs, je sais pas pourquoi je l'ai pas exclu, parce que ouaisparce que des fois je vais voir quand même dans les illustrations, mais par exemple bon je sais
01:00:44 :pas si on dit les images, qu'est-ce que je vais mettre, partners, voilà celui-là en fait je veuxpas le voir parce que là par exemple il y a l'image de Nast, et en fait quand on fait le shift shift,vous appuyez rapidement deux fois sur shift, ça va ouvrir ce quick search, et là en fait vous pouvez
01:01:03 :chercher sur n'importe quoi, donc tout, vous pouvez aussi filtrer après par classe pour par exemplechercher voilà tout ce qui s'appelle session, quelque chose, ou formation, vous pouvez chercherles fichiers, vous pouvez chercher les symboles, ça va être tout ce qui est aussi variables,propriétés etc, vous avez même les actions, ça c'est super cool aussi, si vous avez plus comment
01:01:22 :faire quelque chose, si vous faites par exemple voilà je veux voir l'historique local, mais jeme souviens plus où il est dans le menu, bah vous tapez local history, voilà, et hop ça va vous,alors il faut que je le mette sur un fichier, voilà celui-là par exemple, local history, show history,
01:01:37 :et là hop ça vous ouvre l'historique du fichier, et donc vraiment le double shift c'est super cool,et le truc c'est que en fait donc là si je fais double shift, si j'arrive, j'ai un petit freeze,vous êtes toujours là? ça fonctionne? je n'entends plus personne, je vous entendais
01:02:10 :vachement s'accader, j'ai l'impression que mon ordi il a du mal, je sais pas ce que j'ai fait,pourtant le cpu commence à chauffer, bon enfin en tout cas tout ça pour dire le temps que ça sedé-freeze, et ça me permet de faire un petit point négatif sur, je vais arrêter le partage
01:02:43 :d'écran 5 secondes, le temps qu'il retrouve ses esprits, mais ça me permet justement,voilà ok, bah justement, oui ça permet de montrer effectivement c'est un des défauts de PyCharm,et une des raisons pour laquelle aussi personnellement j'utilise encore VS Codeparfois et pourquoi certaines personnes préfèrent VS Code, c'est que c'est beaucoup plus lourd,
01:03:02 :des fois justement en fait PyCharm, et c'est le gros avantage, il a vraiment une compréhensionde votre projet qui je trouve est beaucoup plus poussée que VS Code, parce que justement,il va, c'est notamment au niveau du refactoring, c'est assez impressionnant, donc le refactoringc'est quand vous repassez sur votre code justement pour l'améliorer, vous allez pouvoir en fait
01:03:23 :changer parfois un nom de variable et il va aller le retrouver dans les docstrings, dansvotre documentation, enfin plein d'endroits différents, et le changer. Et ça c'est un
01:03:32 :truc sur VS Code, me semble que c'est, je sais même pas s'il y a vraiment cette option refactoring,parce que souvent c'est du search and replace global, donc c'est plus ou moins efficace,parce que des fois justement il va louper quelque chose, ou alors il va remplacer untruc parce que justement vous avez le début de votre variable, il commence par la même expression
01:03:53 :mais après il y a quelque chose d'autre, donc si vous faites juste un search and replace,il peut tout fucker le projet, et là ça peut être une catastrophe absolue à rattraper,parce que si vous aviez 50 noms à certains endroits qui ressemblaient à un autre nom quevous avez remplacé et qu'il l'a tout remplacé sans comprendre que c'était deux variables
01:04:11 :différentes, bah là pour aller retrouver tous les endroits où vous avez ce nom qui est utiliséet qui a été modifié de la mauvaise façon, ça peut être très très chiant. Alors que PyCharm,
01:04:20 :si vous lui dites renomme cette variable, il va vraiment comprendre qu'il va aller checker danstout votre code, et il va comprendre si c'est vraiment l'objet en tant que tel qui est le même,c'est pas juste sur les chaînes de caractères, il va vraiment comprendre votre projet au niveau
01:04:37 :de là c'est une classe, là c'est une variable, là c'est la fonction que vous appelez, etc. Doncça c'est pas mal, mais du coup il est plus lourd, des fois ça arrive que quand vous rajoutez desbibliothèques ou quoi, il update justement le squelette du projet en arrière-plan et ça prend
01:04:52 :pas mal de ressources, donc c'est un des avantages et c'est ça qui fait que par exemple moi quand jedois vous aider dans la semaine sur le serveur et que j'ai un petit script, je lance pas PyCharm,je lance VS Code et puis hop, en 3 secondes il est lancé, j'ai le fichier d'ouvert, je peux
01:05:08 :tester et puis c'est rapide. Et d'ailleurs, pour la petite histoire, je sais pas si c'est déjàsorti mais j'avais vu passer et entendu, peut-être d'ailleurs sur le serveur quelqu'un qui avaitpartagé ça, que JetBrains travaille sur un genre de PyCharm Lite, qui si j'ai bien compris seraiten gros une option dans PyCharm, donc quand vous lancez PyCharm vous puissiez dire je veux lancer
01:05:35 :la version Lite ou pas. Salut Christophe, ouais on commence, ça fait une heure qu'on parle,donc il y en a peut-être qui doivent s'en aller. J'ai bientôt fini de toute façon mes explications
01:05:46 :sur PyCharm, donc oui c'est ça, ils vont faire une version Lite, justement je pense pour concurrencerun petit peu, pour essayer de ramener en fait tous les gens qui continuent d'utiliser VS Codejuste pour ce côté, je peux le lancer rapidement, donc à voir parce que je pense que ça pourrait
01:06:02 :être intéressant. Je ne sais plus si l'idée c'était vraiment de complètement refaire PyCharmpour que de base il soit un peu Lite, ou si c'était une version, je pense que c'était un toggle,un switch en plus que vous pouviez mettre, donc à voir dans les prochains mois ce que ça va donner.
01:06:20 :Donc est-ce que, ok je vais repartager mon écran parce qu'il semble être revenu à la normale,donc ce que je disais c'est que sur les options de filtre, donc là par exemple le NAS.png,
01:06:31 :si j'appuie sur shift deux fois et que je cherche NA par exemple, voilà je mets juste,imaginons que je veuille chercher la navbar, là vous voyez que j'ai le NAS, et le NAS,donc l'image en fait, je n'ai pas grand chose à faire, je ne vais pas aller regarder cette image
01:06:47 :souvent, donc en fait j'aimerais bien l'exclure. Donc c'est ça qui est intéressant, c'est quevous pouvez dire bon bah moi quand je cherche dans mon projet cette image je m'en fous,donc j'exclus le dossier, et comme ça elle n'apparaît jamais ici. J'en profite pour dire
01:06:59 :d'ailleurs que même si vous ne faites pas ça, le search il est intelligent, c'est un peu commegoogle, il va se souvenir de tout ce que vous avez tapé, et plus vous allez accéder à des fichiers,plus il va vouloir monter en haut, donc si finalement à chaque fois que vous tapez NA,
01:07:13 :vous allez chercher le fichier ici, le scope.js etc, si c'est toujours ce fichier là que vousallez chercher à chaque fois que vous tapez NA, bah petit à petit il va vous le remonter,et puis après vous aurez pu aller le chercher tout en bas. Donc c'est pour ça que même si
01:07:27 :vous ne faites pas ces filtres au début, en fait rapidement, à force d'utiliser PyCharm sur votreprojet, ça va devenir assez naturel. Donc là vous voyez sur les projets, si je vais dans views,
01:07:37 :et que j'expand tout, là vous voyez il m'ajuste, parce que si je vais voir dans les préférences,dans les scopes, ici voilà, dans views j'ai mis que je voulais tous les fichiers de type quoique ce soit, views.py. Et du coup ça me permet rapidement de filtrer tout le bordel, et de juste
01:08:01 :voir tous mes fichiers de vue, et puis de me dire bon voilà je vais sur générique et je le retrouve.Et vous pouvez aussi si je fais double shift, je tape views, et puis pareil je peux retrouverrapidement, j'utilise moins les scopes en fait maintenant pour ces choses là, je les utilise
01:08:15 :plus pour des trucs comme voilà les fichiers HTML, quand là je sais que j'ai beaucoup de fichiersd'un certain type, ça c'est pratique. Après sur les views, tout ce qui est URL, en fait moi je me
01:08:24 :suis rendu compte que je fais double shift, et je tape par exemple URL, voilà, et je trouve tousles URLs.py, si je tape views, je trouve tous les views, admin, je vais tomber sur toutes les
01:08:33 :vues d'admin, et puis après voilà vous faites admin, formation, et là vous voyez je pensaisqu'il allait me le trouver, si je faisais admin, ouais, il est pas suffisamment intelligent si jetape admin, formation, parce que j'ai un admin form, ouais c'est ça. Si je fais admin, on va essayer
01:08:52 :admin, générique, non, il me le trouve pas non plus. Donc il arrive pas à trouver le dossierparent si je le tape. Mais bon vous voyez que c'est quand même une bonne façon de filtrer je
01:09:01 :trouve aussi. Donc voilà pour un peu faire un tour rapide, mais vous voyez juste sur cette vue là,si on va voir aussi, si je vais voir dans les models, vous voyez pareil je tape models,je vais voir dans accounts ici, là on peut facilement tout collapser, et si je vous montre
01:09:21 :la vue justement de structure, là vous allez voir, vous voyez si je vais dans user progress,je peux voir tous les trucs, check manager, alors ça c'est des trucs, je pense que là il m'affiche,ah ouais, show inherited, donc moi je veux pas, parce que par défaut en fait il vous montre tout
01:09:38 :ce dont on hérite, donc là vous voyez il y a plein de choses en fait qui viennent des modèles deDjango de base que je veux pas voir, donc là voilà moi je peux juste voir ce que moi j'airajouté, donc voilà success et les différents fields, donc ça c'est des f, je peux voir les
01:09:51 :méthodes, j'ai une méthode string, donc c'est vraiment très pratique pour s'y retrouver,comme je vous dis si vous avez un deuxième écran vertical c'est très très plaisant de pouvoir faireça. Voilà je crois qu'il y a pas mal de gens qui doivent commencer à y aller, et puis après en
01:10:08 :fait de toute façon vraiment je vous renvoie vers toutes les formations que j'ai faites là dessus,si Romain ou William du coup qui avait posé la question, ouais c'était William sur l'organisation,donc je sais pas, j'espère que ça a répondu un petit peu à tes questions William, je te conseille
01:10:30 :donc d'aller voir les, je vais te redire d'ailleurs si tu veux, je vais rechecker les formationsPyCharm qui peuvent être les plus intéressantes pour toi, parce qu'elles ne le sont pas forcémenttoutes, je vais te faire un petit tri, ce qui est des trucs un petit peu plus bonbons, avancés,
01:10:47 :etc, genre analyser son code, ouais je vais te faire un tri, je vais te poster ça, je te posteraiça sur le serveur, sur les formations que je te conseille pour commencer, tu vois, tu commencesavec PyCharm pour regarder qu'est ce qui peut être intéressant, et comment, enfin qu'est ce que tu
01:11:04 :peux utiliser justement sans rentrer non plus trop dans le détail et les trucs avancés, et effectivementouais je maintiens aussi quand même cet avertissement un petit peu de ne pas non plus délaissertotalement le terminal, quand t'apprends un nouveau truc surtout, si t'apprends justementsur tout ce qui est web un peu, tu vas avoir beaucoup de trucs un peu devops si je puis dire,
01:11:26 :donc de manipulation d'environnement, de bases de données, des trucs comme ça, faut pas hésiter àse dire à chaque fois je reviens juste sur un terminal avec rien du tout et je m'assure quetout fonctionne bien juste dans un terminal, et si après tu te rends compte que c'est des trucs que
01:11:39 :tu dois faire souvent, bah là tu peux dire bon bah maintenant j'utilise la force de PyCharm pour lefaire plus facilement, avec une configuration ou avec un terminal qui fait plus de choses d'un coup,après ouais c'est, à voir aussi, ça dépend peut-être des gens, je sais que moi il y a des trucs,
01:11:55 :j'avais bossé avec un devops justement qui mettait aucun raccourci, rien, parce que justement il seforçait à, parce que justement il était toujours sur des machines différentes en fait, et il medisait bah en fait si je me mets des raccourcis je saurais plus faire les trucs sans mes raccourcis,
01:12:10 :donc en fait il apprenait vraiment, il se forçait à taper des commandes qui étaient super longues,et moi je les faisais aussi toute la journée, je faisais plein de commandes du genre aussi surmon ordi, mais au bout d'un moment, au bout d'un moment je me suis dit bon je vais me faire des
01:12:23 :alias parce que j'en ai marre de taper des trucs super longs, et lui il disait non non moi je peuxpas faire ça parce que je passe mon temps à aller sur des machines où il n'y a pas tous ces trucs,il n'y a pas l'outil qui te permet de faire ça etc, donc je dois le taper à la main, donc ça peut
01:12:37 :être bien de se forcer un petit peu au début pour que ça rentre vraiment, de pas trop prendre deraccourcis, et puis après ça dépend des trucs, c'est sûr, par exemple je réfléchis mais, enfinc'est pour ça après qu'il y a des fois des trucs tout cons, des fois que justement on les fait plus,
01:12:55 :des trucs comme je vous dis, c'est un bon exemple, des trucs qu'on fait une fois, j'en créé un projetde Django, bon bah si vous refaites pas des sites web différents tous les jours, c'est peut-être letruc que vous faites une fois dans l'année, puis après vous le faites finalement avec Django, donc
01:13:10 :peut-être qu'un truc tout con comme ça au final vous avez même pu le faire, parce que voilà vousle faites jamais, donc c'est un peu normal, ok non mais c'était juste dans le cadre des exercices,effectivement il faut que je reprenne l'habitude, je pense d'aller dans le terminal, c'est facile,
01:13:28 :quoi, enfin je veux dire voilà ça me prend pas dix ans à faire, mais il faut que je fasse,c'est important, ouais ouais ouais ouais ouais, après bon voilà c'est le genre de trucs aussi,c'est ouais c'est bien, je trouve qu'il faut un bon équilibre, faut pas non plus, parce que ça peut
01:13:46 :être démotivant un peu des fois de se dire il faut tout le temps être à fond dans le terminal,il faut tout le temps passer par Vim etc, donc ça peut être bien des fois de se dire bon voilà jeprends du plaisir aussi à coder avec un truc qui est bien fait, et puis justement après du coup tu
01:14:00 :vas avoir des problèmes, tu vas taper des murs des fois, parce que justement tu es comme Loic quiavait des problèmes de module, mais bon ça c'est normal, et je pense que c'est bien aussi d'avoirces problèmes, parce que du coup ça nous permet d'expliquer pourquoi il y a ces problèmes, alors
01:14:11 :que si finalement tu fais tout dans le terminal, du coup normalement tu auras moins de problèmes,ou alors si tu les as, du coup on les débug à chaque fois, mais bon, vaste sujet. Bon ben merci
01:14:27 :beaucoup en tout cas, ça m'a permis de voir un petit peu, et je vous tiendrai au courant,je te tiendrai au courant d'avancement. Parfait, et moi je vais te, du coup je te fais la petite
Aucune occurrence trouvée pour « ».
00:00:00
A écouter