Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1507 connectés 

 

Sujet(s) à lire :
    - Who's who@Programmation
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  22625  22626  22627  ..  27192  27193  27194  27195  27196  27197
Auteur Sujet :

[blabla@olympe] Le topic du modo, dieu de la fibre et du monde

n°2319990
XaTriX
Posté le 31-08-2018 à 19:35:19  profilanswer
 

Reprise du message précédent :
Pourquoi flipper de la recherche si c'est pour avoir un quotidien plus sympa ? Ca devrait être motivant.  
Rien ne t'empêche de prospecter tranquillement, ou alors tu veux faire une grosse session pour mettre en concurrence les boîtes et faire monter le tarot' ?
 
XaT


---------------
Proxytaf ? non rien
mood
Publicité
Posté le 31-08-2018 à 19:35:19  profilanswer
 

n°2319991
gelatine_v​elue
Posté le 31-08-2018 à 19:53:50  profilanswer
 

___alt a écrit :


Il est parfois parfaitement justifiable d'avoir un switch à 25 branches.
Par exemple on avait une application qui gérait l'intégration de fichiers de données, on avait une implémentation pour chaque format et le dispatch se faisait en gros dans un switch.

 

C'est le genre de cas où dans Sonar, tu fais "Mark as resolved - Won't fix".

 

Amha Sonar a raison. Un switch a 25 branches, c'est 25 possibilites d'oublier un break et de fucker ton code, et un test unitaire @thelol de ta classe avec 25 cas a traiter, sans compter le default.
Dans mon projet on traite ce genre de probleme avec un pattern whiteboard, ou on a 25 classes qui s'enregistrent aupres d'une autre, ce qui permet de decouper propement les TU, et de pas avoir de methodes de 300 lignes de long. Si on doit ajouter un cas ou en supprimer un on cree/supprime juste une classe, sans impacter le reste du code deja teste.

 

Clean Code demande de les eviter car:
- il est difficile d'avoir un switch qui ne fait qu'une chose (SRP)
- ils sont facilement plus longs que ce qu'une fonction devrait etre
- lis violent facilement le open-closed principle

 

Ils recommandent de le cacher au fond d'une factory maniere de le cacher le plus possible.

Message cité 3 fois
Message édité par gelatine_velue le 31-08-2018 à 20:01:04
n°2319992
masklinn
í dag viðrar vel til loftárása
Posté le 31-08-2018 à 20:07:54  profilanswer
 

XaTriX a écrit :

Pourquoi flipper de la recherche si c'est pour avoir un quotidien plus sympa ? Ca devrait être motivant.  
Rien ne t'empêche de prospecter tranquillement, ou alors tu veux faire une grosse session pour mettre en concurrence les boîtes et faire monter le tarot' ?
 
XaT


Il y a l'obstacle qu'il faut savoir comment prospecter (où/quoi aller chercher) surtout s'il est dans sa boite depuis une chiée d'années, et le bonus que s'être tapé des années de missions de merde en cobol java 1.3 s'pas super vendeur.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2319993
nraynaud
lol
Posté le 31-08-2018 à 20:11:14  profilanswer
 

dites, imaginons que j'aie 500-1000 €/$ à perdre pour essayer de trouver un contrat qui me corresponde mieux (et probablement aux US), je vais les claquer où ?
Je pense que j'ai un pb avec mon linkedIn et j'ai besoin d'un CV, et d'un discours.


---------------
trainoo.com, c'est fini
n°2319994
R3g
fonctionnaire certifié ITIL
Posté le 31-08-2018 à 20:18:34  profilanswer
 

gatsu35 a écrit :

Le seul gros défaut que je trouverai à Linky, c'est qu'avant les gens jouaient beaucoup sur les défauts des anciens compteurs et tirait plus de jus que leur permettait leur offre, genre ils avaient du 6KVA et le compteur sautait à 9KVA, maintenant que le linky est là, ben ils ont gardé leur 6KVA, mais quand ils allument leurs plaquent et leur chauffe-eau et lave-linge, ben ça fait sauter le compteur.
 
