Le bien coder

Sujets variés concernant le développement en PureBasic
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Le bien coder

Message par poshu »

Pour éviter de polluer le topic de FR4NK13, mais parce que le sujet m'intéresse quand même, parlons de bonnes manières dans le code.
Ar-S a écrit :Tu n'as pas tord sur ce doute de "comment débuter en PB". Mais c'est aussi une de ses forces que de proposer plusieurs approches. Pour la grande majorité (à mon avis), nous sommes des hobbyistes de la prog. "Les bonnes manières" sont relatives à nos besoins.
Certes utiliser les nouveaux Callbacks (bind) et les modules peuvent s'avérer utiles et même plus efficaces pour certains projets, mais pour de petits codes/projets, je suis plus d'avis d'y aller au plus simple/facile/traditionnel. Il sera toujours bon d'apprendre et utiliser les fonctions (un peu) plus complexes une fois les rouages de PB maitrisés.
J'ai pas mal d'objections là dessus, mais les deux premières sont les plus importantes:
●Une règle assez importante de l'ergonomie, c'est de ne pas multiplier inutilement les possibilités. En général, une option n'est là que parce qu'un développeur n'a pas eu le courage de faire un choix et laisse cette charge à l'utilisateur; avoir le choix n'est que rarement positif, même si cette affirmation n'est pas instinctive du tout.
●La FOOS est un adversaire assez solide : la FOOS, first order optimal strategy, est un concept de game design, les gens de Extra Credits l'ont décrit mieux que je ne pourrais le faire. Ce qu'il faut en retenir : le cerveau est feignant, et une fois qu'il a trouvé une solution qui marche, il a la flemme de chercher mieux.

Aussi, quand je parle de bonnes manières du code, je ne parle pas de nos petites manies. Les règles d'indentation, la façon de nommer les variable, tout ça c'est personnel on on va avoir dur mal à dire qu'une solution est meilleur qu'une autre (même si je sais bien que ma méthode est objectivement meilleure :mrgreen: )

Bon, maintenant que j'ai décrit le cadre de ma réflexion, je peux maintenant l'expliquer : Le problème n'est pas d'être pro ou hobbyiste, le problème est de briser ou non le plafond de verre. Et une bonne majorité des membres de ce forum n'y arrivent pas. Pire, ils n'essayent même pas et passent leur temps à se plaindre des outils plutôt que de leur technique. J'ai longtemps réfléchis à ce sujet, parce que ça me parait hallucinant de ne pas chercher à devenir meilleur dans son hobby : c'est un argument que je n'ai jamais entendu qu'ici. Je ne connais pas de footballeur du dimanche qui joue pour perdre, je ne connais pas de peintre amateur qui n'aspire pas à son chef d’œuvre. Mais sur les forums de PB, j'entends souvent ce bon vieux "good enough".

Ma théorie actuelle sur le sujet, c'est justement que les options de PB le rendent accessible, mais sont aussi les plus gros freins à l'évolution de ses utilisateurs. Par exemple, mes trois plus gros facepalm :
Que penser quand on voit des utilisateurs de PB avec 10 ans d'expérience qui utilisent encore la boucle d'event?
Que penser quand on voit des utilisateurs de PB perdu dans 500 lignes de leur propre code spaghetti?
Combien d'heures perdues à débug parce que, par défaut, PB n'est pas en mode explicite? Pire : combien d'utilisateurs ici présents ne savent même pas que PB possède un mode explicite?

Apprendre à utiliser correctement un callback, ça a l'air difficile et on ne se rend pas immédiatement compte des bénéfices à en tirer.
Apprendre à structurer correctement son code dans plusieurs modules, ça prend du temps et les profits qu'on va en tirer ne sont pas évident.
Devoir déclarer ses toutes ses variables, c'est contraignant et ça n'est pas une évidence que ça va régler masse de bugs.

La tradition est l'ennemi justement parce que c'est le contraire du progrès, et beaucoup de gens ne font pas l'effort de passer ces étapes parce qu'elles ne leur apparaissent pas comme nécessaires et c'est pour ça qu'ils stagnent.

Tout ça pour dire que j'ai l'impression que vous inculquez de bien mauvais réflexes à un noob, et que ça ne pourra pas lui faire du bien.
Dernière modification par poshu le jeu. 05/juil./2018 14:53, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Le bien coder

