El Titi a écrit 3948 commentaires

  • [^] # Re: Show me the code

    Posté par  . En réponse au journal L’homme orchestre, partie 2 : écrire du code (en Java). Évalué à 9. Dernière modification le 24 mars 2016 à 14:40.

    Ne prends pas ombrage de ses remarques. Toi même tu demandes un feedback. Je souscris à pas mal de ses remarques sauf une:
    celle qui semble insinuer qu'un autodidacte ne saurait fournir du code de qualité. Et je ne vais pas m'embarquer dans ce débat.

    Tu appelle à un retour, tu sembles attaché à la qualité de la documentation. Je te cite:

    Pas de tutoriel ? Pas d’exemple ? Next !

    Bien nommer
    Si vous ne savez pas noter une variable, une classe, une fonction, c’est qu’elle n’a pas a exister de la façon d’où vous la pensez.

    Pourtant lorsqu'on t'objecte certains point tu sembles mal le prendre. Je suis d'accord que la forme importe mais il me semble que ton contradicteur est resté courtois.

    Je me suis aussi un peu penché sur ton code et je m'exprime peut-être à tort, je ne connais pas le framework Play donc je peux raconter des bêtises.
    Tu appelles aux contributions et pourtant tu ne documentes pas ton architecture, tes conventions de codage… Tu ne laisses rien qui puisse permettre de l'appréhender. Qu'à cela ne tienne, en lisant ton journal, on pourrait se dire que l'on a affaire à un adepte du "Clean code" (Je t'invite vraiment à lire http://www.amazon.fr/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) et que la lumière se fera au travers lui. Comme évoqué par quelqu'un plus haut, un des avantages à disposer de tests est que ceux-ci représentent un forme de spécifications et aident à mieux comprendre le code de production (le Sytem under Test). Tu n'en disposes pas. Soit …

    Mon habitude, personnellement dans ce genre de cas, pour comprendre de quoi ça parle, c'est de découvrir le domaine: les classes métiers.
    Si j'en juge par la description de Play! On a bien affaire un framework MVC (https://www.playframework.com/documentation/1.4.x/main#mvc). A priori, tu l'as adopté entre autre parce qu'il est bien documenté.
    Lorsque je me penche sur tes modèles voici ce que j'y découvre:
    https://github.com/hdsdi3g/MyDMAM/tree/master/app/models
    Des profils utilisateur, des ACLs.
    Que fait ton appli ? Je me renseigne donc sur ce qu'est un DMAM …
    Je m'attendais à trouver des entités "Média", "Utilisateurs" et bien d'autres … et il faut fouiller dans ce fourre-tout que tu as nommé "hd3gtv" pour trouver un semblant de classe métier comme ce qui aurait pu s'appeler "MetaData": https://github.com/hdsdi3g/MyDMAM/blob/master/app/hd3gtv/mydmam/metadata/MetadataCenter.java

    Si on se penche sur un de tes rares modèles https://github.com/hdsdi3g/MyDMAM/blob/master/app/models/UserProfile.java
    J'ai l'impression qu'on se trouve devant un problème d'affectation des responsabilités.
    Par exemple, que vient faire une méthode comme celle-ci là au milieu ?

    private static String cleanFileName(String value)
    A t'elle un sens métier ?
    Si elle n'est utile que pour d'autre méthodes de la classe pourquoi n'est elle pas privée ?
    Si tu la rends publique, c'est donc que tu considères que c'est la responsabilité d'autres classes de formater correctement l'email d'un profil utilisateur ?
    Sinon pourquoi ne pas l'isoler dans une classe utilitaire si tu considère qu'elle pourrait être réutilisable ?

    Je n'évoquerai pas ces contrôleurs à qui (me semble t'il) tu confies la tâche de persister certaines de tes données.

    Je ne te parlerai même pas d'injection des dépendances dont je ne trouve pas trace et qui hormis la testabilité t'apporte une vraie liberté pour "refactorer" ton code, comme tu l'évoques si bien en te permettant de changer d'implémentation de manière très souple.

    Encore une fois ne prends pas ombrage, mais cette profusion de méthodes statiques sont le signe d'une conception très procédurale (qu'un autre l'a appelé de l'an 2000).
    J'ai l'impression que tu n'as pas saisi certains des concepts fondamentaux du paradigme de programmation orientée objet.
    Je t'encourage à approfondir ces concepts et le plus important d'entre eux l'encapsulation qui veut que les données et les traitement et les données sont regroupées et qui confère un avantage sur le procédural. Avant de partir sur les design patterns du Gof comme tu l'évoquais, tu devrais peut-être faire un petit détour par les patterns de responsabilité, les fameux GRASP: https://en.wikipedia.org/wiki/GRASP_(object-oriented_design)

    Et pour finir je te reparlerai de ce "modèle de domaine anémique" qu'on rencontre parfois et que j'ai déjà évoqué plus haut.
    En général, on le reconnait à des entités qui ne disposent d'aucune logique métier et ne sont que des passe plat à base getter et setter.
    Le tien, je ne sais pas comment le qualifier à part que j'ai l'impression qu'il est inexistant ou dilué (encore une fois je peux me tromper). Mais tu n'es pas obligé de me croire.
    C'est pourquoi je t'invite une nouvelle fois à te pencher sur la documentation du framework que tu as adopté.
    Il y est fait une mention explicite au lien sur Martin Fowler que je t'ai pointé plus haut:
    https://www.playframework.com/documentation/1.2/model

    A common Java anti-pattern is to keep the model as a set of simple Java Beans and put the application logic back into a “service” layer which operates on the model objects.

    Martin fowler again has named this anti-pattern Anemic object model

    Si j'ai pris la peine de rédiger cette longue bafouille ce n'est pas pour te faire la leçon mais au contraire pour t'encourager à poursuivre ton cheminement dans une direction peut-être trop consensuelle pour toi mais qui permettrait vraiment d'ouvrir ton code aux contributions autrement que par la licence. Tu as déjà fait une belle partie du chemin seul, ne t'arrête pas au milieu du gué.

  • [^] # Re: Les tests

    Posté par  . En réponse au journal L’homme orchestre, partie 2 : écrire du code (en Java). Évalué à 4. Dernière modification le 23 mars 2016 à 22:39.

    Et pour appuyer tes dires, j'invite notre interlocuteur à lire ce grand classique:
    "12 raisons d'écrire des tests unitaires"
    http://www.onjava.com/pub/a/onjava/2003/04/02/javaxpckbk.html
    La documentation arrive en 3ème.

  • # Les tests

    Posté par  . En réponse au journal L’homme orchestre, partie 2 : écrire du code (en Java). Évalué à 9.

    Je n’écris pas de tests unitaires. Je comprends le principe, mais je n’y adhère pas. J’ai 0 tests,

    Prioriser le static, le plus possible. Si quelque chose est polyvalent pour tout le code, et n’a pas besoin d’être libéré/détruit alors il sera static.

    Eviter les get/set de vos variables privés (sauf dans le cas ou vous avez besoin de faire un check en entrée ou une transformation en sortie) et remplacez les get/set par un accès direct à la variable.

    Design pattern : c’est indispensable d’en connaître quelqu’uns ou au moins de connaître quelques principes.

    Avancer pas à pas sur de bonnes bases mais abstraire ce qu’il faut

    C’est notamment ça le travail « d’architecte logiciel » que je parlais plus tôt.

    Et un jour tu découvriras le TDD, tu feras en sorte d'écrire du code testable depuis le début, tu deviendras test infected et les notions d'emergent design tu embrasseras et le surdesign tu éviteras … naturellement

    Petit florilège de liens:
    Le singleton c'est le mal:
    http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons
    Les methodes static sont un antipattern:
    http://misko.hevery.com/2008/12/15/static-methods-are-death-to-testability/
    du bon usage du privé avec les tests:
    http://programmers.stackexchange.com/questions/100959/how-do-you-unit-test-private-methods

    Tu découvriras d'abord Powermock et tu comprendras que plus on dépend de framework plus on se rajoute de la dette technique.
    Et tu concevras ton code pour éviter ces pièges et tu atteindras le level "Classic TDDist" en utilisant les bons types de doublures dans ton code et en n'utilisant le petit frère Mockito qu'à bon escient:
    http://martinfowler.com/articles/mocksArentStubs.html
    http://coding-is-like-cooking.info/2013/04/the-london-school-of-test-driven-development/

    Puis tu accéderas au nirvana en t'imprégnant de l'emergent design:
    http://www.ibm.com/developerworks/library/j-eaed2/
    http://www.aniche.com.br/wp-content/uploads/2013/04/asq-tdd.pdf

    Puis dans le DDD (http://www.infoq.com/articles/ddd-in-practice) tu flotteras et l'anemic domain model (inhérent à cretain frameworks) tu exécreras (http://www.martinfowler.com/bliki/AnemicDomainModel.html)

    Bon cheminement
    Et pour conclure ton billet était intéressant

  • [^] # Re: IPFS à la rescousse

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 2.

    Vooouuus a-vez pefectly reason

  • # Quitte à partir dans tous les sens ...

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 1.

    Moi ce que ça m'évoque, c'est que ledit Azer, outre sa susceptibilité plus ou moins mal placée, serait bien inspiré de lire ceci:
    http://www.amazon.fr/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

  • [^] # Re: Pas de droit d'asile pour les lanceurs d'alerte

    Posté par  . En réponse au journal Sale temps pour les informaticiens lanceurs d'alerte. Évalué à -4.

    La Russie … No comment !

    Gerhard depardyou sort de ce corps !

  • [^] # Re: Lanceur d'alerte ?

    Posté par  . En réponse au journal Sale temps pour les informaticiens lanceurs d'alerte. Évalué à 1. Dernière modification le 12 mars 2016 à 12:29.

    Ceci n'est-il pas un argument (un de plus) en faveur de la liberté de choisir son assurance chômage ?

  • [^] # Re: aïe

    Posté par  . En réponse au journal Et concrètement, ça fait quoi, Devosi ?. Évalué à 7. Dernière modification le 11 mars 2016 à 19:51.

    Ma thérapie inclus des contributions écrites régulières dans les commentaires linuxfr.

    Un petit traitement pour la route:
    http://leconjugueur.lefigaro.fr/conjugaison/verbe/inclure.html

    Je ne vous compte pas de frais pour cette ordonnance ;-)

  • [^] # Re: Facile!

    Posté par  . En réponse au journal Microsoft va porter SQL Server sur Linux. Évalué à 1.

    Non !
    Sur DLFP:
    On torD le français à torT et à travers.
    On tourne en rond comme un torE
    et on se met des torRs de pression.

  • [^] # Re: Expérience enrichissante

    Posté par  . En réponse au journal Comment Github a ressuscité mon logiciel libre. Évalué à 3. Dernière modification le 08 mars 2016 à 00:22.

    Et dans l'idéal, il y a encore d'autres raisons: politesse, respect.

    Et ca marche dans les 2 sens. Des fois lorsque le chef de projet est un trouduc, il mériterait son petit fork.

    Exemple:
    Prenez "Git pour Windows". Tout le monde n'a pas envie de se coltiner le man de Vi pour éditer un commentaire de commit ou faire un rebase interactive.
    Il n'apparaitrait pas saugrenu pour attirer des newbies git sous Windows, de proposer autre chose qu'un notepad détaché et de pouvoir utiliser un éditeur de terminal compatible avec le cerveau un être humain correctement formaté ("Vi has two modes and you're in the wrong one" joke inside), par exemple "nano", qui a le bon goût d'être dispo sous MacOSX en plus.
    Et bien, quand on voit le prétexte foireux du dev qui ne veut pas juste rajouter un package à son mSys2 et qui fait la leçon, on se dit que des fois un petit fork hostile ça pourrait faire du bien à certains:
    https://github.com/git-for-windows/git/issues/587

    Parce que bon hé jusqu'à preuve du contraire, Vi ce n'est pas du git non plus.
    Pis tant qu'à faire si vous regardez sous le /bin local vous y retrouverez
    plein d'outils qui n'ont rien à voir avec git comme du curl par exemple.
    Et comme ni cygwin et mSys2 n'ont le bon goût de permettre d'installer des packages depuis rawgit, on se dit qu'on pourrait contourner par exemple avec un petit script bien comme il faut:
    https://github.com/transcode-open/apt-cyg
    Et là, manque de bol ca marche avec du wget ou du lynx mais pas du curl. Faut-y proposer une pull request à ce dernier pour voir s'il sera plus avenant ?
    Ou alors se coltiner tout à la mimine et gagner des XPs en postant son tip (un de plus sur Git) sous StackOveflow ?

    Ma bonne dame , un utilisateur de base, qui trouve que git ca ressemble à la grosse Bertha pour écraser une mouche, il a pas que ça à foutre.

    Mais après faut surtout pas aller raconter que windows est un citoyen de seconde zone pour git.

    Mais, je sais: même pas cap de forker

  • [^] # Re: Dans toute cette jungle...

    Posté par  . En réponse à la dépêche Et si JavaScript allait droit dans le mur ?. Évalué à 3. Dernière modification le 07 mars 2016 à 14:09.

    Pour les test E2E avec Angular, la recommandation est protractor qui permet de tester directement les directives d'Angular et surtout qui gère l'asynchrone. Il faut coupler ça avec Karma.

  • [^] # Re: Elm

    Posté par  . En réponse au journal Et si JavaScript allait droit dans le mur ?. Évalué à 2. Dernière modification le 04 mars 2016 à 17:55.

    Il m'avait semblé que c'était dans les pipes en touts cas:
    https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Language_bindings/PyXPCOM

    La belle époque de XulRunner.

    C'est pas mort tout ça ?

  • [^] # Re: Elm

    Posté par  . En réponse au journal Et si JavaScript allait droit dans le mur ?. Évalué à 3.

    Au hasard… pour rendre le truc aussi imbitable que du Perl avec des contextes dans tous les sens et des rustines avec tout les symboles cabalistiques de l'ASCCI pour que le parser puisse encore passer. A quand l'usage obligatoire de l'UTF8 pour disposer de l'alphabet du Mordor (http://freetengwar.sourceforge.net/keylayouts.html)

    Ce truc, tout comme le HTTP qui a fait des contorsions monumentales pour faire passer ce qui n'aurait jamais du exister pour un protocole en mode non connecté … et aboutir à réinventer la roue … J'ai nommé WebSocket. Que de temps perdu!

    Quand je pense que Firefox supportait du scripting python un temps. Nostalgie !!!

  • [^] # Re: Elm

    Posté par  . En réponse au journal Et si JavaScript allait droit dans le mur ?. Évalué à 5.

    aussi je te renvoie vers la langage dans lequel les monades sont reines.

    J'ai lu tout le thread et c'est une mine d'or, mais en lisant certains posts, j'ai un peu l'impression que certains veulent nous montrer leurs mgonades

    Ok => []

  • [^] # Re: 1GB RAM

    Posté par  . En réponse au journal Raspberry Pi 3 bientôt disponible ? Est-il celui que vous attendiez ?. Évalué à 10.

    le chant du signe

    Oui c'est le cygne de la fin

  • [^] # Re: Permis de travail

    Posté par  . En réponse au journal Projet de loi français El Khomri. Évalué à 6. Dernière modification le 19 février 2016 à 17:14.

    Voilà Zenitram dans toute sa splendeur.

    Cet art d'assimiler les idées des autres à leur propos et par effet de bord à leur personne, montrant son mépris, tout en veillant de à ne pas franchir la limite de l'attaque hominem.

    Car tout un chacun aura compris:
    Tes idées sont de la merde, donc tu es de la merde. Mais comme je ne l'ai pas dit, viens prouver que c'est ce que je pense.
    A coup de mots bien clairsemés;

    Petit florilègegrep:

    pomper ce qu'ils peuvent
    le populisme dans toute se splendeur.
    populisme mélenchonsite
    un combo xénophobe raciste homophobe capitalophobe considérant que le blanc hétéro doit être supérieur au reste "comme avant"?
    c'est exactement le genre de réaction bourrin
    _
    On note la manière dont les idées des autres sont percues.

    Je vous laisse le soin d'éplucher les autres discussions pour bien comprendre la rhétorique du sieur

  • [^] # Re: Merci la gauche

    Posté par  . En réponse au journal Projet de loi français El Khomri. Évalué à 5.

    Je pense que sa phrase voulait plutôt signifier:

    ressasse les poncifs vis à vis de l’extrême gauche

  • [^] # Re: Merci la gauche

    Posté par  . En réponse au journal Projet de loi français El Khomri. Évalué à 3.

    Tu voulais sans doute répondre sur commentaire précédent ? Ou peut-être le second du fil, non ?
    Ou alors ta perception d'un ton méprisant passe à travers un prisme, peut-être ?

  • [^] # Re: Permis de travail

    Posté par  . En réponse au journal Projet de loi français El Khomri. Évalué à 3.

    Vu que tu lis toujours les trucs en travers, je suppose que tu n'as pas pris le temps de cliquer sur le "petit" lien qui illustrait ses propos.

    Peu importe !
    Ce qui me fait réagir, c'est ça:

    Ce qui est fout, c'est toute cette haine de l'Europe, quand on a des millions de personnes qui ne rêvent que d'une chose, c'est de pouvoir y rentrer

    Hormis ta petite entorse à l'orthographe qui s'est pourtant plus qu'assouplie, j'ai juste envie de te répondre ça :
    #Brexit

    Tu verras, c'est instructif sur l'appréciation par des millions de personnes vis à vis de l'Europe aujourd'hui et qui ne s'enfuient pas d'un pays en guerre ou en crise

    Pas que je les cautionne hein … mais te connaissant tu vas réussir à me démontrer que si, je ne m'inquiètes pas.

  • [^] # Re: Permis de travail

    Posté par  . En réponse au journal Projet de loi français El Khomri. Évalué à 4.

    Oui enfin pour un gars qui critique l'aliénation par le travail, avoir un président qui s'appelle "Cage", ça a un petit coté hérétique

  • [^] # Re: Incitation au troll

    Posté par  . En réponse au journal Projet de loi français El Khomri. Évalué à 10. Dernière modification le 18 février 2016 à 23:49.

    Perso, ce que je trouve vraiment bizarre, c'est de faire "ça" à 15 mois des présidentielles.
    - Ca merde, ça sera la faute de Hollande.
    - Ca marche, le successeur en tirera les lauriers.
    Dans tous les cas, le gouvernement actuel perd. en plus de se faire tiré dessus (à raison) par son aile gauche pour l'élection. En gestion quand on est dans la majorité, ils sont vraiment pas au point. C'était à faire il y a 3

    Au contraire, c'est machiavélique.
    La droite est dépassée par son extrême et ne pourra pas chasser sur ses terres et il pourra lui couper l'herbe au centre.
    Quand à l'extrême gauche, elle restera toujours en marge

  • # Coincidence

    Posté par  . En réponse au journal Un service ouvert ?. Évalué à 3. Dernière modification le 18 février 2016 à 00:38.

    Amusant que tu postes ce journal après ta réponse à une remarque:
    http://linuxfr.org/news/weboob-une-version-1-1-pour-son-sixieme-anniversaire#comment-1644006.

    Je permets de corriger une erreur de grammaire qui ne semble pas fortuite puisque tu l'as commise 2 fois

    je ne doute pas que vous saur~~ais~~ez me le faire savoir
    et que vous aur~~ait~~ez pleins de remarques

    Sinon sur le fond:
    Pour les données, il y a un aspect que ton analyse ne couvre pas, c'est le crowdsourcing.
    Récupérer tes données n'enlèvera pas le fait qu'une partie de la valeur de celles-ci peut aussi provenir du fait qu'elles sont enrichies par le croisement de tes données avec celle des autres (exemple suggestions de tag sur delicious).
    L'autre aspect le relie aux logiciels libre car l'ouverture des données doit venir en sus.
    Un service ouvert outre tes données se doit aussi de fournir l'infrastructure logicielle qui permet d'héberger tes données sous une forme "libre" (type AGPL par exemple)
    C'est le niveau 4

    Selon "ma" conception (et elle n'engage que moi), un service ouvert idéal, le niveau 5, serait un service qui peut être distribué (données réparties ou répliquées) et hébergé sur plateforme libre
    3 composantes donc:
    Données accessibles + LL + collaboratif

    Yacy en serait un bon exemple:
    http://yacy.net/fr/
    Ceci représente une vraie liberté:
    Celle de ne pas dépendre d'un fournisseur de service unique

    Ok, vu le succès rencontré, l'exemple n'est peut-être pas le bon mais l'idée est bien là.

  • # Pub déguisée

    Posté par  . En réponse à la dépêche Weboob : une version 1.1 pour son sixième anniversaire. Évalué à -10.

    Y'aurait moyen de ne pas rendre les liens vers des sites fermés non cliquables (voir de ne pas les citer).
    Sinon ceci s'apparente à du publi-reportage et devrait donc figurer dans les journaux.
    Ou alors toutes les boîtes qui utilisent git ont le droit de faire leur pub ici ?

    Merci !

  • [^] # Re: ack, Unicode

    Posté par  . En réponse à la dépêche Travailler avec des expressions rationnelles. Évalué à 4.

    Merci !
    J'avais presque oublié ce langage et en relisant ton post, auquel je n'ai presque rien compris …mais qui m'inspire un total respect, je me suis souvenu:
    http://www.fastcompany.com/3026446/the-fall-of-perl-the-webs-most-promising-language

  • [^] # Re: Outils de coloration?

    Posté par  . En réponse à la dépêche Travailler avec des expressions rationnelles. Évalué à 2.

    Titre de l'image

    Atom, mieux que que tous les sites online, avec le surlignage et complètement interactif.
    Bon ça ne supporte que les regex JS mais c'est sudffisant pour las usages courants et ok ça n'affiche pas les groups.

    Mais quand même !