[Tuto] Savoir choisir la meilleur solution

Espace contenant des tutoriels divers concernant AutoIt.
Règles du forum
.

Tutoriel "La programmation avec Autoit" : https://openclassrooms.com/fr/courses/1 ... vec-autoit
Répondre
Avatar du membre
Iste
Modérateur
Modérateur
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

[Tuto] Savoir choisir la meilleur solution

#1

Message par Iste » sam. 30 juin 2012 12:17

Salutations,

J'écris ce petit tuto car il arrive que certaine personnes sur ce forum (et ailleurs) aient tendance à donner en réponse à des problèmes des solutions pas forcément très adaptées. (Non, je vise personne en particulier)

Introduction :

Une idée assez rependu sur le net au sujet de la programmation, c'est que l'on peut prendre la solution que l'on veut tant que ça marche.
Faux !

Arrivé à un certain stade, le dev ne cherche plus à avoir du code fonctionnel (sauf dans des cas particuliers). Il cherche à avoir la solution la plus correcte au niveau de sa conception. Et l'on reconnaît les bons dev car même dans leurs projets perso qui n'ont pas vocation à être distribués, la conception est bonne.

En fait, pour bien faire comprendre le problème, c'est comme de vouloir se rendre d'un point A à un point B en voiture. Il y a une quasi infinité de chemins possibles. Beaucoup de dev/conducteur s’offusquent quand on leur dit qu'un chemin est faux, répondant qu'ils arrivent à destination.
Mais imaginez que ce ne soit pas vous qui conduisez mais le chauffeur de taxi que vous venez d'appeler. Seriez vous toujours d'accord pour l'intégralité des chemin possible ? Certainement pas, si vous voulez aller de Brest à Paris, vous n'accepteriez pas qu'il passe par Pau (et ne vous en faites pas, c'est du taxi lowcost).
On se retrouve donc avec une poignée seulement de routes possibles acceptables, dont on sait qu'une est sûrement meilleur, mais qu'il est trop compliqué de calculer laquelle à cause de variables trop volatiles (météo, trafique, état de la route, etc.)

Et bien en programmation c'est pareil !
Il y a une infinité de solutions à un problème donné, mais seule quelque une sont acceptables. Et si il y à une solution vraiment meilleur, les conditions (proco, ram, system etc) font qu'elle sera presque impossible à trouver.

Quelques trucs à savoir :

Du coup, comment savoir quelles sont les « bonnes » solutions ? Et bien pour ça pas de miracle, faut suivre des cours de conception. Savoir utiliser UML pour matérialiser les problèmes, connaître les patterns utiles et avoir déjà eu affaire à beaucoup de cas.
Autant dire que c'est pas à la porté de tout le monde !

Mais heureusement, on peut quand même éviter de passer par Pau sans être un pro ^^
En suivant des règles simples comme en conduite (aller le plus tout droit possible, suivre les panneaux).

1- Ne pas avoir de code trop puissant.
Quand on à plusieurs choix, toujours prendre le code en fait le moins possible.
Exemple :

Je veux additionner deux valeurs, je vais donc utiliser la fonction _add(a, b) qui me retourne la somme, et pas Execute().
Cela ne veut pas dire qu'on ne doit pas utiliser de fonctions « trop » puissantes ! Si on veut connaître le résultat d'une expression tel que ((1 + 2) * 3 + 45) – 16, à moins d'avoir une fonction le faisant, Execute() est le bien venu !

2- Avoir du code cohérent.
Une fonction ne doit pas faire le thé et le café et se limiter à son rôle.
Exemple :

Ma fonction _NombreDeLettreDans($chaine, $lettre) qui me retourne, vous l'aurez comprit, le nombre de lettre dans une String, ne doit pas retourner dans @extend true/false pour savoir si la chaîne testée est un palindrome !

3- Limiter le couplage.
Chaque fonction, udf ou bout de code, doit avoir le minimum de dépendances avec d'autres.
Exemple :