Mais derrière ça les boulets sont allés plus loin et on inventé des tonnes de conneries :  
- Ondes tueuses de cerveau
- Analyse de la vie privée et des habitudes (bon c'est pas faux)
- ET tout un tas d'autres conneries


Le gris défaut de Linky c’est de coûter hyper cher, d’être financé un fine en grande partie par les clients, pour un service rendu proche du néant.


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2319995
flo850
moi je
Posté le 31-08-2018 à 20:44:23  profilanswer
 

gelatine_velue a écrit :

 

Amha Sonar a raison. Un switch a 25 branches, c'est 25 possibilites d'oublier un break et de fucker ton code, et un test unitaire @thelol de ta classe avec 25 cas a traiter, sans compter le default.
Dans mon projet on traite ce genre de probleme avec un pattern whiteboard, ou on a 25 classes qui s'enregistrent aupres d'une autre, ce qui permet de decouper propement les TU, et de pas avoir de methodes de 300 lignes de long. Si on doit ajouter un cas ou en supprimer un on cree/supprime juste une classe, sans impacter le reste du code deja teste.

 

Clean Code demande de les eviter car:
- il est difficile d'avoir un switch qui ne fait qu'une chose (SRP)
- ils sont facilement plus longs que ce qu'une fonction devrait etre
- lis violent facilement le open-closed principle

 

Ils recommandent de le cacher au fond d'une factory maniere de le cacher le plus possible.


25 classes qui au final ne servent tous à instancier le ( ou les) mêmes objets ?

 

J'ai du mal à voir le gain en lisibilité.
Exception à l'exception : les parsers de fichiers sont de gros trucs dégueulasses qu'on veut empaqueter dans une classe

Message cité 1 fois
Message édité par flo850 le 31-08-2018 à 20:47:02

---------------

n°2319996
flo850
moi je
Posté le 31-08-2018 à 20:47:29  profilanswer
 

nraynaud a écrit :

dites, imaginons que j'aie 500-1000 €/$ à perdre pour essayer de trouver un contrat qui me corresponde mieux (et probablement aux US), je vais les claquer où ?
Je pense que j'ai un pb avec mon linkedIn et j'ai besoin d'un CV, et d'un discours.


missionner un casseur de contrat / chasseur de tête ?


---------------

n°2319997
uriel
blood pt.2
Posté le 31-08-2018 à 21:58:25  profilanswer
 

nraynaud a écrit :

dites, imaginons que j'aie 500-1000 €/$ à perdre pour essayer de trouver un contrat qui me corresponde mieux (et probablement aux US), je vais les claquer où ?
Je pense que j'ai un pb avec mon linkedIn et j'ai besoin d'un CV, et d'un discours.


 
tu cherches quoi? un poste a temps plein? du contractuel freelance?
 dans mon domaine linkedIn est roi quand meme, je sais pas si c'est representatif du marche US mais je ferais un effort la dessus.
 
Les recruteurs sont pas super. Autrement un truc qui marche bien ici ce sont les groupes https://www.meetup.com/ (ou eventbrite)


---------------
IVG en france
n°2319998
nraynaud
lol
Posté le 31-08-2018 à 22:28:20  profilanswer
 

uriel a écrit :


 
tu cherches quoi? un poste a temps plein? du contractuel freelance?
 dans mon domaine linkedIn est roi quand meme, je sais pas si c'est representatif du marche US mais je ferais un effort la dessus.
 
Les recruteurs sont pas super. Autrement un truc qui marche bien ici ce sont les groupes https://www.meetup.com/ (ou eventbrite)


des contrats freelance, genre prototypage ou appoint, probablement des petites boites, peut-être des trucs liés aux CAD/CAM ou robotique, genre y'a des domaines techniques qui ont des problème assez particuliers qui demandent du dev spécifique (y'a un type qui a un générateur de cabinets de cuisine par ex. un autre qui fait des dales acoustiques pour les plafonds).
 


---------------
trainoo.com, c'est fini
n°2319999
gelatine_v​elue
Posté le 31-08-2018 à 23:51:35  profilanswer
 

flo850 a écrit :


25 classes qui au final ne servent tous à instancier le ( ou les) mêmes objets ?  
 