Message par falsam »

je ne peux être que d'accord avec toi étant pratiquant de ces principes. J'ajouterais qu'il est inutile de poster un code à rallonge à un Noob qui tente d’appréhender PureBasic.

Toutefois le Noob ferait mieux d’appréhender les possibilité de PureBasic avant de commencer un projet.

Exemple : Quand un Noob se lance dans un jeu dans lequel un processus de sauvegarde doit être utiliser, il commence par se poser la question : Est ce que c'est possible avec PureBasic et comment.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Le bien coder

Message par falsam »

Connaitre la touche F1 quand on positionne le curseur sur un mot réservé de PureBasic c'est bien aussi :wink:
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Le bien coder

Message par poshu »

Code : Tout sélectionner

Ce qui me fait m'interroger, car je n'ai jamais compris l'utilité de ce mode ni pourquoi on en est si friant sur le forum anglais.
Je n'ai jamais du débugger un programme à cause de ça en tout cas, vous si ?

Autre remarque, historiquement, (il me semble ?) on n'avait pas accès nativement aux callbacks avant avec Pb, donc il n'est finalement pas surprenant que les utilisateurs ayant 10 ans de pb derrière eux ne l'utilisent pas. (C'est mon cas d'ailleurs et je compte bien m'y mettre... Que quand j'en aurais la nécessité. Pour l'instant, c'est un concept qui m'échappe et me déplaît d'ailleurs pour cette raison: je n'utilise quelque chose que si je suis capable de savoir dans le menu, quels en sont les tenant et les aboutissants)
Faites un poste complet sur le sujet et je le lirai avec plaisir et attention.

