04-06-2015, 09:16 AM
(02-06-2015, 05:25 PM)Xenos a écrit : J'en reviens quand même aux objections précédentes:
• Si on veut faire de la bio, on la fait jusqu'au bout, et on lance la bouteille à la mer et non à un objet; d'ailleurs, c'est First Come First Served (la première cellule captant la molécule du message détruit cette molécule).
On ne veut pas faire de la bio. On copie dans une certaine mesure cet univers pour permettre d'avoir une bonne abstraction.
(02-06-2015, 05:25 PM)Xenos a écrit : • Que les langages OO actuels comme Java ne soient pas de purs OO, oui, c'est vrai. Mais on se plie au langage qu'on choisit: s'il existe un langage OO pur, sans return, pourquoi pas, cela se tente, mais forcer les langages OO "classiques" à se plier à ce pour quoi ils ne sont pas conçus, c'est inefficace. Surtout quand l'explication est "return me force à retourner un typage donné", alors qu'en PHP ce n'est pas vrai: l'appelé est totalement libre de faire ce qu'il veut.
Je ne vois pas pourquoi le langage serait OO pur si tu avais pas de return.
C'est cool de pouvoir faire du chainage grâce à return $this.
En dehors de ça, un langage à souvent plus tendance à te permettre tout et n'importe quoi que t'imposer une manière très stricte de coder, je n'ai pas spécialement d'avis à ce sujet, c'est un autre débat.
(02-06-2015, 05:25 PM)Xenos a écrit : Ce que j'arrive pas à assimiler, c'est surtout la notion que Client::getAgeAskedByBarman serait réutilisable, puisque c'est hyper-spécifique au couple Barman-Client. C'est objecté en fin de conférence: le foisonnement de méthodes devient énorme (et verbeux): statistiquement, il y a plus de risques d'avoir des foirages avec plus de code.
Je n'ai pas parlé de réutilisabilité moi, mais d'abstraction. Tout comme mageekguy l'a fait. On parle que d'abstraction.
De boite noire, de ne pas savoir comment marcher l'objet etc. Et encore une fois, de manière générale tu n'as pas 50 objets drastiquements différents qui fonctionnent avec un autre.
(02-06-2015, 05:25 PM)Xenos a écrit : Heu, la partie du Barman qui s'instancie, je trouve que c'est un mélange avec le StateLess model.Et tu veux en venir ou du coup ?
(02-06-2015, 05:25 PM)Xenos a écrit : J'ai un doute sur les tests: si la classe testée est totalement libre, alors comment on teste $tv->userWantsToWatchTv? En fait, la notion même de test n'a pas lieu d'être si chaque agent est libre de tout (cool, c'est cela de moins à faire, mais comme en stage, on débouche sur des codes qui font n'importe quoi :\).Le code est totalement libre, mais dans le cadre d'un test tu sais ce qu'il doit faire.
Tu l'initialise, lui donne les bonnes données etc.
Et tu sais que dans un fonctionnement normal $tv->userWantsToWatchTv($user) va appeler $user->tvIsOnChannel($channel) par exemple. Et donc ton test va consister à vérifier que $tv envoie bien le bon message à $user.
(02-06-2015, 05:25 PM)Xenos a écrit : Dans l'exemple du Barman qui veut connaitre la religion du Client, en East, il faut ajouter 2 méthodes (Client::religionAskedByBarman et Barman::religionToldByClient) et éditer la méthode Barman::giveAlcool; en classique, il faut ajouter 1 méthode (s'il n'existe pas ou s'il est spécifique au Barman) Client::getReligion/Client::getReligionByBarman. C'est pas plus Opened/Closed que East?Tu peux pour un soucis de clareté utiliser le "code de référence" qui est sur https://github.com/estvoyage/phpTour2015 et refaire ton explication à son sujet. Et montrer avec un petit bout de code ce que tu ferais à ta façon (donc non East).
(02-06-2015, 05:25 PM)Xenos a écrit : Après, que l'orateur se rassure: tout code West peut être Easté (c'est facilement démontrable). Est-ce que cela en vaut le coup, franchement, au vu des résultats de mon dernier réseau de neurones, j'en doute.Tu te bornes à comparer ça à un réseau de neurone alors que ça n'a RIEN à voir.
(02-06-2015, 05:25 PM)Xenos a écrit : J'irai faire un tour sur le channel (ou on fixe rendez-vous histoire d'y être ensemble?)J'y suis tout le temps, en général je répond sous une heure max.
J'vais aussi publier le code du stage, cela pourrait être un exemple intéressant à reprendre