Sachant que cela coûte beaucoup moins cher pour la plupart des applications (particulièrement pour du web) de mettre une machine deux fois plus puissante plutôt que de payer l'équivalent d'H.M pour optimiser l'application... Et qu'en cas de départ de la personne qui a développé l'application initiale cela coûtera beaucoup plus cher que la personne déchiffre un code optimisé mal fait qu'un code non optimisé bien organisé...Donc, si je résume, vous passez tout votre temps à optimiser à l'aveugle plutôt que de faire une solution fonctionnelle, lancer des benchmarks et optimiser les points critiques ? (et au passage l'assertion qu'un code ne sera jamais modifié)
24h/24 sur des optimisations ? Mais qui serait assez fou pour faire un job comme ça ?Donc, si je résume, vous passez tout votre temps à optimiser à l'aveugle plutôt que de faire une solution fonctionnelle, lancer des benchmarks et optimiser les points critiques ? (et au passage l'assertion qu'un code ne sera jamais modifié)
Le postulat qu'un code optimisé est in-maintenable est purement et simplement fausse, quand c'est pas assez performant doublez la puissance de la machine, est ce que tu as fumé? y'a pas assez de ram doublez la ram, pas assez de procco rajoutez le dernier biproc 8 procco hyperthreadé qui va bien, je l'entend tous les jours celle la, franchement quand on est un informaticien qui se respecte on ne pense pas comme ça...Sachant que cela coûte beaucoup moins cher pour la plupart des applications (particulièrement pour du web) de mettre une machine deux fois plus puissante plutôt que de payer l'équivalent d'H.M pour optimiser l'application... Et qu'en cas de départ de la personne qui a développé l'application initiale cela coûtera beaucoup plus cher que la personne déchiffre un code optimisé mal fait qu'un code non optimisé bien organisé...Donc, si je résume, vous passez tout votre temps à optimiser à l'aveugle plutôt que de faire une solution fonctionnelle, lancer des benchmarks et optimiser les points critiques ? (et au passage l'assertion qu'un code ne sera jamais modifié)
Non, l'optimisation est partie intégrante de la conception, si tu ne penses pas le truc correctement à un niveau global tu ne le feras pas à un niveau particulier.Dans l'immense majorité des cas, le plus important est la conception du code, ensuite vient l'optimisation si cela ne gène pas le premier point.
Cordialement.
Quand on parle d'optimisation, on ne parle pas de quelques minutes pour doubler les performances, on parle de plusieurs hommes*jours pour gagner 10%, ce qui est en général énorme vu le coût. On ne dit pas que le code optimisé est nécessairement inmaintenable. Mais dans les cas où l'on sacrifie de la maintenabilité (donc du temps lors des interventions futures, voire le risque de voir apparaître de nouveaux bugs) pour un peu plus de performances, ce n'est pas forcément une bonne idée. A noter que les cas où cela arrive sont légions (par exemple remplacer une fonction générique par une fonction custom qui fera l'opération plus vite mais totalement dédiée au besoin actuel, etc).Le postulat qu'un code optimisé est in-maintenable est purement et simplement fausse, quand c'est pas assez performant doublez la puissance de la machine, est ce que tu as fumé? y'a pas assez de ram doublez la ram, pas assez de procco rajoutez le dernier biproc 8 procco hyperthreadé qui va bien, je l'entend tous les jours celle la, franchement quand on est un informaticien qui se respecte on ne pense pas comme ça...Sachant que cela coûte beaucoup moins cher pour la plupart des applications (particulièrement pour du web) de mettre une machine deux fois plus puissante plutôt que de payer l'équivalent d'H.M pour optimiser l'application... Et qu'en cas de départ de la personne qui a développé l'application initiale cela coûtera beaucoup plus cher que la personne déchiffre un code optimisé mal fait qu'un code non optimisé bien organisé...Donc, si je résume, vous passez tout votre temps à optimiser à l'aveugle plutôt que de faire une solution fonctionnelle, lancer des benchmarks et optimiser les points critiques ? (et au passage l'assertion qu'un code ne sera jamais modifié)
Ce n'est pas parce que tu as une bonne conception que ton code est automagiquement optimisé. Par exemple si sur un gros projet tu organises ton codes par modules pour isoler les différentes tâches mais qu'ensuite tu dois découvrir, charger les modules, les faire communiquer, etc, tu peux facilement arriver à un code bien conçu mais un peu moins performant (on parle réellement de 10% là) que s'il était monolithique.Non, l'optimisation est partie intégrante de la conception, si tu ne penses pas le truc correctement à un niveau global tu ne le feras pas à un niveau particulier.Dans l'immense majorité des cas, le plus important est la conception du code, ensuite vient l'optimisation si cela ne gène pas le premier point.
Cordialement.
Je ne comprend pas comment tu peux affirmer des choses aussi drastiques, oui c'est possible de faire de la performance dès le départ sans perdre aucun temps en refactoring derrière et sans perdre la maintenabilité, tel que tu décris tu vois de l'optimisation faite dans un code serveur en C, moi je te parle des technos dont on traite sur ce forum à savoir php javascript etc, quand à avoir besoin de plusieurs développeurs pendant plusieurs jours, il n'y a presque aucun projet qui nécessite ça, pour avoir fait de très gros projet (ex ce que je fais actuellement se compare à facebook en terme de taille de code et est sans doute plus complexe) absolument seul je suis bien placé pour le savoir.Quand on parle d'optimisation, on ne parle pas de quelques minutes pour doubler les performances, on parle de plusieurs hommes*jours pour gagner 10%, ce qui est en général énorme vu le coût. On ne dit pas que le code optimisé est nécessairement inmaintenable. Mais dans les cas où l'on sacrifie de la maintenabilité (donc du temps lors des interventions futures, voire le risque de voir apparaître de nouveaux bugs) pour un peu plus de performances, ce n'est pas forcément une bonne idée. A noter que les cas où cela arrive sont légions (par exemple remplacer une fonction générique par une fonction custom qui fera l'opération plus vite mais totalement dédiée au besoin actuel, etc).
Le postulat qu'un code optimisé est in-maintenable est purement et simplement fausse, quand c'est pas assez performant doublez la puissance de la machine, est ce que tu as fumé? y'a pas assez de ram doublez la ram, pas assez de procco rajoutez le dernier biproc 8 procco hyperthreadé qui va bien, je l'entend tous les jours celle la, franchement quand on est un informaticien qui se respecte on ne pense pas comme ça...
Ce n'est pas parce que tu as une bonne conception que ton code est automagiquement optimisé. Par exemple si sur un gros projet tu organises ton codes par modules pour isoler les différentes tâches mais qu'ensuite tu dois découvrir, charger les modules, les faire communiquer, etc, tu peux facilement arriver à un code bien conçu mais un peu moins performant (on parle réellement de 10% là) que s'il était monolithique.Non, l'optimisation est partie intégrante de la conception, si tu ne penses pas le truc correctement à un niveau global tu ne le feras pas à un niveau particulier.Dans l'immense majorité des cas, le plus important est la conception du code, ensuite vient l'optimisation si cela ne gène pas le premier point.
Cordialement.
Enfin, de toute façon on ne peut pas dire qu'une conception est "bonne", c'est une notion hautement subjective...
Et moi je ne comprends pas comment tu peux généraliser à partir de ton expérience personnel sur un projet, sachant qu'en plus tu étais seul donc que tu n'avais ni recul ni regard objectif.Je ne comprend pas comment tu peux affirmer des choses aussi drastiques, oui c'est possible de faire de la performance dès le départ sans perdre aucun temps en refactoring derrière et sans perdre la maintenabilité, tel que tu décris tu vois de l'optimisation faite dans un code serveur en C, moi je te parle des technos dont on traite sur ce forum à savoir php javascript etc, quand à avoir besoin de plusieurs développeurs pendant plusieurs jours, il n'y a presque aucun projet qui nécessite ça, pour avoir fait de très gros projet (ex ce que je fais actuellement se compare à facebook en terme de taille de code et est sans doute plus complexe) absolument seul je suis bien placé pour le savoir.
Sur de grosses architectures oui.Je résume : un code bien modélisé est forcément plus lent, c'est ça ? Est-ce que c'est un raccourcit trop important de dire que pour aller plus vite il faut des getters et des setters ?
Moi je crois que tu as confondu le début de ce que j'ai dit avec la fin surtout.Et moi je ne comprends pas comment tu peux généraliser à partir de ton expérience personnel sur un projet, sachant qu'en plus tu étais seul donc que tu n'avais ni recul ni regard objectif.Je ne comprend pas comment tu peux affirmer des choses aussi drastiques, oui c'est possible de faire de la performance dès le départ sans perdre aucun temps en refactoring derrière et sans perdre la maintenabilité, tel que tu décris tu vois de l'optimisation faite dans un code serveur en C, moi je te parle des technos dont on traite sur ce forum à savoir php javascript etc, quand à avoir besoin de plusieurs développeurs pendant plusieurs jours, il n'y a presque aucun projet qui nécessite ça, pour avoir fait de très gros projet (ex ce que je fais actuellement se compare à facebook en terme de taille de code et est sans doute plus complexe) absolument seul je suis bien placé pour le savoir.
Si tu as un paquet de conditions, ce qui implique que ton système est pas conçu, donc ça ne colle pas avec mon propos.Sur de grosses architectures oui.Je résume : un code bien modélisé est forcément plus lent, c'est ça ? Est-ce que c'est un raccourcit trop important de dire que pour aller plus vite il faut des getters et des setters ?
Plus tu rajoutes de couche plus tu rajoutes du code difficile à conditionner, et donc au final tu exécutes du code qui n'a pas grande utilité.
Je ne saisis pas l'analogie et puis comme je le disais, plus court != plus rapide.C'est comme faire un Paris Nantes par l'autoroute, avec les couches cela implique de s'arrêter à chaque aire de repos que tu croises (avec nombre d'aire = nombre de couche). Et là je pense on est tous d'accord sur le fait que le trajet est plus long...
c'est relatif, la plupart du temps les compilateurs font mieux que toi en pure asm.On a le même souci en embarqué quand on veut du code portable sur plusieurs hardware.
On doit se trimbaler des couches basses logicielles au lieu d'attaquer directement le hard.
C'est forcement un poil plus lent...
Non.Moi je crois que tu as confondu le début de ce que j'ai dit avec la fin surtout.Et moi je ne comprends pas comment tu peux généraliser à partir de ton expérience personnel sur un projet, sachant qu'en plus tu étais seul donc que tu n'avais ni recul ni regard objectif.Je ne comprend pas comment tu peux affirmer des choses aussi drastiques, oui c'est possible de faire de la performance dès le départ sans perdre aucun temps en refactoring derrière et sans perdre la maintenabilité, tel que tu décris tu vois de l'optimisation faite dans un code serveur en C, moi je te parle des technos dont on traite sur ce forum à savoir php javascript etc, quand à avoir besoin de plusieurs développeurs pendant plusieurs jours, il n'y a presque aucun projet qui nécessite ça, pour avoir fait de très gros projet (ex ce que je fais actuellement se compare à facebook en terme de taille de code et est sans doute plus complexe) absolument seul je suis bien placé pour le savoir.
Rien que de par cette phrase on voit que tu ne cernes pas ce que l'on cible par couche...c'est relatif, la plupart du temps les compilateurs font mieux que toi en pure asm.