Je veux créer une UDF de gestion de tableaux, puis une autre de gestion de chaînes, pour gérer mon tableau de chaînes.
La première UDF ne devra pas utiliser la seconde. Ça sera au programme principal de faire appel à l'une, puis à l'autre.

Bien sûr, tous ces conseil ne sont que des lignes directrices à suivre, et il arrive souvent que l'ont doive s'en écarter pour tout un tas de raisons. Mais sans raison valable, on se doit de les suivre le plus près possible.

Conclusion :

Au delà de l'aspect purement conceptuel, il ne faut pas oublier où nous nous trouvons : Un forum d'entraide pour AutoIt.
Beaucoup ici ne cherchent pas de défis et veulent juste apprendre petit à petit.
Aussi, au lieu de les noyer dans des solutions plus complexes les une que les autres, essayez de commencer par leur donner la solution la plus simple !

Il faut donc éviter à tout prit de sortir une regexp dès que l'ont parle de String (surtout quand sa signature contient « La solution la plus simple est toujours la meilleure » (et non je ne vise toujours personne!))
Car oui, on peut tout faire avec, mais mon 1- dis bien qu'on doit aller au plus simple et un membre sera sûrement plus heureux d'apprendre le fonctionnement de _StringBetween() que de trouver un StringRegExp($s_String, "(?s)" & $s_case & $s_Start & "(.*?)" & $s_End, 3) même si ce dernier se trouve dans ce premier.

C'est tout aussi valable pour la réflexion. On pourrait faire tout une script en n'utilisant que ça ! Et pourtant on ne le fait pas. C'est pas totalement sans raison !

Voilà, j’espère que ça pourra en aider certain dans leurs codes, et d'autres dans leurs aides !

ps : ya un piège à rebelle dans cet article, donc faites attention avant de poster :)
Signez ici

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5831
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#2

Message par mikell » sam. 30 juin 2012 16:27

Iste a écrit :Il faut donc éviter à tout prit de sortir une regexp dès que l'ont parle de String (surtout quand sa signature contient « La solution la plus simple est toujours la meilleure » (et non je ne vise toujours personne!))
HAHAHA un vrai trolleur ce modo :mrgreen:
[mode definition ON] un troll est un propos provocateur et susceptible de créer une polémique (Wiki)
Et pousse-au-troll aussi, parce qu'il sait bien (le bougre) que je ne PEUX PAS ne pas répondre, même s'il ne vise personne en particulier, ce qu'il a même dit 2 fois histoire d'être sûr :mrgreen:
Ou alors c'est un test, auquel cas j'y ai déjà échoué (ce qui était bien évidemment hautement prévisible) :P

Bref. Blague à part, Iste dans sa conclusion commet à mon sens une erreur majeure (mais assez commune) qui tient au fait qu'il aborde le problème d'un point de vue strictement unilatéral et professionnel
J'explique avec une analogie
Dans mon métier, je suis amené à proposer aux gens des solutions. Or une erreur classique dans la profession est de se dire : "je ne vais pas proposer cette solution-là, parce que de toute façon, financièrement ce client ne pourra pas suivre". Et c'est une erreur, voire une faute, en effet :
- On émet un jugement qui peut s'avérer hâtif, car parfois on est étonné de certaines capacités financières du client qu'on ne soupçonnait pas, de plus ce jugement n'est qu'une estimation personnelle et ça c'est un comportement qui frise l'arrogance
- La faute, c'est parce qu'en omettant de présenter une solution plus onéreuse mais meilleure, on prive le client d'un choix possible pour une simple raison de jugement personnel, ce qui revient à imposer son propre choix, en fait ("un membre sera sûrement plus heureux... etc")

