Big-tuto C++

a marqué ce sujet comme résolu.

Hey j'ai dit que j'étais d'accord ! Je me plis à la majorité. Tout les auteurs sont d'accord pour faire un big-tuto celui-ci étant déjà commencé ( Et oui ! On se parle par MP ).

Le forum reste cependant ouvert à vos questions et remarques.

+0 -0

+1 aussi à la factorisation des efforts. Voir avec Guillaume s'il n'y a pas moyen de collaborer avec lui.

lmghs

(HS : mon cours est dispo et librement réutilisable. Et il est prévu de l'importer ici quand il sera plus avancé. Mais je n'ai pas forcement envie de participer a la rédaction de ce tuto, ni avoir d'autres rédacteurs sur mon cours.

Pour moi, un cours est personnel. C'est l'expression d'une façon de voir et d'expliquer les choses. C'est pour cela que je ne crois pas a un cours rédigée par trop de personnes, et que je n'ai pas envie de passer 10 mois a discuter du contenu. Tout simplement parce qu'il n'y a pas de "bonne" façon de présenter les choses - par contre, il y a pleins de bonne façon, comme par exemple expliquer un concept sans expliquer la gestion des erreurs.

Et du coup, je ne vois pas de problème a ce qu'il y ait plusieurs cours sur le même sujet, puisque ce seront des choses différentes.

Mais bien sur, pas de problème si besoin de relecteurs)

NB: dans la norme, je vois souvent object employé en place de variable. Il n'empêche que j'essaie de garder la différence et juste employer variable et type quand mes explications se veulent génériques.

lmghs

Je trouve que c'est bien que le lecteur comprenne la différence entre ces concepts (quelque soit le nom que l'on donne) :

  • variable : concept compilateur, = type + nom + valeur
  • objet, valeur : instanciation en mémoire
  • type, classe : concept compilateur, ce que représente la mémoire
  • (unamed variable = variable sans nom)

Pour que ces notions sont comprises, il faut que le lecteur ait en tête le processus de compilation et la structure des ordis.

+5 -0

EDIT : gbdivers, j'aimerais bien avoir ton avis sur le fait de présenter la gestion des erreurs vers la fin du tutoriel : est-ce tropt tard ou est-ce acceptable ? (si d'autres ont un avis sur la question, je suis preneur ;) )

mehdidou99

La notion d'exception va de pair avec la notion de ressource : on veut dissocier la libération des ressources (capsules RAII) de la gestion des erreurs (problème d'allocation, de droits sur un fichier, d'accès réseau, etc). Cf. la très bonne présentation de Jon Kalb. C'est clairement une notion avancée par rapport à la POO : on peut faire des objets sans parler d'exceptions mais pas d'exceptions sans parler d'objets.

C'est clairement une notion avancée par rapport à la POO : on peut faire des objets sans parler d'exceptions mais pas d'exceptions sans parler d'objets.

Tolf

Encore une fois, cela dépend du découpage que vous voulez faire pour le tuto. Mais vous n'êtes pas obligé de suivre l'approche de cette présentation ou celle de The C++ Langage. Ces 2 (excellentes) sources sont descriptives et aborde une problématique en essayant d'être exhaustif.

Dans un cours, il faut être le plus complet possible, mais pas obligé de mettre de faire un chapitre uniquement sur les exceptions. C'est possible et intéressant, pour fixer les idées, mais il est probablement préférable que le lecteur ait vu les exceptions par petits morceaux avant.

Dans un cours (contrairement à une présentation telle que celle de CppCon), il est tout à fait possible de séparer l'utilisation des exceptions standards lancées par des classes standard, l'utilisation des exceptions standards dans ses propres classes et fonctions, la création de ses propres exception. Seule la dernière nécessite d'avoir des notions de POO, les autres peuvent être vu très rapidement dans le cours.

+2 -0

Si je peux mettre mon petit pas dans la machine :

A mon avis, ce n'est pas parce qu'une une notion A utilise une notion B (les exceptions et les objets), qu'il faut présenter la notion B avant la notion A.

D'après ce que j'ai lu, si vous présentez des objets au début du tutoriel (std::string et cie), le lecteur aura déjà une première approche de ce qu'est un objet, mais il n'est pas obligé de le savoir. Ce qu'il doit absolument savoir, c'est que std::string est un type, et qu'il peut déclarer des variables de type std::string. Cette observation, il faut également l'appliquer aux exceptions : savoir que le mécanisme des exceptions utilise des objets, c'est inutile. Par contre, savoir pourquoi ce mécanisme existe et comment l'utiliser, i.e rattraper une exception en précisant son type, c'est la base essentielle à avoir, et ça peut se faire même au tout début du tutoriel, quitte à en reparler plus tard, voire dans un autre tutoriel.

Ce genre d'organisation, ça a en plus l'avantage de montrer la cohérence du langage.

Merci à tous pour vos avis ! Je vais en rediscuter avec les autres auteurs, mais je pense que l'on va plutôt distiller l'apprentissage de la gestion des erreurs au fur et à mesure que le lecteur avance dans le cours. Puis, après qu'il ait vu la POO, on complétera cet apprentissage dans une partie dédiée.

+1 -0
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