Ah, et je ne stagne pas du tout, bien au contraire (ça semble arrogant, mais c'est juste la réalité).
Je pense que les personnes amateurs qui souhaitent briser ce plafond de verre profiteraient bien de se coller aux algorithmes et aux exercices liés. (qui sont indépendant des langages d'ailleurs)
Il me semble que concernant l'organisation du code, on progresse bien tout seul juste par la force de la nécessité: un cerveau ne peut débugger qu'un nombre limité de lignes de code à la fois. Il faut forcément s'organiser ou ruser.
@fig : et tu viens exactement d'illustrer tout ce que je disais. "Je n'en ressent pas le besoin donc je n'en ai pas besoin", c'est un sophisme assez courant.
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Le bien coder

Message par poshu »

Ce qui me fait m'interroger, car je n'ai jamais compris l'utilité de ce mode ni pourquoi on en est si friant sur le forum anglais.
Je n'ai jamais du débugger un programme à cause de ça en tout cas, vous si ?

Autre remarque, historiquement, (il me semble ?) on n'avait pas accès nativement aux callbacks avant avec Pb, donc il n'est finalement pas surprenant que les utilisateurs ayant 10 ans de pb derrière eux ne l'utilisent pas. (C'est mon cas d'ailleurs et je compte bien m'y mettre... Que quand j'en aurais la nécessité. Pour l'instant, c'est un concept qui m'échappe et me déplaît d'ailleurs pour cette raison: je n'utilise quelque chose que si je suis capable de savoir dans le menu, quels en sont les tenant et les aboutissants)
Faites un poste complet sur le sujet et je le lirai avec plaisir et attention.

Ah, et je ne stagne pas du tout, bien au contraire (ça semble arrogant, mais c'est juste la réalité).
Je pense que les personnes amateurs qui souhaitent briser ce plafond de verre profiteraient bien de se coller aux algorithmes et aux exercices liés. (qui sont indépendant des langages d'ailleurs)
Il me semble que concernant l'organisation du code, on progresse bien tout seul juste par la force de la nécessité: un cerveau ne peut débugger qu'un nombre limité de lignes de code à la fois. Il faut forcément s'organiser ou ruser.
@fig : et tu viens exactement d'illustrer tout ce que je disais. "Je n'en ressens pas le besoin donc je n'en ai pas besoin", c'est un sophisme assez courant.

Edit : roooh, le vilain ninja edit pendant que j'étais en train de rédiger ma réponse!
Dernière modification par poshu le jeu. 05/juil./2018 17:49, modifié 1 fois.
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Le bien coder

Message par Fig »

Tu n'as pas tord sur ce doute de "comment débuter en PB". Mais c'est aussi une de ses forces que de proposer plusieurs approches. Pour la grande majorité (à mon avis), nous sommes des hobbyistes de la prog. "Les bonnes manières" sont relatives à nos besoins.
Certes utiliser les nouveaux Callbacks (bind) et les modules peuvent s'avérer utiles et même plus efficaces pour certains projets, mais pour de petits codes/projets, je suis plus d'avis d'y aller au plus simple/facile/traditionnel. Il sera toujours bon d'apprendre et utiliser les fonctions (un peu) plus complexes une fois les rouages de PB maitrisés.
Je suis assez d'accord avec Ars.
A l'usage, on progresse dans la structure du code, par nécessité.
Il faut bien commencer et au début on ne pondra jamais un code dans les règles de l'art.
Ca me rappelle les personnes qui apprennent une langue, si elles ont peur de faire des erreurs, elle n'osent pas la parler, du coup, elles ne progressent pas.
Il faut bien commencer par un bout, tant pis si ce n'est pas propre, ça s'améliorera en postant le code et en prenant en compte les corrections faites par les forumeurs plus expérimentés.
Le pire serait de faire de la m*rde dans son coin sans oser le poster de peur d'être jugé à ce sujet.

Quant à ceux qui se complaisent dans la médiocrité, je suppose que c'est leur droit le plus strict. Du reste tout le monde n'a juste pas les capacités nécessaires pour briser le plafond de verre. A coté de cela, ils aiment programmer (mais peut être jouent très bien du piano allez savoir).

Je n'utilise pas les callbacks et je ne vois pas l'utilité (enfin uniquement théorique) du mode explicite. Jamais eut à corriger un bug qui était lié à ce type d'erreur.
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Le bien coder

Message par Fig »

poshu a écrit : @fig : et tu viens exactement d'illustrer tout ce que je disais. "Je n'en ressent pas le besoin donc je n'en ai pas besoin", c'est un sophisme assez courant.
Pas de Ninja ici, juste, je complétais ma pensée... Puis, je me suis dit qu'au fond ça m'était égal et que cette discussion était bien futile... Après avoir tout effacé, je me suis mis d'accord avec moi même pour poster ce qui est posté ci-dessus.

Quant à savoir si c'est un sophisme, non, je ne pense pas. J'ai utilisé la Gui de Pb que depuis 3-4 mois, avant je n'en ai jamais eu l'utilité (j'ai fait la mienne pour le mode graphique), j'ignorais même son fonctionnement. Donc effectivement je n'en avais pas besoin.
Pour autant, j'ai étudié le pathfinding pendant des années (et je pense être incollable sur le sujet) parce que j'en ai eu l'utilité. On n'a pas le temps de tout faire tu sais, il faut bien prioriser l'apprentissage des savoir et cela est lié à... l'utilité qu'on en a, forcément.

Ceci étant dit ce que tu exprime est tout à fait légitime et cohérent, je pense juste qu'un débutant est très loin de ces considérations et pourrait trouver ça extrêmement élitiste et décourageant.
Dernière modification par Fig le jeu. 05/juil./2018 18:01, modifié 1 fois.
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Le bien coder

Message par poshu »

Fig a écrit : j'ai étudié le pathfinding pendant des années (et je pense être incollable sur le sujet)
Puisque la discussion est futile, je ne m'abaisserai pas à te répondre.
Je vais juste te dire que non, tu n'es pas incollable sur le pathfinding. Je travail dans l'industrie du jeu vidéo, dans une boite à deux rues de là où je bosse, le gars qui s'occupe du pathfinding a écrit son doctorat dessus. Et lui même n'est probablement pas incollable.
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Le bien coder

Message par Fig »

C'est précisément pour cela que c'est futile: que cela entraîne une dispute pour un truc franchement ...
Quant aux problèmes d'égo, ce n'est pas typique des programmeurs mais ça les concerne beaucoup oui, manifestement. (tout ce qui porte un pénis en général, d'ailleurs)
Concernant le pathfinding je n'ai certes pas écrit de thèse sur le sujet mais j'ai lu beaucoup de thèses universitaire à ce sujet. Il ne fallait évidemment pas prendre le "incollable" au pied de la lettre, ça me semblait évident (néanmoins ... Je suis vraiment très bien informé là dessus)

Souffre donc juste que je ne sois pas d'accord avec toi ou parlons du fond: "On a pas le temps de tout approfondir, il faut bien prioriser le savoir en fonction de l'utilité qu'on en a."

Sinon, félicitation pour ton travail dans le milieu du jeu vidéo.
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
SPH
Messages : 4723
Inscription : mer. 09/nov./2005 9:53

Re: Le bien coder

Message par SPH »

Haaaa, sacré effet Dunning-Kruger :lol: 8)
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Le bien coder

Message par poshu »

Tout de suite les grands mots SPH. Justement, je voulais éviter de le balancer dans l'arène :p
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Le bien coder

Message par Fig »

Je t'ai envoyé un message en privé, Poshu. J'attends une réponse de ta part s'il te plait.
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Re: Le bien coder

Message par poshu »

@Fig, je ne reproche à personne sa façon de coder, je ne fais que questionner pourquoi certaines pratiques. Par exemple : tu n'utilises pas les callbacks... Mais c'est normal si tu n'utilises tout simplement pas les events! Comme quelqu'un qui se limite à des codes de 50 lignes n'a pas besoin de modules. Mon interrogation se porte sur ceux qui font de l'applicatif depuis 10 ans et ne prennent jamais le temps d'examiner une alternative à leur première approche.

Je ne parle pas ici de quelqu'un en particulier ou de quelque méthode de dev spécifique. Je produis probablement des aberrations dans mes projets d'ailleurs et je ne me prétends pas expert en quoi que ce soit. Ma question ici tourne surtout autour de : certains donnent des conseils bien moisis aux noobs, pourquoi? Ma théorie : par flemme.

Il y a d'autres biais qui peuvent expliquer ça. SPH a cité l'effet Dunning-Kruger par exemple, qui dit qu'il faut les même compétences pour être bon dans un domaine et pour savoir juger si on est bon dans un domaine. Ce qui fait que les mauvais se pensent souvent bon et que pas mal d'experts souffrent du syndrome de l'imposteur.
Y'a probablement du biais de confirmation aussi: le forum français est un microcosme ou on se branle pas mal en cercle. Alors quand on voit ses voisins poster du code tout aussi moisi que le sien, ça conforte probablement dans ses habitudes. Et quand Falsam poste un truc propre, on se dit qu'il est pro, donc c'est normal que ce soit meilleur.
C'est pareil avec tes codes : j'ai passé une 10 minutes à essayer de piger le fonctionnement du pendule double (je suis une quiche en maths et en particulier en géométrie). Mais je suis prêt à parier que 99% des gens ont copié, collé et fermé le truc sans prendre le temps de lire ou de modifier un peu le code. C'est ce comportement que j'interroge.

Le temps est peut être une réponse, mais je ne crois pas que ce soit la seule.
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Re: Le bien coder

Message par Fig »

Le pendule double, je ne comprends pas une traître ligne de la partie mathématique et je n'ai même pas essayé, cela est au dessus de mes compétences. (en fait, et je suis sûr que c'est ton cas aussi, si on prenait un peu le temps... Mais franchement on a mieux à faire, hein...)

Mais ce n'est pas le sujet, je regrette d'avoir donné mon opinion ici, ça me servira de leçon.
J'apprécie que la discussion ait pris un tour apaisé et je te présente mes excuses publiques d'avoir été probablement maladroit dans mes propos.

Je te souhaite une bonne soirée. Image
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Le bien coder

Message par djes »

Bande de vieux débutants ! Allez, rassurez-vous, nous ne sommes peut-être pas des dieux de la prog, mais quand on voit la MERDE que pondent certains pros de grandes compagnies, qu'on est obligé d'utiliser au quotidien, et bien, ça rassure. Ici, on peut prendre du plaisir, soit à tester une idée, soit à peaufiner un petit truc, soit à apprendre la prog tout simplement... Et il y a de bien belles choses à découvrir sur ces forums, ce post en est un bel exemple.
Répondre