Cela dit, soyons clair : dans 90 % des cas, le jugement sera exact. Mais est-ce une raison suffisante pour dénigrer les 10 % restants ?
J'ai eu quelques messages qui disaient : "tiens, je ne connaissais pas le regexp, c'est intéressant je vais regarder ça" de la part d'utilisateurs qui maintenant utilisent le regexp ...
L'idéal serait donc de présenter à l'utilisateur les 2 solutions, et de le laisser lui-même faire son choix, ce qui se voit d'ailleurs déjà dans un certain nombre de topics

Pour finir : Iste sur le coup tu es vraiment gonflé, vu que c'est toi qui m'a initié au regexp alors que j'étais parfaitement nul, et qu'en plus à l'époque avec les épisodiques mais récurrents coups de gueule le jugement global à porter sur moi était assez glauque :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
Iste
Modérateur
Modérateur
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#3

Message par Iste » sam. 30 juin 2012 17:04

mikell a écrit :L'idéal serait donc de présenter à l'utilisateur les 2 solutions, et de le laisser lui-même faire son choix, ce qui se voit d'ailleurs déjà dans un certain nombre de topics
Toutafé
Proposer plus de choix ne peut être que bénéfique, car comme dit, le probleme à peut être été mal exprimé ou des donnés ont peut être été volontairement ou non masquées.
Seulement, il faut quand même essayer de proposer en 1er la "bonne" solution.
mikell a écrit :Pour finir : Iste sur le coup tu es vraiment gonflé, vu que c'est toi qui m'a initié au regexp alors que j'étais parfaitement nul, et qu'en plus à l'époque avec les épisodiques mais récurrents coups de gueule le jugement global à porter sur moi était assez glauque :mrgreen:
C'est pas une raison pour en mettre partout ! Mais bon, bien que mon topic puisse laisser des doutes, je ne vise vraiment personne ^^

Depuis que j'y suis inscrit je vois régulièrement des solutions beurk proposées a certain, qui ferment leur topic juste après, car bon, ça marche.
Je n'ai hélas déjà pas beaucoup de temps pour aider, je consacre donc le peu de temps que j'ai a ceux qui sont encore bloqué (ou à troller).
J’espère donc que ce sujet aidera ceux qui souhaitent donner de leur temps.

Au dela de ça, ça peut également aider ceux qui travaillent sur leurs propres projets affin de les aider a faire les bon choix. Car au final je ne fais ici que synthétiser quelque points de conception, qui sont là pour ça.

Et donc pour finir, je t'encourage de toute façon a continuer comme ca mikell, car les solutions "bonnes" sont données a coté, et que tu es un très bon exemple à suivre pour tous les "nan, pas les regexp, c'est compliquééé" qu'il reste sur le forum ^^

Edit :

Voici un code exagérant l'utilisation de la réflexion :
► Afficher le texte
Bon, une grande parti du code c'est du pur délire. Mais l'on peut voir que j'ai pu l'utiliser pour céer une map clef/valeur ou la clef est une chaine et dont la taille est variable.
C'est beaucoup plus mignon qu'un array ! Mais attention !!
Signez ici

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5831
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#4

Message par mikell » sam. 30 juin 2012 17:30

Iste a écrit : Mais bon, bien que mon topic puisse laisser des doutes, je ne vise vraiment personne ^^
De plus en plus gonflé :shock: :mrgreen:
Iste a écrit :surtout quand sa signature contient « La solution la plus simple est toujours la meilleure » (et non je ne vise toujours personne!)
Même moi j'aurais pas osé... Tlem peut-être, mais lui il est admin :twisted:
C'est pourtant vrai qu'on est des tas sur le forum à avoir cette signature .... ^^

Pour ce qui est des solutions "bonnes" (que tu as bien fait de mettre entre guillemets), ton tutoriel tel qu'il est présenté peut laisser entendre que le regexp n'est JAMAIS une bonne solution quand le problème peut être résolu par des String... ("Il faut donc éviter à tout prix de sortir une regexp dès que l'on parle de String")

