JeuWeb - Crée ton jeu par navigateur
[MVC] code qui me semble bizarre - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [MVC] code qui me semble bizarre (/showthread.php?tid=7039)

Pages : 1 2 3


RE: [MVC] code qui me semble bizarre - niahoo - 17-07-2013

Non mais si tu comptes les développeurs malveillants c'est facile. Maintenant en C++ je peux remplacer l'appel à une instanciation d'objet par une fonction perso qui va me mettre de côté le private pour pouvoir la lire, ce genre de trucs. Faut pas vouloir penser à la place des autres. Si dans ta doc tu dis qu'il faut pas toucher à telle variable et que le mec le fait quand même, perso je m'en fous.

C'est juste pas fun d'être bloqué par des dev qui font des librairies contraignantes parce qu'ils pensent que c'est une bonne idée de t'imposer leur façon de coder.

Bon de toute façon c'est HS, là dans une vue on veut juste lire les messages donc on met un getter, c'est le mieux, et comme tu le dis on peut rediriger les appels et émettre un warning. (Ce qu'on peut faire aussi en utilisant des getters magiques, tu noteras Wink )


RE: [MVC] code qui me semble bizarre - Xenos - 17-07-2013

Citation :Non mais si tu comptes les développeurs malveillants c'est facile
Ironiquement, oui, parce que justement, si on considère que les développeurs sont malveilants alors cela devient plutôt compliqué :p
La malveillance peut être volontaire (pirate, usurpateur, employé mécontent, troll...) ou involontaire (oublis, changement d'habitude, développeur inexpérimenté...).
Ne pas considérer les développeurs comme "malveillants" revient à ne pas considérer les utilisateurs du site web comme "malveilants". Pourtant, je suis certain que tu contrôles tes utilisateurs avant qu'ils ne fassent certains changement sur ton site (login et password requis par exemple).
Ton cas d'exemple du C++ est un "security information disclosure" (dans l'OWASP top 10 je crois bien). Un private initialisé par le constructeur lui-même ne posera pas ce problème. En mots plus raides, si je définis la valeur du mot de passe "en dur" dans le constructeur, il ne sera jamais dévoilé.

En revanche, oui, si tu t'en fous, c'est pas la peine de te prendre la tête à mettre private/Public ou autre. Mais le développeur n'a pas forcément volontairement choisi de se planter... Ce que je veux dire par là, c'est que si tu fais 100% confiance au développeur, alors pourquoi ne pas tout mettre en public, sans se poser de question? Niveau habitude de developpement, ca me semble un peu léger que d'utiliser QUE du public, et aucune constante (une constante contraint le développeur!).

Si la façon d'utiliser la librairie ne te plait pas, tu appliques les DP, et tu te crée une façade ou un adapter qui se charge de changer tes habitudes de codage perso en habitudes de codage de la bibliothèque.

Heu... ops... Oui, c'est carrément HS ^^ Eyuup, je suis d'accord avec l'idée de l'alerte dans le getter magique, c'est une solution très jolie. Malheureusement, les développeurs qui sont assez consciencieux pour évincer les warnings sont rare... Le nombre de fois où j'ai entendu "Ouf, y'a que des warnings!" est impressionnant...!
Et pour en revenir au sujet, donc, je dirai pareil: c'est effectivement du code acceptable, mais il pourrait être plus strict et rigoureux.


RE: [MVC] code qui me semble bizarre - niahoo - 17-07-2013

Tiens la "malveillance involontaire" ça me fait penser aux palestiniens qui défilent chaque semaine devant le mur frontière dressé par Israël, manifestations que ce dernier a qualifiées de "terrorisme non-violent". J'avoue que c'est un concept intéressant, il faudra que je me penche dessus à l'occasion. Mais là c'est plus la saison des plantes magiques ...

Citation :Si tu fais 100% confiance au développeur, alors pourquoi ne pas tout mettre en public, sans se poser de question ?

Je lui fais confiance pour connaître les conventions de son langage et surtout pour lire la doc. Sinon ce n'est pas un développeur et je ne m'en préoccupe pasSmile