La programmation en C++ moderne

Apprenez la programmation de zéro jusqu'à l'infini !

a marqué ce sujet comme résolu.

Un message pour signaler que j’ai envoyé les huits premiers chapitres en validation. Comme je n’ai pas mon ordinateur avec moi, le chapitre sur les fichiers est pour l’instant bloqué, alors autant envoyer ceux qui sont prêts.

Quand je récupère l’ordinateur, je finis celui sur les fichiers puis la première partie sera complète. Ensuite, les trois premiers chapitres de la deuxième partie suivront assez vite, étant donné qu’ils sont déjà rédigés mais qu’ils ont besoin d’une légère réécriture.

Merci encore à tous pour vos remarques (@lmghs, @Taurre, @gbdivers, et tous les autres). J’espère que vous continuerez à m’aider à faire un meilleur cours encore. :)

Salut à tous,

Voilà, la première partie du tutoriel (minus le chapitre sur les fichiers) est en ligne. Mais je ne compte pas me reposer trop longtemps, alors voici, au programme de la bêta, le début du dernier chapitre de la première partie.

Pour l’instant, je n’ai abordé que l’écriture de fichier, mais suivra également la lecture, quelques petits trucs supplémentaires puis sans doute un TP sur exporter des variables en JSON, de façon simple. :)

Merci d’avance pour vos commentaires.

Question par rapport a la relecture (peut etre une question plus pour les devs de ZdS?), il est possible d’avoir un diff ou équivalent entre la première version qui a été mise en ligne et les nouvelles modifications ?

(Si l’article est sur git par exemple ? Ou avoir le zip de la version validé, pour comparer les 2 versions avec un outil de diff ?)

+0 -0

Question par rapport a la relecture (peut etre une question plus pour les devs de ZdS?), il est possible d’avoir un diff ou équivalent entre la première version qui a été mise en ligne et les nouvelles modifications ?

(Si l’article est sur git par exemple ? Ou avoir le zip de la version validé, pour comparer les 2 versions avec un outil de diff ?)

gbdivers

Ce que je faisais sur un article que j’avais écrit, c’est que j’écrivais moi-même un résumé des modifs à chaque update que je faisais. Si informaticienzero est d’accord, on pourrait le faire ici.

Cela dit c’est vrai que ça ne remplace pas une vraie diff entre la version mise en ligne et la version actuelle, une telle fonction serait même utile pour les auteurs.

EDIT : En fait, c’est déjà disponible pour les auteurs. Je me disais bien que cette fonctionnalité me disait quelque chose !

+0 -0

Vous avez au zip de la version en ligne ? En faisant un diff entre cette version et le zip de l’article en cours de redaction, ca serait bon

gbdivers

Regarde si sur la version bêta tu peux télécharger l’archive dans le menu de gauche ? Cette opération est disponible sur la version publiée, donc en fait, tu n’as même pas besoin de nous attendre, tu peux la récupérer quand bon te sembles. :)

Vous avez au zip de la version en ligne ? En faisant un diff entre cette version et le zip de l’article en cours de redaction, ca serait bon

gbdivers

Regarde si sur la version bêta tu peux télécharger l’archive dans le menu de gauche ? Cette opération est disponible sur la version publiée, donc en fait, tu n’as même pas besoin de nous attendre, tu peux la récupérer quand bon te sembles. :)

informaticienzero

J’ai l’archive pour la beta, mais pas pour la version en ligne. J’ai juste le PDF

+0 -0

Salut à tous,

Au programme de cette bêta, la refonte du chapitre sur les fonctions et les erreurs, ainsi que quelques corrections éparses.

Fonctions

  • J’ai supprimé la partie sur les arguments par défaut. On a jugé que c’était pas très utile pour le débutant à ce stade.
  • J’ai supprimé la partie sur les prototypes. On décale la présentation et les explications au chapitre sur le découpage en fichier, pour que ça prenne vraiment un sens utile aux yeux du débutant.
  • Comme suggéré par @gbdivers, on a repris les fonctions qu’on a déjà abordées pour mieux montrer au débutant les différents types de fonctions (aucun argument ni retour, seulement retour, seulement arguments, les deux).
  • On ne s’attarde pas sur la différence libre / membre. Disons qu’on a du mal à expliquer l’intérêt des fonctions membres sans avoir vu de l’OO.
  • Comme souligné par @gbdivers aussi, on ne parle que de surcharge, pas du polymorphisme ad-hoc dans son entier, donc on a renommé la section en conséquence.

Erreurs

  • Dans la première partie, comme std::getline est déjà connue, on a supprimé ce passage.
  • Dans les autres parties, on a fait quelques reformulations et corrections mineures.
  • On a introduit les exceptions, car à ce stade, avec la connaissance des fichiers, on a un cas concret à présenter.
  • On parle aussi des garanties de fonctions, mais ça, on ne sait pas encore si on va garder ou pas. Est-ce que ça apporte quelque chose à un débutant ? À voir.

Pour la suite, le travail se situe sur le chapitre des lambdas, les corrections et reformulations à faire. Ensuite, ne reste qu’à relire, peaufiner également celui sur les templates, et on partira pour une deuxième validation, afin d’offrir du nouveau contenu en ligne le plus tôt possible.