OK, je reconnais être devenu assez enthousiaste avec les regexp, mais de là à en faire une utilisation systématique, quand même pas, sauf si comme je fais souvent c'est cité à titre d'exemple d'application de regexp (mais dans ce cas c'est clair que la solution regexp n'est pas forcément la meilleure)

EDIT
Exemple typique où le regexp évite une bonne prise de tête tout en restant relativement simple, ce post :
http://www.autoitscript.fr/forum/viewto ... 952#p68952
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
Iste
Modérateur
Modérateur
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#5

Message par Iste » sam. 30 juin 2012 17:44

mikell a écrit :ton tutoriel tel qu'il est présenté peut laisser entendre que le regexp n'est JAMAIS une bonne solution quand le problème peut être résolu par des String
Nan nan, en effet, dans certain cas comme celui que tu as cité, c'est LA solutions a utiliser au lieu de bidouiller avec les fonction de base.
Apres tout, j'ai bien dis qu'on pouvais faire du Execute() pour des calculs ^^
Je dis juste que si on a plus simple, faut utiliser le plus simple et pas chercher a faire du regexp quand même.
Signez ici

Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11364
Enregistré le : ven. 20 juil. 2007 20:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#6

Message par Tlem » sam. 30 juin 2012 22:10

Bonsoir.

Je rejoint Iste sur le fait que la solution la plus simple doit être communiquée en premier aux membres qui demandent de l'aide.
Bien que la solution de la RegExp permet de faire beaucoup de chose en une seule ligne, elle n'en est pas moins tributaire d'un moteur externe qui peut être perfectible et qui malgré les arguments de certains est loin d'être facilement assimilable sans un investissement personnel important !
mikell a écrit :Dans mon métier, je suis amené à proposer aux gens des solutions. Or une erreur classique dans la profession est de se dire : "je ne vais pas proposer cette solution-là, parce que de toute façon, financièrement ce client ne pourra pas suivre". Et c'est une erreur, voire une faute
Encore une fois, ceci est ton point de vue. Mais en tant que professionnel, tu devrait être à même de choisir pour ton client la solution la mieux adaptée à ses besoins et son budget ! Le professionnel c'est toi. En tant que tel, tu te doit de proposer la solution la mieux adaptée à ses besoins.

Proposer une solution qui lui couteras plus cher en lui apportant plus ou moins les même services avec seulement quelques avantages ne fera pas forcément la différence, surtout si le client doit devenir dépendant de ta/tes solutions. Bien au contraire, certains auront peur et iront à la concurrence car la solution y est plus simple/compréhensible et mieux 'contrôlable' et/ou évolutive.

Chaque clients est différent. Certains aiment les gens pointu, d'autre préfère un prix et d'autre encore, préfère le prestige d'une marque ou d'un nom.

Ici c'est pareil. Tu peut briller par tes connaissances en RegExp, rendre les gens dépendant de tes solutions. Tant que tu sera à leur service, ils feront appel à toi sans forcément comprendre le fonctionnement de ton expression et lorsque leur besoin changera, il viendrons te solliciter encore et encore ... :roll:

Une nouvelle fois, je ne dit pas que la RegExp c'est mal. Mais ici, ce n'est pas forcément la solution à tous les mots !

Pour résumer les choses et afin d'être clair dans mes propos, je dit que La solution la plus simple est toujours la meilleure (Zut déjà pris), si un utilisateur demande de l'aide, il vaut mieux préférer une solution à la hauteur de ses compétences, en proposant éventuellement en seconde instance l'expression régulière si cela amène un gain réel dans la taille du code (hors include).

Évidement, si un membre demande ou attaque directement avec une expression régulière, alors pas de problème, allons y gaiement. :mrgreen:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5831
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#7

Message par mikell » sam. 30 juin 2012 23:36

Rendre les gens dépendant de mes solutions, en voilà une drôle d'idée !
Alors que le but, en leur permettant de progresser, est justement de les rendre les plus indépendants possibles