J'ai du mal à voir le gain en lisibilité.  
Exception à l'exception : les parsers de fichiers sont de gros trucs dégueulasses qu'on veut empaqueter dans une classe


 
Si t'as que quelques objets, tu n'as que quelques classes a declarer, une par type.
Les parsers ont beau se preter a etre des trucs moches, je vois un gain evident a en faire des classes bien decoupees, car de toute facon tu vas vouloir le tester et le maintenir.  
J'ai justement passe une partie de ma journee avec un dev junior qui m'avait parse du json a coup de methodes longues comme le bras avec des ifs dans tous les sens, et lui ai montre comment faire ca proprement. Au final il y a moins de code, plus lisible, testable, comprehensible par par la personne qui va relire la MR.  
Je pense qu'il n'y a jamais de bonne raison de faire beaucoup de code degueulasse dans une seule classe. Si c'est du code que tu veux pas voir il vaut mieux se poser la question de comment le transformer en code que tu veux voir.

mood
Publicité
Posté le 31-08-2018 à 23:51:35  profilanswer
 

n°2320000
nraynaud
lol
Posté le 31-08-2018 à 23:59:43  profilanswer
 

gelatine_velue a écrit :

Si t'as que quelques objets, tu n'as que quelques classes a declarer, une par type.
Les parsers ont beau se preter a etre des trucs moches, je vois un gain evident a en faire des classes bien decoupees, car de toute facon tu vas vouloir le tester et le maintenir.


Je pense au contraire qu'on peut un peu développer des parser n'importe comment, parce que justement ils sont presque toujours faciles à tester.
 
Alors qu'un bout de code qui fait la glue avec 6 systèmes externes, c'est un peu la merde, il vaut mieux pouvoir le lire, parce qu'on pourra pas trop le titiller par des tests.


---------------
trainoo.com, c'est fini
n°2320001
Jubijub
Parce que je le VD bien
Posté le 01-09-2018 à 00:02:53  profilanswer
 

Dion a écrit :


Les intras c’est souvent un peu moins bien mais je suis très content de mon qc35 (mais j’écoute pas les nocturnales de Chopin en flac dans le métro)


Ça ira, c'est pour écouter du Khan Academy (du je veux une chance de passer côté Engagement, je vais devoir me sortir les doigts sur algorithme / code, et au je veux monter une compétence data propre il me faut Algèbre / stats

 
nraynaud a écrit :


Je crois qu'il a pas besoin de conseils techniques, mais du sentiment d'être écouté.

 

Et surtout quand JE pose des questions techniques qui réellement appellent des réponses, j'entends surtout des criquets. Donc je ne crois pas que ces remarques sont là réellement pour aider harko, peut-être un peu aussi pour ceux qui les fonts.


En route honnêteté, je doute que beaucoup de gens comprennent tes questions, qui sont hyper pointues et souvent a cheval sur plusieurs domaines d'intervention certains que tu dois être le seul ici a maîtriser.
Ça rend ton profil impressionnant, du coup.

 
nraynaud a écrit :

dites, imaginons que j'aie 500-1000 €/$ à perdre pour essayer de trouver un contrat qui me corresponde mieux (et probablement aux US), je vais les claquer où ?
Je pense que j'ai un pb avec mon linkedIn et j'ai besoin d'un CV, et d'un discours.


Je dirais comme Uriel :
- cherche qui est susceptible d'avoir besoin de ce que tu veux offrir
- cherche où sont ces boîtes, et où sont leurs annonces d'emplois
- cherche si ils ont des asso / clubs / conférences, et vas-y

 


---------------
Jubi Photos : Flickr - 500px
n°2320002
nraynaud
lol
Posté le 01-09-2018 à 00:06:29  profilanswer
 

quelqu'un sait comment je peux trouver sur quel media le bios a booté depuis un linux?
 
Je suis dans un installeur, donc de l'eau a coulé sous les ponts entre le boot et mon OS actuel. Je soupçonne qu'il y a un truc dans /proc .


---------------
trainoo.com, c'est fini
n°2320003
nraynaud
lol
Posté le 01-09-2018 à 00:08:23  profilanswer
 

Jubijub a écrit :


Je dirais comme Uriel :  
- cherche qui est susceptible d'avoir besoin de ce que tu veux offrir
- cherche où sont ces boîtes, et où sont leurs annonces d'emplois
- cherche si ils ont des asso / clubs / conférences, et vas-y


Je veux payer quelqu'un pour discuter et qu'il trouve les lieux et fasse mon CV.


---------------
trainoo.com, c'est fini
n°2320004
gelatine_v​elue
Posté le 01-09-2018 à 00:11:26  profilanswer
 

nraynaud a écrit :

quelqu'un sait comment je peux trouver sur quel media le bios a booté depuis un linux?

 