Voilà voilà. :)

Merci d’avance pour vos commentaires.

Hey,
J’ai enfin pris le temps de lire le cours en entier, c’est du bon boulot les gars ;)

Voici les petites remarques que j’ai à la première lecture :

  • Il y a une petite coquille au niveau de la fermeture du raw string dans le paragraphe explicatif, il est écrit ") au lieu de )"
  • Alors que le chapitre fait bien la différence entre littéral et variable, le string littéral apparaît sans être présenté en tant que tel pour faire la différence entre un litteral de type char* et un litteral de type std::string
    En lisant ça, je pense qu’un débutant se demande "ça fait quoi si j’écris auto chaine{"une chaine"}". Et puisque son réflexe va être de faire un cout derrière, ça va bien marcher et il ne comprendra pas.
  • Dans le chapitre sur les fonctions, je pense qu’il faudrait parler des arguments du main (je me suis dit que ça manquait dans l’exercice du diff au chapitre précédent avant de m’apercevoir que la notion d’argument n’avait pas encore été présenté à ce stade là ^^")
  • Le chapitre sur les fichiers est en réalité un chapitre sur les flux, le titre me paraît trompeur puisqu’on ne parle ni de filesystem ni de format de fichier, simplement de leur manipulation au travers le flux.
    D’ailleurs je pense que ce serait pas mal d’évoquer à la fin le réseau pour montrer une autre utilisation du flux très courante (de façon très globale hein, parce que les problématiques liés au réseau sont particulières et nécessiterait un cours de réseau pour bien comprendre) et faire une partie sur la notion de sérialisation. EDIT : Hmm, en fait il n’y a rien à sérialiser pour le moment, on a pas encore parler de classe, ni de structure, ni de format de donnée
+1 -0

Salut à tous,

Au programme, la refonte terminée du chapitre sur les lambdas. Il reste encore à fignoler le chapitre sur les templates, puis à refaire une passe pour corriger les fautes, voir tout ce qui ne va pas, rajouter quelques explications sur des passages peu clairs, en bref, la relecture.

Après ça, le tutoriel ira en validation. :)

Merci d’avance pour vos commentaires.

@leroivi : merci pour ton retour. J’aurais une question : quel code exactement n’est pas bon par rapport aux raw-string ? Dans la version en bêta ou en ligne ?

Sinon oui, je me demande si aborder std::filesystem vaut le coup ou pas. En même temps, c’est très intéressant, en même temps, je dois voir si ça n’alourdit pas le chapitre et si ça se cale bien. On va y réfléchir.

J’aurais une question : quel code exactement n’est pas bon par rapport aux raw-string ? Dans la version en bêta ou en ligne ?

informaticienzero

Ce n’est pas dans le code, c’est dans le paragraphe explicatif de la version bêta Mais où sont mes fichiers ? > Avant-Propos > Pas d’interprétation, on est des brutes
Par défaut, une chaîne brute commence par R"( et termine par ").

Sinon oui, je me demande si aborder std::filesystem vaut le coup ou pas. En même temps, c’est très intéressant, en même temps, je dois voir si ça n’alourdit pas le chapitre et si ça se cale bien. On va y réfléchir.

informaticienzero

Effectivement, je trouve ça un peu costaud pour l’intégrer dans le même chapitre
Mais je pense qu’il est possible de séparer la notion de flux et les fichiers. C’est dommage parce que le cas des fichiers est très accrocheur mais ça me semble plus progressif d’introduire la notion de flux puis les fichiers, et donc en faire deux chapitres

J’aurais une question : quel code exactement n’est pas bon par rapport aux raw-string ? Dans la version en bêta ou en ligne ?

informaticienzero

Ce n’est pas dans le code, c’est dans le paragraphe explicatif de la version bêta Mais où sont mes fichiers ? > Avant-Propos > Pas d’interprétation, on est des brutes
Par défaut, une chaîne brute commence par R"( et termine par ").

leroivi

Ah oui, bien vu. Merci, je viens de corriger.

Sinon oui, je me demande si aborder std::filesystem vaut le coup ou pas. En même temps, c’est très intéressant, en même temps, je dois voir si ça n’alourdit pas le chapitre et si ça se cale bien. On va y réfléchir.

informaticienzero

Effectivement, je trouve ça un peu costaud pour l’intégrer dans le même chapitre
Mais je pense qu’il est possible de séparer la notion de flux et les fichiers. C’est dommage parce que le cas des fichiers est très accrocheur mais ça me semble plus progressif d’introduire la notion de flux puis les fichiers, et donc en faire deux chapitres

leroivi

Je pensais moi aussi à séparer ça en deux. Je vais voir avec mon co-auteur. :)

Salut à tous,

Quelques corrections éparses et la finalisation du chapitre sur les templates composent le menu de cette bêta. Le mieux étant l’ennemi du bien, je pense qu'on va partir sur une validation du tutoriel à ce stade. Bien entendu, nous sommes toujours ouverts à vos remarques et suggestions. :)

Merci d’avance pour vos commentaires.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte