• [^] # Re: quelques points

    Posté par . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à 5.

    Effectivement.

    Maintenant une empreinte mémoire ca se calcule à l'avance. Un algorithme ou une structure de donnée adapté ca se choisi selon le contexte. Les structures de données toutes faites c'est cool oui.

    Maintenant utiliser une TreeMap<Integer, Integer> vaut-il le coup de payer multiplier par 9 la consommation mémoire de mon appli ? Quand j'ai 100M d'éléments ?

    De même quand tu choisis d'implémenter le safe browsing dans un navigateur tu sais très bien que tu vas pas utiliser un set pour contenir les URL malicieuses mais que tu vas te coder un bloom filter.

    De même quand tu sais que ton code va traiter quelques dizaines de milliards d'entrées par jour tu n'attends pas la fin du dev pour mesurer ce que tu fais et lancer un profiler.

    Si tu n'as plus junior devant ton nom tu sais aussi commencer à estimer ce qui va coûter cher ou non et le mesurer corriger ASAP pour ne pas cumuler des choses non-rattrapables.

    Après oui, on mesure pour optimiser le code. Le faire à la fin, ca peut surtout vouloir dire le faire à la fin de la story... Pas 12 mois après quand on peut plus rien refactorer, qu'on a jamais eu de baseline de perf et que y'a plus de budget ni de temps. Si je livre une feature, elle doit tenir la charge pour laquelle elle est prévue et trouver le meilleur ratio coûts de prod/dev.

    Bref le dev c'est comprendre le métier et les contraintes et s'adapter. Des fois ca veut dire faire de la plomberie bête et méchante, des fois ca de réimplémenter des trucs ou utiliser des choses non conventionnelles ou peu diffusées par ce que ca à un sens d'un point de vue business. Et c'est beaucoup moins rare qu'on le croit.