Je suis dans un installeur, donc de l'eau a coulé sous les ponts entre le boot et mon OS actuel. Je soupçonne qu'il y a un truc dans /proc .

 

awk '$2 == "/"' /proc/self/mounts ?

Message cité 1 fois
Message édité par gelatine_velue le 01-09-2018 à 00:12:17
n°2320005
nraynaud
lol
Posté le 01-09-2018 à 00:14:31  profilanswer
 

gelatine_velue a écrit :


 
awk '$2 == "/"' /proc/self/mounts ?


"rootfs" ? comment je fais pour savoir si c'est une image qui vient d'un CD que je dois éjecter ?


---------------
trainoo.com, c'est fini
n°2320006
nraynaud
lol
Posté le 01-09-2018 à 00:15:27  profilanswer
 

J'ai oublié de préciser, je veux savoir si j'ai booté originellement sur un CD pour l'éjecter.


---------------
trainoo.com, c'est fini
n°2320007
gelatine_v​elue
Posté le 01-09-2018 à 00:19:59  profilanswer
 

J'avais pas compris ton besoin dsl. Pas plus d'idee que ca.


Message édité par gelatine_velue le 01-09-2018 à 00:20:09
n°2320008
Jubijub
Parce que je le VD bien
Posté le 01-09-2018 à 00:28:12  profilanswer
 

nraynaud a écrit :


Je veux payer quelqu'un pour discuter et qu'il trouve les lieux et fasse mon CV.


Pour le CV tu peux trouver du conseil en carrière / bilan de compétence. En général c'est un pakage interview / bilan de compétence / réécriture du CV, avec parfois coaching pour passer des entretiens.

 

Pour la recherche des boîtes / lieux, je te renvois vers "the 4h workweek". Je doute que tu trouves un service personnalisé, donc tu peux briefer un indien pas con qui te feras ça bien.

 

Après je pense que tu peux gagner a initier la recherche toi même pour te faire une idée, et améliorer la qualité de ton briefing a ton outsourcing.


---------------
Jubi Photos : Flickr - 500px
n°2320009
nraynaud
lol
Posté le 01-09-2018 à 02:00:02  profilanswer
 

https://youtu.be/cB8GNQuyMPc?t=10m2s
[:pingouino] c'est pas gagné si je veux un master en mécanique [:pingouino]


---------------
trainoo.com, c'est fini
n°2320010
___alt
Posté le 01-09-2018 à 02:36:07  profilanswer
 

gelatine_velue a écrit :


 
Amha Sonar a raison. Un switch a 25 branches, c'est 25 possibilites d'oublier un break et de fucker ton code, et un test unitaire @thelol de ta classe avec 25 cas a traiter, sans compter le default.
Dans mon projet on traite ce genre de probleme avec un pattern whiteboard, ou on a 25 classes qui s'enregistrent aupres d'une autre, ce qui permet de decouper propement les TU, et de pas avoir de methodes de 300 lignes de long. Si on doit ajouter un cas ou en supprimer un on cree/supprime juste une classe, sans impacter le reste du code deja teste.
 
Clean Code demande de les eviter car:
- il est difficile d'avoir un switch qui ne fait qu'une chose (SRP)
- ils sont facilement plus longs que ce qu'une fonction devrait etre
- lis violent facilement le open-closed principle
 
Ils recommandent de le cacher au fond d'une factory maniere de le cacher le plus possible.


 
 
La gueule du switch ça va être un truc de ce genre :
 

Code :
  1. switch (format) {
  2.    case "XFF1":
  3.        return new Xff1Parser(content);
  4.    case "XFF2":
  5.        return new Xff2Parser(content);
  6.  
  7. // ...
  8.  
  9. }


 
La probabilité d'oublier un break est nulle vu qu'il n'y a pas de break. Tu ne fais évidemment pas de test unitaire sur ce genre de code, tu le couvres par un test plus large (dans mon exemple, tu fais le parsing d'un fichier qui va englober la détection du format). A un moment donné dans ton code tu vas devoir mettre en place un mécanisme qui va associer chaque format au code qui le gère. Si tu as de nombreux formats, tu vas pas y couper.
 
Tu peux effectivement planquer ça avec des mécanismes plus sophistiqués et faire un truc dans le genre :  
 