Dans mon métier, les différences entre les solutions applicables sont *très* importantes (à tous les sens du terme), donc je propose, j'explique, je conseille, mais en aucun cas je choisis à la place du client. Le choix doit rester totalement le sien et être pris en toute connaissance de cause, c'est absolument impératif et obligatoire, et mes confrères qui n'ont pas suivi cette règle se sont tous un jour pris une claque

Alors oui effectivement, cette attitude qui dans mon métier est une évidence influe probablement sur mon attitude concernant autoit, mais cela dit si j'ai mis certains trucs dans ma signature c'est bien que j'y crois :wink:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 984
Enregistré le : lun. 19 oct. 2009 03:04
Localisation : Algérie
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#8

Message par matwachich » sam. 30 juin 2012 23:44

Moi je suis à fond des les RegExp!
Mais c'est vrai que donner 2 solutions est toujours bon.

PS: Le petit script tout tordu d'Iste m'a donné un idée!
Qu'en pensez-vous?
► Afficher le texte
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici

Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11364
Enregistré le : ven. 20 juil. 2007 20:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#9

Message par Tlem » sam. 30 juin 2012 23:52

@mikell
Encore une fois, ceci est ton point de vue. :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".

Avatar du membre
Iste
Modérateur
Modérateur
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#10

Message par Iste » dim. 01 juil. 2012 09:37

@matwachich : Comme tu as pu le constater on peut faire facilement de superbes map ainsi.
Mais les données ne sont pas encadrées
Donc pas possible de les lister ou de les supprimer proprement.
elles peuvent également se retrouver écrasées sans le vouloir (même si avec ton _Map_Create() les chances sont plus que faibles, ca reste possible)

Du coup, je te lance un défis :
Avec la même interface, pouvoir ajouter une fonction listant les données d'une map <key, value>
Il faudra laisser tomber la reflexion et utiliser des tableau. Fini, cela pourrait faire un tres bon UDF :)
Signez ici

Avatar du membre
silvere
Niveau 8
Niveau 8
Messages : 532
Enregistré le : sam. 24 sept. 2011 21:56
Contact :
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#11

Message par silvere » dim. 01 juil. 2012 11:19

Bonjour,
J'ai bien aimé tu tuto Iste mais j'aimerais savoir quelque chose qui me titille dans ton tuto tu dit qu'il ne faut pas utiliser (exemple) Execute() si on peut utiliser _add(a, b) je voulais tout simplement savoir pourquoi ?
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.

Avatar du membre
Iste
Modérateur
Modérateur
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#12

Message par Iste » dim. 01 juil. 2012 12:42

Car même si Execute() peut faire une addition, c'est une fonction trop puissante et qu'il vaut mieux utiliser une fonction spécialisée pour cela.

Par exemple, si l'on veut récupérer du texte entre deux chaine dans une plus grande ex : extraire le pseudo de la chaine "Bonjour Iste, ça va ?"

je peux faire une regexp ou utiliser _StringBetween()
La 1er va devoir prendre plus de paramètres en entrée, risque de me retourner plus de choses que voulu et ne gère pas forcément les erreurs comme il le faudrait car c'est une fonction trop générique.
_StringBetween() par contre prend le minimum et ses retour son très explicites.

Pareil pour _add() et Execute()
Les deux additionnent.
Mais si on leur passe des paramètres faux (genre 5 + 'Iste') Execute() va répondre = 5
_add() va me répondre "Erreur : 'Iste' n'est pas un nombre"

C'est pour cela qu'il faut toujours essayer d'utiliser la fonction la plus spécialisée possible. Les entrées/sorties seront plus justes.

Si j'ai pas été assez claire, j'essayerai de trouver un exemple plus parlant.
Signez ici

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5831
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#13

Message par mikell » dim. 01 juil. 2012 14:30

Pour le _StringBetween() tu aurais même pu ajouter qu'on peut aussi utiliser juste un StringSplit + StringReplace, ce qui est encore plus clair et évite l'include
Mais faut quand même de la bonne volonté pour arriver à se tromper sur le regexp :P
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
Iste
Modérateur
Modérateur
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#14

