13Fermer15
PolluxLe 03/08/2004 à 19:52
Uther
: Pour moi l'article met bien en evidenece un fait : quand on veut faire une abstraction il faut le faire bien. L'exemple de TCP ne pose pas vraiment de problèmes en soit car il a été bien pensé.

Ca dépend sous quel angle tu le prends. Si tu te dis "je veux transporter des données de façon sûre d'un point A à un point B avec un ping minimal", TCP n'est probablement pas la meilleure abstraction à prendre, parce que c'est plutôt optimisé pour éviter de bouffer trop de bande passante (exemple typique : une recherche Google qui au bout de 10 secondes n'a tjs pas répondu, il vaut mieux alors arrêter *manuellement* le navigateur et refaire "OK" : c'est bien une fuite de l'abstraction)
C++ (du mois en ce les chaines de caractères) est un bon example de mauvaise encapsulation et il explique même quelle aurait été la solution.

Oui, enfin c plus qu'il n'y a pas d'encapsulation du tout...
L'article est pas mal mais je trouve dommage qu'il présente le problème comme une fatalité, ce n'est pas le cas.

Pas franchement, encore une fois ça dépend de l'angle sous lequel tu le prends. Parce que si tu définis une abstraction comme une approximation (e.g. TCP : approximation d'un truc faillible qui dépend de plein de facteurs aléatoires), tu vas avoir une fuite de l'abstraction si les approximations peuvent être observables. Et ce qu'il dit, c'est qu'il faut à chaque fois être conscient que c'est une approximation, et que si tu fais ton n00b et que tu penses que tout va bien se passer en n'ayant connaissance que de l'abstraction et pas du mécanisme sous-jacent, il risque bien d'il y avoir un jour où ça va foirer. Et s'il n'y a pas d'approximation, il n'y a pas non plus d'abstraction...