Code :
  1. Formats formats = new Formats();
  2. format.registerParser("XFF1", Xff1Parser::new);
  3. format.registerParser("XFF2", Xff2Parser::new);
  4. // ...


 
Mais honnêtement à ce stade, la valeur ajoutée par rapport à un mapping explicite ne saute pas aux yeux et la navigabilité n'est pas toujours idéale.
Comme tu le soulignes, Clean Code recommande de les éviter, pas de ne jamais s'en servir.


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2320011
gfive
Posté le 01-09-2018 à 02:42:02  profilanswer
 

___alt a écrit :

 


La gueule du switch ça va être un truc de ce genre :

 
Code :
  1. switch (format) {
  2. case "XFF1":
  3. return new Xff1Parser(content);
  4. case "XFF2":
  5. return new Xff2Parser(content);
  6.  
  7. // ...
  8.  
  9. }

 

La probabilité d'oublier un break est nulle vu qu'il n'y a pas de break. Tu ne fais évidemment pas de test unitaire sur ce genre de code, tu le couvres par un test plus large (dans mon exemple, tu fais le parsing d'un fichier qui va englober la détection du format). A un moment donné dans ton code tu vas devoir mettre en place un mécanisme qui va associer chaque format au code qui le gère. Si tu as de nombreux formats, tu vas pas y couper.

 

Tu peux effectivement planquer ça avec des mécanismes plus sophistiqués et faire un truc dans le genre :

 
Code :
  1. Formats formats = new Formats();
  2. format.registerParser("XFF1", Xff1Parser::new);
  3. format.registerParser("XFF2", Xff2Parser::new);
  4. // ...

 

Mais honnêtement à ce stade, la valeur ajoutée par rapport à un mapping explicite ne saute pas aux yeux et la navigabilité n'est pas toujours idéale.
Comme tu le soulignes, Clean Code recommande de les éviter, pas de ne jamais s'en servir.


Dans ce genre de cas je fais une enum dont chaque entrée contient (ou sait construire) l'instance de parser qui va bien.

 

Et le code devient :

 

return Enum.valueOf(format).getParser(content);

 


Sinon, pour contenter Harko, tu peux aussi déclarer chaque parser comme un bean Spring avec un qualifier :o


Message édité par gfive le 01-09-2018 à 02:46:07

---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2320012
uriel
blood pt.2
Posté le 01-09-2018 à 02:56:32  profilanswer
 

nraynaud a écrit :

https://youtu.be/cB8GNQuyMPc?t=10m2s
[:pingouino] c'est pas gagné si je veux un master en mécanique [:pingouino]


As tu considère une boite/ université ou il y a des besoins en ingénierie custom? (On a un groupe dédié à ça chez nous)
 Le besoin en diplôme est plus bas et tu peux apprendre sur place en plus de construire ton réseau


---------------
IVG en france
n°2320013
nraynaud
lol
Posté le 01-09-2018 à 03:11:26  profilanswer
 

uriel a écrit :


As tu considère une boite/ université ou il y a des besoins en ingénierie custom? (On a un groupe dédié à ça chez nous)
 Le besoin en diplôme est plus bas et tu peux apprendre sur place en plus de construire ton réseau


ouais. J'y songe
 
Apparemment, je peux aussi faire des études gratos dans l'université de ma femme, mais je dois payer les impôts sur les frais d'inscription que j'ai pas payés [:pingouino]


---------------
trainoo.com, c'est fini
n°2320015
nraynaud
lol
Posté le 01-09-2018 à 09:53:30  profilanswer
 

Dites, c’est quelle année l’année blanche des impôts?
 
Je viens de réaliser que ça pourrait me sauver le cul.


---------------
trainoo.com, c'est fini
n°2320016
R3g
fonctionnaire certifié ITIL
Posté le 01-09-2018 à 09:56:32  profilanswer
 

nraynaud a écrit :

Dites, c’est quelle année l’année blanche des impôts?
 
Je viens de réaliser que ça pourrait me sauver le cul.


C’est cette année. Mais tu devras quand même déclarer tes revenus, donc en cas de revenu exceptionnel le fisc saura retrouver ton cul.


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2320017
gelatine_v​elue
Posté le 01-09-2018 à 10:08:04  profilanswer
 

___alt a écrit :


 
 