Message par Iste » dim. 01 juil. 2012 15:09

mikell a écrit :Pour le _StringBetween() tu aurais même pu ajouter qu'on peut aussi utiliser juste un StringSplit + StringReplace, ce qui est encore plus clair et évite l'include
On peut obtenir le même résultât mais se sera beaucoup plus lourd. Autant travailler char par char...
mikell a écrit :Mais faut quand même de la bonne volonté pour arriver à se tromper sur le regexp :P
Du tout. Il suffit de que l'une de ces valeurs soit extérieur au script et contienne des caractères spéciaux.
C'est exactement ce que je dis depuis le début. Regexp est trop puissant et au lieux de chercher ".*" il prendra tout ce qui lui passe par la main, car il n'est pas adapté.

Et si on me répond que
on peut virer les caractères spéciaux et faire la recherche avec les bonne options après ou d'utiliser d'autre méthodes de recherche et encapsuler tout ça dans une fonction
Au quel cas je répondrais que l'on a déjà une fonction qui fait ça : _StringBetween()

Dans tout les cas, avec d'autre solutions on en revient a recréer _StringBetween()
Signez ici

Avatar du membre
silvere
Niveau 8
Niveau 8
Messages : 532
Enregistré le : sam. 24 sept. 2011 21:56
Contact :
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#15

Message par silvere » dim. 01 juil. 2012 15:40

Tu n'a pas répondu a ma question :P
Iste a écrit :Car même si Execute() peut faire une addition, c'est une fonction trop puissante et qu'il vaut mieux utiliser une fonction spécialisée pour cela.
Pourquoi il faut utiliser une fonction plus spécifique pour cela ?
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5831
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#16

Message par mikell » dim. 01 juil. 2012 15:45

Absolument d'accord dans l'ensemble
C'était juste que dans l'exemple que tu as pris ( "Bonjour Iste, ça va ?" ) c'est le regexp qui est simple et le _StringBetween() qui représente l'artillerie lourde
La grosse différence est que _StringBetween() est une fonction généraliste alors qu'un regexp c'est du sur-mesure, si on a intégré cette idée alors les risques d'erreur deviennent (en principe...) inexistants
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
Iste
Modérateur
Modérateur
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#17

Message par Iste » dim. 01 juil. 2012 15:52

@mikell : Bah oui mais justement, comme dit, c'est un exemple.
En maths, quand on doit calculer la longueur du coté d'un triangle rectangle, on tape direct dans du pytha, on cherche pas une solution qui marche pour ce cas précis.

Mais sinon, si le cas est tres précis, alors oui on peut considérer qu'une regexp est plus spécialisée que _StringBetween(), mais comme c'est pas le cas de StringRegExp(), il faut alors l'encapsuler dans notre propre stringFunc() qui sera pour le coup et d'apres ce que j'ai pu écrire plus haut, "mieux" que _StringBetween().

Mais je comprend que ça puisse être abstrait, car je viens de dire que un même code, suivant ou il se trouve peut être "mieux" ou "moins bien" ^^ mais c'est comme ça la conception, on cherche pas a définir le code, mais son emplacement.

@silvere : :cry:
Signez ici

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5831
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#18

Message par mikell » dim. 01 juil. 2012 16:20

@silvere :
If String($vert) == :cry: Then Execute("relis le post en te concentrant davantage")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Avatar du membre
silvere
Niveau 8
Niveau 8
Messages : 532
Enregistré le : sam. 24 sept. 2011 21:56
Contact :
Status : Hors ligne

Re: [Tuto] Savoir choisir la meilleur solution

#19

Message par silvere » dim. 01 juil. 2012 16:49

Effectivement après avoir exécuter le scripte de mikell j'ai compris, j'avais du sauter une ligne en lisant merci Iste
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.

Répondre