Moi c'est quand je vois le ce code là que j'ai peur.
là je suis d'accord, trop complexe pour pas grand chose.
Si je peux je rechercherais bien un vrai exemple parce que justement c'était une solution simple, claire et lisible.
ça cache une complexité à l'usage
L'exemple que tu prend peut-être, mais la version simple non.
il a tendance à séparer dans 2 endroits trop distincts le code et la gestion d'erreur
Exactement, et je trouve que ça devient justement peu lisible. Surtout si tu veux faire une gestion d'erreur dans plusieurs méthodes tu fais comment ? Combien de scope guard il va falloir implémenter ?
Pas de problème avec ça.
Mais en général ça ne se limite pas à de la libération de ressource. Il peut y avoir plein de choses à traiter sur le cas d'erreur, du log, des traitements spécifiques, etc.
Et là quand je vois ça (http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Scope_Guard) ou le ON_BLOCK_EXIT je me dis que c'est bien lourd pour un truc qui se fait facilement avec un do et un break, même si c'est pas la "bonne" façon de faire.
Nan mais ce que je veux dire c'est qu'à mon avis ce que tu décris comme bonne pratique (ie comment traiter un warning) est ce qu'ils voulaient faire (même si ça c'est mal passé). C'est pas supprimer un warning pour supprimer un warning mais gérer le problème (et lorsqu'il n'est plus là le warning doit avoir disparu)
Mettre des patterns à grand coup de loop et break an C++, c'est bien souvent ne pas connaitre C++.
Pourquoi ? Je trouve quand même ça plutôt lisible et simple à comprendre.
Les liens que tu donnes m'ont pas vraiment donné envie trop verbeux, trop complexes ;-) Mais bon, je creuserai un peu plus, ça a l'air intéressant.
Dans l'exemple le truc c'est qu'il y a un for (bien long) suivi, sur la même ligne et sans accolades d'un if.
Donc en général on ne lit pas le if (trop long à droite), on commence à descendre le contenu sous 1 niveau d'indentation jusqu'à tomber sur un else et non l'accolade fermante du for.
Et je me demandais juste si c'était possible en python d'avoir le for et le if sur la même ligne et le contenu du if avec un seul niveau d'indentation ou non (ce qui est super crade).
Ou simplement passer par une étape de "respect" de styleguide.
Le pire dans le genre c'est quand j'ai vu un code du genre :
// méthode à 13 paramètres// bla blafor(myIntVectorIterator=myIntVector.begin();myIntVectorIterator!=myIntVector.end();myIntVectorIterator++)if(plop){// un bloc bien long//...//...//...//...}else{//...//...}
La première fois lorsque je suis arrivé sur le else j'ai failli vomir.
D'ailleurs en python ça aurait donné quoi ? Une double indentation ? Juste impossible ?
Oui, voir des goto dans des libs en pure code C a rien de choquant. C'est plus que commun pour la gestion des erreurs et spécialement dans du code un peu agé.
Et pour les langages qui n'ont pas de goto (ou alors quand on l'interdit) on peut faire la même chose avec un bloc contenant des break.
En C++ (sur du code Adobe) il y avait un pattern assez classique à base de
boolok=false;do{// bla bla blaif(/* comportement pas glop */){break;}// bla blaok=true;}while(false);if(!ok){// traitement des cas en erreurreturnk_fail;}
C'est pas le comportement classique qu'on voit aujourd'hui avec toutes ces exceptions, mais c'est un système qui n'est pas si mal que ça.
Si je vois des gens tenter de planter une sardine avec un marteau oui je me dirais (voir dirais) que je trouve ce choix absolument horrible. Et tu sais quoi ? Si j'ai un marteau je leur filerais même volontiers.
Tu voudrais pas aller tenir ce genre de discours à Linus ?
Ben si j'en étais persuadé pourquoi pas. Sauf que justement tout n'est pas adapté à tout. Et c'est bien pour ça que plein de langages existent.
Ha oui, c'est vrai que ma zone de confort c'est trouver comment builder des modules PHP sur une plateforme distante lorsqu'ils sont manquant, j'avais oublié.
Oui, ça sert surtout à se faire plaisir et du NIH.
Je pense pas non. Beaucoup de langages / plateformes cherchent à résoudre des problèmes, et parfois de manière bien différentes.
le premier critère de sélction d'un language est : celui que tu connais déjà
Ha ben pas pour moi justement. J'apprend régulièrement des nouveaux langages justement parce que c'est plus adapté aux problèmes rencontrés. Genre ces derniers mois du clojure parce que la gestion des données correspondait très bien au métier, et du Ada parce que c'est quand même vachement bien pour certains problèmes.
Ca veut tout dire.
Non, ça veut juste dire que la majorité ne veulent surtout pas sortir de leur zone de confort sans chercher à savoir s'il y a moyen de faire mieux.
La personne veut qu'on tout lui revienne sinon il met des bâtons dans les roues.
Ben disons que tout dépend si tu considère que ça doit revenir à la personne ou au projet (ce qui est différent du côté "égocentrisme"). Après j'ai juste lu de travers donc bon…
Venu le chercher ? En répondant à un commentaire disant que kanban === scrum board alors que c'est juste totalement faux ?
Merci de nous montrer ta grande connaissance en recherche google
T'as vraiment pas compris que l'analogie du marteau était totalement foireuse ?
S'il existe plein de marteaux différents c'est pour une bonne raison. Et s'il existe des marteaux + des tournevis + des pinces + … c'est pas pour rien?
Et s'il existe plein de langages c'est pas pour rien non plus.
autant j'ai du mal à voir l'intérêt de Heroku s'il faut se taper des ./configure && make
Aucun, je voulais juste voir si ça marchait sur heroku. De base ce n'est pas le cas car il manque un module.
Et ça explique juste comment l'installer (ce qui est intéressant au cas où il manque d'autres modules dans d'autres projets).
Et pourquoi heroku ? Juste parce que je bosse avec donc c'était plus facile pour moi.
La démo a été réinitialisée, je pense que je vais voir pour la réinitialiser régulièrement pour être tranquile
Et là vous verrez que ça ne fonctionne pas parce qu'il manque mbstring.
heroku run bash
mkdir tmp
cd tmp
git clone https://github.com/php/php-src.git
cd php-src
git checkout PHP-5.3.27 # c'est la version que j'ai sur mon instance herokucd ext/mbstring
/app/php/bin/phpize
./configure -with-php-config=/app/php/bin/php-config
make
Récupérez mbstring.so dans le répertoire modules (avec scp par exemple)
Dans votre clone de kanboard :
créez un répertoire ext
copiez dedans mbstring.so
créez un fichier php.ini à la racine avec extension=/app/www/ext/mbstring.so comme contenu
Simplement qu'on me dise pour quelle bonne raison (autre que PHP tout le monde en fait, ce qui est une mauvaise raison) développer aujourd'hui en PHP par exemple.
Mais venir pleurer parce qu'une appli qui t'intéresse pas n'est pas dans le langage qui te plaît, c'est une réaction à la noix.
J'aime comment tu réécris l'histoire. J'ai trouvé l'appli sympa mais il manque de quoi en faire un vrai board kanban (parce que ce n'est pas un board kanban aujourd'hui). Ça tombe bien c'est prévu dixit l'auteur, donc on verra bien plus tard si ça vaut le coup.
Et oui je me demande bien pourquoi choisir PHP que je considère comme un mauvais langage et une mauvaise plateforme web (rien que le reload systématique ou la nécessité des caches d'opcode est horrible — et là j'aimerais bien que quelqu'un arrive à me dire que c'est une bonne chose pour rigoler un bon coup —, heureusement qu'il y a des projets genre HHVM).
Si moi je te dis que ruby, node, python ou go ça pue et que tes appli avec ces langages tu peut te les garder parce que j'installe pas ces trucs chez moi, ça va te plaire ?
Ha mais je m'en branle totalement du fait que ça peut plaire ou non.
C'est quand que tu aura la maturité suffisante pour te dire que le langage est un détail ?
Je pense que ça te ferait vraiment du bien d'aller quelques langages supplémentaires, quelques types différents et tu verra que tu viens de sortir une belle connerie. Car non ce n'est pas un détail. Certains langages sont similaires et dans ce cas précis oui. Mais en vrai non.
Si tu prend un lisp, prolog, haskell, java et php (par exemple) tu devrais voir que c'est loin d'être un détail anodin.
mais bon un marteau c'est un marteau
Sérieux ?
Tu veux dire qu'un marteau, un marteau, un marteau, un marteau et un marteau c'est pareil ? Que ça sert à la même chose et que tu peux remplacer l'un par l'autre n'importe quand et pour faire n'importe quoi ? Et ben on est pas sorti…
T'as le droit d'adorer PHP, pas de problème. Mais beaucoup de monde a aussi le droit de trouver que, aussi bien en tant que langage que plateforme, c'est juste une horreur qui évolue très très lentement et qui ferait mieux de disparaître.
Et désolé mais en général mes machines / serveurs n'ont ni apache ni PHP pour la plupart donc oui le choix de PHP me gène car si c'était du ruby, python, go, node je l'aurai probablement testé.
Après c'est sûr que c'est un cercle vicieux qu'il va falloir rompre un jour
Ça ferait vraiment du bien en effet. Franchement ça tourne beaucoup en rond autour de PHP en France, et heureusement qu'il y a quand même quelques boites qui sont ouvertes et font du ruby/go/clojure par exemple.
Pour la limite d'encours c'est prévu dans ma todo list
Ok, cool.
Pour PHP, c'est pas aussi horrible que ça
Heu… un peu quand même. Je préfère vraiment de loin faire du go, du clojure (miam miam), du ruby et même du c++, du js, du perl que de toucher à PHP.
Et je préfère surtout ne rien avoir à installer en php et idem je préfère par exemple de loin un projet en ruby, node, clojure que je vais pouvoir balancer sur heroku sans me poser la moindre question. Et là côté installation difficile de faire mieux que heroku apps:create && git push heroku master
Oué, mais non désolé. Si je devais remonter un bug pour chaque logiciel auquel il manque une fonctionnalité je suis vraiment pas sorti. Oui je sais c'est une réponse facile…
Ha oui, et c'est vrai que j'ai aussi bloqué sur PHP (mais pourquoi un choix aussi horrible ???)
[^] # Re: Dépêches de seconde page
Posté par CrEv (site web personnel) . En réponse au journal Avoir du marbre (et des discussions techniques). Évalué à 3.
Et de la même manière il y avait des journaux de seconde page, mais à priori les gens ne sont pas pour leur retour
[^] # Re: Le cas goto
Posté par CrEv (site web personnel) . En réponse au journal Apple, le SSL les goto et les accolades. Évalué à 2.
Oui c'est uniquement pour cette raison.
C'est sur que si
{}
formait un bloc dans lequel on peut placer un break ça serait plus cool :-)[^] # Re: Le cas goto
Posté par CrEv (site web personnel) . En réponse au journal Apple, le SSL les goto et les accolades. Évalué à 2.
là je suis d'accord, trop complexe pour pas grand chose.
Si je peux je rechercherais bien un vrai exemple parce que justement c'était une solution simple, claire et lisible.
L'exemple que tu prend peut-être, mais la version simple non.
Exactement, et je trouve que ça devient justement peu lisible. Surtout si tu veux faire une gestion d'erreur dans plusieurs méthodes tu fais comment ? Combien de scope guard il va falloir implémenter ?
[^] # Re: Le cas goto
Posté par CrEv (site web personnel) . En réponse au journal Apple, le SSL les goto et les accolades. Évalué à 2.
Pas de problème avec ça.
Mais en général ça ne se limite pas à de la libération de ressource. Il peut y avoir plein de choses à traiter sur le cas d'erreur, du log, des traitements spécifiques, etc.
Et là quand je vois ça (http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Scope_Guard) ou le
ON_BLOCK_EXIT
je me dis que c'est bien lourd pour un truc qui se fait facilement avec undo
et unbreak
, même si c'est pas la "bonne" façon de faire.[^] # Re: Si tout cela est vrai, cela tend a montrer que de mauvaises pratiques se sont banalisés
Posté par CrEv (site web personnel) . En réponse au journal Apple, le SSL les goto et les accolades. Évalué à 5.
Nan mais ce que je veux dire c'est qu'à mon avis ce que tu décris comme bonne pratique (ie comment traiter un warning) est ce qu'ils voulaient faire (même si ça c'est mal passé). C'est pas supprimer un warning pour supprimer un warning mais gérer le problème (et lorsqu'il n'est plus là le warning doit avoir disparu)
[^] # Re: Si tout cela est vrai, cela tend a montrer que de mauvaises pratiques se sont banalisés
Posté par CrEv (site web personnel) . En réponse au journal Apple, le SSL les goto et les accolades. Évalué à 5.
Le résultat final ce n'est pas justement d'éliminer ce warning ?
[^] # Re: Le cas goto
Posté par CrEv (site web personnel) . En réponse au journal Apple, le SSL les goto et les accolades. Évalué à 4.
Pourquoi ? Je trouve quand même ça plutôt lisible et simple à comprendre.
Les liens que tu donnes m'ont pas vraiment donné envie trop verbeux, trop complexes ;-) Mais bon, je creuserai un peu plus, ça a l'air intéressant.
[^] # Re: Manque un warning "indentation"
Posté par CrEv (site web personnel) . En réponse au journal Apple, le SSL les goto et les accolades. Évalué à 2.
Dans l'exemple le truc c'est qu'il y a un
for
(bien long) suivi, sur la même ligne et sans accolades d'unif
.Donc en général on ne lit pas le
if
(trop long à droite), on commence à descendre le contenu sous 1 niveau d'indentation jusqu'à tomber sur unelse
et non l'accolade fermante dufor
.Et je me demandais juste si c'était possible en python d'avoir le for et le if sur la même ligne et le contenu du if avec un seul niveau d'indentation ou non (ce qui est super crade).
[^] # Re: Manque un warning "indentation"
Posté par CrEv (site web personnel) . En réponse au journal Apple, le SSL les goto et les accolades. Évalué à 2.
Ou simplement passer par une étape de "respect" de styleguide.
Le pire dans le genre c'est quand j'ai vu un code du genre :
La première fois lorsque je suis arrivé sur le
else
j'ai failli vomir.D'ailleurs en python ça aurait donné quoi ? Une double indentation ? Juste impossible ?
[^] # Re: Le cas goto
Posté par CrEv (site web personnel) . En réponse au journal Apple, le SSL les goto et les accolades. Évalué à 5.
Et pour les langages qui n'ont pas de goto (ou alors quand on l'interdit) on peut faire la même chose avec un bloc contenant des break.
En C++ (sur du code Adobe) il y avait un pattern assez classique à base de
C'est pas le comportement classique qu'on voit aujourd'hui avec toutes ces exceptions, mais c'est un système qui n'est pas si mal que ça.
[^] # Re: scrum board.
Posté par CrEv (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à -3.
Si je vois des gens tenter de planter une sardine avec un marteau oui je me dirais (voir dirais) que je trouve ce choix absolument horrible. Et tu sais quoi ? Si j'ai un marteau je leur filerais même volontiers.
Ben si j'en étais persuadé pourquoi pas. Sauf que justement tout n'est pas adapté à tout. Et c'est bien pour ça que plein de langages existent.
[^] # Re: heroku
Posté par CrEv (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 0.
Ha oui, c'est vrai que ma zone de confort c'est trouver comment builder des modules PHP sur une plateforme distante lorsqu'ils sont manquant, j'avais oublié.
[^] # Re: scrum board.
Posté par CrEv (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 2.
Je pense pas non. Beaucoup de langages / plateformes cherchent à résoudre des problèmes, et parfois de manière bien différentes.
Ha ben pas pour moi justement. J'apprend régulièrement des nouveaux langages justement parce que c'est plus adapté aux problèmes rencontrés. Genre ces derniers mois du clojure parce que la gestion des données correspondait très bien au métier, et du Ada parce que c'est quand même vachement bien pour certains problèmes.
Non, ça veut juste dire que la majorité ne veulent surtout pas sortir de leur zone de confort sans chercher à savoir s'il y a moyen de faire mieux.
[^] # Re: licence ?
Posté par CrEv (site web personnel) . En réponse au journal Annonce : Manux 0.0.4. Évalué à 0.
Ben disons que tout dépend si tu considère que ça doit revenir à la personne ou au projet (ce qui est différent du côté "égocentrisme"). Après j'ai juste lu de travers donc bon…
[^] # Re: licence ?
Posté par CrEv (site web personnel) . En réponse au journal Annonce : Manux 0.0.4. Évalué à 3.
Je pense que ce n'est pas l'objectif : http://www.manux.info/fr/docs/licensing/
Pas sur, faut quand même voir le nombre de distrib qui existe, c'est juste magnifique vu que désormais pour rajouter un paquet on fait une distrib :-)
[^] # Re: scrum board.
Posté par CrEv (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à -1.
Venu le chercher ? En répondant à un commentaire disant que kanban === scrum board alors que c'est juste totalement faux ?
T'as vraiment pas compris que l'analogie du marteau était totalement foireuse ?
S'il existe plein de marteaux différents c'est pour une bonne raison. Et s'il existe des marteaux + des tournevis + des pinces + … c'est pas pour rien?
Et s'il existe plein de langages c'est pas pour rien non plus.
[^] # Re: heroku
Posté par CrEv (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 2.
Aucun, je voulais juste voir si ça marchait sur heroku. De base ce n'est pas le cas car il manque un module.
Et ça explique juste comment l'installer (ce qui est intéressant au cas où il manque d'autres modules dans d'autres projets).
Et pourquoi heroku ? Juste parce que je bosse avec donc c'était plus facile pour moi.
La démo a été réinitialisée, je pense que je vais voir pour la réinitialiser régulièrement pour être tranquile
[^] # Re: licence ?
Posté par CrEv (site web personnel) . En réponse au journal Annonce : Manux 0.0.4. Évalué à 5.
une licence "maison" : http://www.manux.info/fr/licences/v1/
# heroku
Posté par CrEv (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 10.
Comme je suis un gros connard qui déteste le PHP voici comment faire tourner kanboard sur heroku :
Et là vous verrez que ça ne fonctionne pas parce qu'il manque
mbstring
.Récupérez
mbstring.so
dans le répertoiremodules
(avec scp par exemple)Dans votre clone de kanboard :
ext
mbstring.so
php.ini
à la racine avecextension=/app/www/ext/mbstring.so
comme contenugit add -f ext/mbstring.so php.ini
git commit -m "mbstring on heroku"
git push heroku master
ouvrez http://je-troll-php.herokuapp.com
Et sinon j'ai poussé sur http://kanboard-test.herokuapp.com pour de vrai donc ça fait une démo de dispo avec linuxfr/linuxfr
[^] # Re: scrum board.
Posté par CrEv (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à -4.
Tu veux dire toi qui écrit
?
Genre tu as une distrib linux (oui désolé on est sur linuxfr hein) sans aucune version de python ou ruby ? je sais pas mais j'ai comme un doute là…
[^] # Re: scrum board.
Posté par CrEv (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à -6.
Simplement qu'on me dise pour quelle bonne raison (autre que PHP tout le monde en fait, ce qui est une mauvaise raison) développer aujourd'hui en PHP par exemple.
J'aime comment tu réécris l'histoire. J'ai trouvé l'appli sympa mais il manque de quoi en faire un vrai board kanban (parce que ce n'est pas un board kanban aujourd'hui). Ça tombe bien c'est prévu dixit l'auteur, donc on verra bien plus tard si ça vaut le coup.
Et oui je me demande bien pourquoi choisir PHP que je considère comme un mauvais langage et une mauvaise plateforme web (rien que le reload systématique ou la nécessité des caches d'opcode est horrible — et là j'aimerais bien que quelqu'un arrive à me dire que c'est une bonne chose pour rigoler un bon coup —, heureusement qu'il y a des projets genre HHVM).
Ha mais je m'en branle totalement du fait que ça peut plaire ou non.
Je pense que ça te ferait vraiment du bien d'aller quelques langages supplémentaires, quelques types différents et tu verra que tu viens de sortir une belle connerie. Car non ce n'est pas un détail. Certains langages sont similaires et dans ce cas précis oui. Mais en vrai non.
Si tu prend un lisp, prolog, haskell, java et php (par exemple) tu devrais voir que c'est loin d'être un détail anodin.
Sérieux ?
Tu veux dire qu'un marteau, un marteau, un marteau, un marteau et un marteau c'est pareil ? Que ça sert à la même chose et que tu peux remplacer l'un par l'autre n'importe quand et pour faire n'importe quoi ? Et ben on est pas sorti…
[^] # Re: scrum board.
Posté par CrEv (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à -6.
Faut croire que non.
T'as le droit d'adorer PHP, pas de problème. Mais beaucoup de monde a aussi le droit de trouver que, aussi bien en tant que langage que plateforme, c'est juste une horreur qui évolue très très lentement et qui ferait mieux de disparaître.
Et désolé mais en général mes machines / serveurs n'ont ni apache ni PHP pour la plupart donc oui le choix de PHP me gène car si c'était du ruby, python, go, node je l'aurai probablement testé.
[^] # Re: scrum board.
Posté par CrEv (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 3.
Ça ferait vraiment du bien en effet. Franchement ça tourne beaucoup en rond autour de PHP en France, et heureusement qu'il y a quand même quelques boites qui sont ouvertes et font du ruby/go/clojure par exemple.
[^] # Re: scrum board.
Posté par CrEv (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 0.
Ok, cool.
Heu… un peu quand même. Je préfère vraiment de loin faire du go, du clojure (miam miam), du ruby et même du c++, du js, du perl que de toucher à PHP.
Et je préfère surtout ne rien avoir à installer en php et idem je préfère par exemple de loin un projet en ruby, node, clojure que je vais pouvoir balancer sur heroku sans me poser la moindre question. Et là côté installation difficile de faire mieux que
heroku apps:create && git push heroku master
[^] # Re: scrum board.
Posté par CrEv (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à -2.
Oué, mais non désolé. Si je devais remonter un bug pour chaque logiciel auquel il manque une fonctionnalité je suis vraiment pas sorti. Oui je sais c'est une réponse facile…
Ha oui, et c'est vrai que j'ai aussi bloqué sur PHP (mais pourquoi un choix aussi horrible ???)