La gueule du switch ça va être un truc de ce genre :
...
Comme tu le soulignes, Clean Code recommande de les éviter, pas de ne jamais s'en servir.


 
Autre chose qui me gene dans ce code c'est qu'il sert a rien: il dit juste "ce tag doit etre parse par ce parser". Or cette information est deja portee par les differents parsers. J'y vois de la duplication d'information, en plus des autres problemes souleves par clean code. Vu qu'une alternative est simple a coder, faut pas s'en passer amha (clean code dit d'eviter ce code, et en la presence d'alternatives...).

n°2320018
flo850
moi je
Posté le 01-09-2018 à 11:27:16  profilanswer
 

je pense qu'on est dans le détail et la préférence perso, je suis plutôt pour l'approche d'alt
Je n'aime pas trop ajouter des couches d'abstractions, sauf si elles apportent quelque chose.
 
Le but est de trouver un équilibre entre la simplicité de la maintenance pour ceux qui connaissent le code et la complexité du modèle mental que doit se construire un nouvel arrivant pour débugguer.  
 
Par exemple pour continuer dans le cas du parser : " hey newbie004, le fichier keduku.xml est mal parser sur la version xxx , probablement pas le bon parser appelé. Est ce que tu peux y jeter un oeil ?"
 


---------------

n°2320019
ratibus
Posté le 01-09-2018 à 13:15:31  profilanswer
 

Nray > j'avais vu qu'aux US il y avait des agents de dev comme pour les sportifs pro. Je sais pas combien ils prennent par contre :d

n°2320020
Jubijub
Parce que je le VD bien
Posté le 01-09-2018 à 13:28:57  profilanswer
 

gelatine_velue a écrit :

 

Autre chose qui me gene dans ce code c'est qu'il sert a rien: il dit juste "ce tag doit etre parse par ce parser". Or cette information est deja portee par les differents parsers. J'y vois de la duplication d'information, en plus des autres problemes souleves par clean code. Vu qu'une alternative est simple a coder, faut pas s'en passer amha (clean code dit d'eviter ce code, et en la presence d'alternatives...).


Mais du coup comment tu sais quel parser instancier? Tu dois bien coder quelque part une logique de mapping du format X sur le parser X ?
En python je ferais un dict je pense, mappant le format au module de parser


---------------
Jubi Photos : Flickr - 500px
n°2320021
flo850
moi je
Posté le 01-09-2018 à 13:42:13  profilanswer
 

je suis en train de retester firefox après des années de chrome
ça marche incroyablement bien  
 
(chrome à abusé en m'annonçant qu'il manquait de ressources en étant tout seul avec 8Go de ram)


---------------

n°2320023
DDT
Few understand
Posté le 01-09-2018 à 13:46:46  profilanswer
 

nraynaud a écrit :


Je veux payer quelqu'un pour discuter et qu'il trouve les lieux et fasse mon CV.


Bah ça s'appelle un recruteur non? Pas besoin de le payer vu qu'il touchera au moins 30k s'il te place.
 
En Europe même s'il y a beaucoup de déchet j'étais tombé sur des boîtes super sérieuses aussi.
Un recruteur à Londres avait récrit mon CV, m'a fait avoir des entretiens avec des boîtes que j'imaginais hors de portée, ... il m'avait même payé une bière sur place. :D  
 
Aux US y a tout un business autour du recrutement: triplebyte, hired.com ... sans compter tous les services de préparation aux entretiens.
Faudrait trouver un truc moins centré autour de la silicon valley, mais ça doit exister j'imagine?


---------------
click clack clunka thunk
n°2320024
___alt
Posté le 01-09-2018 à 14:02:17  profilanswer
 

Jubijub a écrit :


Mais du coup comment tu sais quel parser instancier? Tu dois bien coder quelque part une logique de mapping du format X sur le parser X ?
En python je ferais un dict je pense, mappant le format au module de parser


 
Si les parser sont préinstanciés c'est assez simple, tu les instancies tous dans ta factory et tu leur fais exposer une méthode qui te dit quel format de fichier ils acceptent.
Tu itères sur tous tes parsers et tu renvoies le premier qui accepte.
 
Si tu dois instancier un nouveau parser à chaque fois c'est moins simple.


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2320025
el muchach​o
Comfortably Numb
Posté le 01-09-2018 à 14:11:34  profilanswer
 
n°2320026
___alt
Posté le 01-09-2018 à 14:11:34  profilanswer
 

flo850 a écrit :

je suis en train de retester firefox après des années de chrome
ça marche incroyablement bien  
 
(chrome à abusé en m'annonçant qu'il manquait de ressources en étant tout seul avec 8Go de ram)


 
Depuis Firefox Quantum, niveau performances il y a une vrai différence;


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2320027
uriel
blood pt.2
Posté le 01-09-2018 à 14:19:05  profilanswer
 

nraynaud a écrit :


ouais. J'y songe
 
Apparemment, je peux aussi faire des études gratos dans l'université de ma femme, mais je dois payer les impôts sur les frais d'inscription que j'ai pas payés [:pingouino]


 
Autrement tu as https://twitter.com/sambjoyce/statu [...] 44096?s=21 mais je suis pas sûr que ta femme approuve


---------------
IVG en france
n°2320028
flo850
moi je
Posté le 01-09-2018 à 14:33:18  profilanswer
 

bientôt la fin des heures d'hiver et d'été en europe, on va encore se marrer avec les date


---------------

n°2320029
gelatine_v​elue
Posté le 01-09-2018 à 15:46:52  profilanswer
 


Jubijub a écrit :


Mais du coup comment tu sais quel parser instancier? Tu dois bien coder quelque part une logique de mapping du format X sur le parser X ?
En python je ferais un dict je pense, mappant le format au module de parser


 

___alt a écrit :


 
Si les parser sont préinstanciés c'est assez simple, tu les instancies tous dans ta factory et tu leur fais exposer une méthode qui te dit quel format de fichier ils acceptent.
Tu itères sur tous tes parsers et tu renvoies le premier qui accepte.
 
Si tu dois instancier un nouveau parser à chaque fois c'est moins simple.


 
Voila , comme a dit alt, ou alors en utilisant l'IoC: chaque parser est un service avec un attribut "name", ton framework va les instancier pour toi, et tu n'auras plus qu'a lui demander le parser etendant l'interface MyParser avec le bon "name".

n°2320030
masklinn
í dag viðrar vel til loftárása
Posté le 01-09-2018 à 15:50:30  profilanswer
 

gelatine_velue a écrit :

Voila , comme a dit alt


Ce qui revient au même qu'un switch avec des objets en plus.

gelatine_velue a écrit :

ou alors en utilisant l'IoC: chaque parser est un service avec un attribut "name", ton framework va les instancier pour toi, et tu n'auras plus qu'a lui demander le parser etendant l'interface MyParser avec le bon "name".


Et on est passé d'un switch qui énumère trivialement nos possibilités à un framework IoC et toute la config qui va avec et devoir parcourir la moitié de la base de code pour savoir où les trucs sont branchés.

Message cité 1 fois
Message édité par masklinn le 01-09-2018 à 15:52:44

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2320031
gelatine_v​elue
Posté le 01-09-2018 à 16:16:26  profilanswer
 

masklinn a écrit :


Et on est passé d'un switch qui énumère trivialement nos possibilités à un framework IoC et toute la config qui va avec et devoir parcourir la moitié de la base de code pour savoir où les trucs sont branchés.


 
Ca c'est de la grosse mauvaise foi. Ton framework IoC je partais evidemment du principe que t'es deja dedans, et t'as aucune conf de plus a faire, c'est un comportement de base quon reutilise.
Quand a la lisibilite voici le pseudoi code de la factory de parser:
 

Code :
  1. @Reference(cardinality = ReferenceCardinality.MULTIPLE)
  2. public  void registerParser (Parser p) {
  3. this.parserMap.put(p.getTagName(), p);
  4. }
  5. public Parser getParser (String tagName)  {
  6.    return this.parserMap.get(tagName);
  7. }


 
Si en voyant ce code ton IDE est pas capable de te fournir les sous-classes de Parser et que t'es oblige de "parcourir la moitié de la base de code" , y'a un souci.

n°2320032
flo850
moi je
Posté le 01-09-2018 à 16:50:47  profilanswer
 

Mais quel gain ? Un Switch propre, dans ce cas réponds a la même question sans avoir besoin que ton idée ne t'aide a comprendre ce qu'il se passe

 

Les guidelines c'est bien, mais il ne faut pas hésiter à les questionner.

 


---------------

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  22625  22626  22627  ..  27192  27193  27194  27195  27196  27197

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [blabla@olympe] Le topic du modo, dieu de la fibre et du monde


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)