Comment communiquer avec un collègue qui considère les frameworks comme un impact sur les performances


10

Comment peut-on vendre une idée comme «nous devrions utiliser jQuery parce que son environnement hautement optimisé et compatible avec les navigateurs» ou «le cadre d'entité est cool parce qu'il est soigné et prend soin de notre modèle de manière automatique» lorsque la réponse commune est une déclaration masquée telle que «jquery ne fonctionne pas bien "ou" les entités apportent 12 colonnes sur une table alors que nous n'avons besoin que de 10 "?

Je suis un gars pragmatique qui a tendance à faire confiance aux axiomes que j'ai développés par l'expérience (ce n'est pas un problème de performance jusqu'à ce qu'il y ait un ralentissement visible). Je ne sais pas s'il y a une "catégorie" spécifique dans laquelle l'autre extrême s'inscrit, alors que tout est un problème de performance jusqu'à preuve du contraire ... ou même par où commencer la communication ici.


7
Il ne s'appelle pas Dick, n'est-ce pas? Daily WTF 'Java is Slow'
AlexC

Il suffit de lui sortir le sac.
Job

1
@AlexC - OMG OUI !!!!!!!!!!!!
P.Brian.Mackey

1
"Montrez-moi les données!" qui serait la version informatique de cette ligne Jerry Maguire sur l'argent que Tom Cruise a rendu célèbre il y a des années.
JB King le

2
Dites-lui qu'il est un succès de performance pour votre projet.
Wyatt Barnett du

Réponses:


15

Apportez-leur des faits concrets!

Par exemple, il existe des références de performances pour les frameworks ORM et JS. En plus, tout le framework et l'ORM ont de bons arguments de vente sur leur page d'accueil.

Après avoir lu votre commentaire, je crois que dans votre cas, le problème n'est pas la bonne technologie. Ce sont les gens qui refusent d'apprendre les nouvelles technologies.


3
+1 - La difficulté ici est que j'ai parcouru et créé des prototypes pour divers nouveaux outils et technologies pour montrer ... oui, ils fonctionnent bien. Mais, j'ai l'impression qu'il y a une stigmatisation contre tout changement ou tout nouvel outil qui vient de l'échec des outils passés (et peut-être une peur de la complexité). Donc, le pari sûr est simplement de maintenir le statu quo. Malheureusement, je ne sais pas combien de temps nos anciens outils résisteront aux attentes et aux exigences toujours croissantes des utilisateurs.
P.Brian.Mackey

1
@ P.Brian.Mackey - Vous pouvez toujours essayer le parcours de l'évier ou de la natation. Sur votre prochain projet où vous arriverez à diriger une implémentation, implémentez votre framework. Il peut soit suivre ou vérifier.
Joel Etherton

Problème - Aucune analyse comparative du cadre JS n'est pertinente par rapport à JS personnalisé (solution sur mesure).
Nicole

6

J'ai déjà fait face à ce problème, des gens voulant réinventer la roue. Je leur explique généralement que nous pouvons rendre le produit meilleur et plus poli si nous passons du temps à perfectionner ce qui est important, et non ce qui se trouve en dessous. De plus ... Je veux dire que les cadres sont là pour une RAISON, et les performances ne sont vraiment pas autant un problème de nos jours. La fiabilité est plus importante, et si les cadres ont de bonnes critiques / évaluations, ils sont probablement plus fiables que ce que n'importe qui pourrait inventer à la volée.


+1 pour l'idée que, même si les performances sont probablement atteintes, il s'agit généralement d'un excellent échange pour un délai de livraison considérablement réduit, une maintenabilité améliorée et, avec un cadre mature / largement optimisé, probablement plus fiable que ce que vous pouvez construire vous-même . Il est rare que les réinventeurs de roues soutiennent que l'utilisation d'un assemblage autre que pur est le seul moyen d'obtenir de vraies performances, alors pourquoi l'utilisation de cadres sur la ligne? (FWIW Je ne suis pas dans le camp "la performance n'est pas vraiment un problème ces jours-ci", car je pense toujours que la performance est très importante. Ce n'est pas la seule chose importante.)
Matthew Frederick

6

Tout le monde semble être en désaccord avec votre collègue, mais je pense que vous devriez prendre ses arguments au sérieux si pour aucune autre raison que de comprendre son point de vue. Je suis un fervent partisan des frameworks lorsque vous en avez besoin ou lorsqu'ils fournissent réellement une optimisation, mais je crois également qu'une dépendance excessive à l'égard d'un framework peut conduire à un développement faible dans certains cas.

Je pense que vous devriez aborder le problème moins du point de vue que votre collègue a tort et plus du point de vue que l'utilisation des frameworks auxquels vous pensez améliorera le temps de développement, les performances, la maintenance, etc.

J'essaie toujours de garder à l'esprit d'utiliser le bon outil pour le bon travail. Je n'ai pas besoin d'un traîneau de 12 lb (jQuery) pour enfoncer un clou pour accrocher une photo (échange d'image). Mais si je me retrouve dans une situation où j'accroche une photo qui nécessite un crampon de chemin de fer pour le garder sur le mur, je ferais mieux d'avoir ce traîneau prêt à partir.


4

il a raison, il y a des frais généraux

mais l'hypothèse que la surcharge d'un cadre est plus qu'une solution codée à la main peut ne pas être correcte, et même si elle est correcte, la surcharge peut ne pas être significative.

proposer un test:

  • vous écrivez tous les deux quelque chose de réaliste mais relativement petit
  • vous utilisez jQuery (ou autre) et il ne peut rien utiliser
  • mesurer deux choses:
    1. combien de temps il vous faut pour coder la solution (en supposant que vos compétences en codage sont équivalentes)
    2. combien de temps il faut pour exécuter (cycle de vie complet) chaque solution

il y a des chances, il y aura une petite surcharge avec le cadre - très petit - mais une énorme différence dans le temps qu'il faut pour coder [et déboguer!] la solution

alors votre ami peut discuter avec les faits, plutôt qu'avec vous

note: soyez prêt pour une résistance continue; la répression contre les frameworks est souvent formulée en termes techniques, mais est en fait un écran de fumée pour "non inventé ici" ou "je ne veux pas apprendre un autre outil"


3

Rappelez à votre collègue qui réinvente les roues que ce qu'il fait est une variété d'optimisation prématurée. Comment peut-il savoir que ces frameworks représentent un impact sur les performances inacceptable jusqu'à ce qu'il soit démontré qu'ils causent un problème. Pendant ce temps, votre productivité mutuelle aura certainement diminué considérablement avec tout le travail supplémentaire que vous avez dû faire.


2

Que diriez-vous d'expliquer les performances affectées au délai de livraison du projet lorsque vous n'utilisez pas certains de ces énormes cadres de gain de temps et testés au combat?


Vous n'êtes pas sûr de la raison du vote négatif, dites-vous que NE PAS utiliser jQuery ou d'autres cadres établis (tant qu'il y en a un besoin certain) va raccourcir le délai de livraison d'un projet? C'est essentiellement l'argument "ne pas réinventer la roue" ...
G_P

Je fais aussi un lâche downvote drive-by. Quelqu'un a un bug dans son kiester aujourd'hui.
Adam Crossland

1
Je suis d'accord avec vous (et je ne vous ai certainement pas dévalorisé!), Mais j'ai vu le temps de développement prolongé en raison de l'utilisation d'un cadre pour une tâche simple qui aurait pu être effectuée rapidement à la main, puis d'avoir à faire face au cadre n'étant pas tout à fait raison, ne faisant pas tout à fait ce dont vous avez besoin, pas tout à fait compris, etc.
Carson63000

@ Carson63000 - D'accord avec vous à 100% - L'étendue de la tâche à accomplir doit certainement être mise en balance avec l'impact de l'introduction d'un cadre.
G_P

1

Une option serait de lui dire qu'il doit être en charge du réglage des performances - s'il peut être démontré qu'il y a un problème de performances! Ou, si vous avez les ressources, créez deux Proof-of-concepts: vous construisez le vôtre avec jQuery, et tout ce que vous voulez. Il peut construire le sien avec son propre système ultra-rapide roulé à la main. Ne laissez pas cela durer plus de quelques jours (c'est une preuve de concept) et voyez qui est le plus performant à la fin.

Et bien sûr, comme d'autres l'ont mentionné, obtenez des chiffres et des profils de performances pour les deux côtés de l'argument.


1

Premièrement, il peut convenir à votre situation spécifique.

Comme il semble que vous ayez du mal à le faire examiner votre point de vue, vous devez faire un meilleur travail pour le convaincre.

Vous deux êtes sur deux points différents le long de la ligne entre "Build" et "Buy". Ceci est une assez longue ligne. À gauche, dans "Build" vous avez SpaceX, qui devait construire une industrie entière. À droite, dans la section "Acheter", vous avez entièrement sous-traité toutes les fonctions informatiques à IBM, HP et autres, et l'entreprise ne fait aucun codage. Au milieu, distants d'environ 2 mm, vous êtes tous les deux. Vous devez tous les deux convaincre la direction que votre approche sur "construire vs acheter" sur le framework et orm et autres - et par "acheter" je veux dire "pas construit en interne" - est dans le meilleur intérêt de l'entreprise, depuis longtemps -terme. Twitter serait mort s'il avait sous-traité à IBM. Ils ont roulé le leur. Pensez-y.

Quoi qu'il en soit, la direction doit quitter le terrain de golf et y entrer et faire son travail.


0

Eh bien pour l'ORM, la réponse est "Seulement si vous écrivez votre requête de cette façon, la même chose peut être dite pour SQL". Comme d'autres l'ont dit, des faits concrets sont ce dont vous avez besoin.

Aussi, posez des questions spécifiques pour creuser ce qu'il dit - "Pouvez-vous me donner un exemple de JQuery qui ne fonctionne pas parce que ce n'est pas mon expérience".

La troisième option, et un vieux développeur avisé me l'a suggéré, incluez tout de même la "chose" (en supposant qu'elle n'a pas de mauvais problèmes).

La demande d'approbation ne mène qu'à la réponse «non». Faites-le entrer, alors vous pouvez leur demander de pointer vers des domaines spécifiques et leur demander de vous dire quel est le problème.

"Hé, ce code EF ne ramène que les 2 éléments de données nécessaires de cette table, quel est le problème" etc.

Évidemment, vous devez être assez confiant en vous-même et l'outil que vous utilisez avant d'aller de l'avant avec cette approche! :-)


0

Bien rejeter d'emblée des bibliothèques comme ça est stupide et parfois arrogant. Les heures de produits investies dans ces produits et la pensée qui les sous-tend les rendent tout simplement ridicules.

Il se peut que votre collègue ait raison, car vous devez comparer et surpondérer les exigences du logiciel, qui fait partie de la conception. Il se peut qu'une solution ORM ou ActiveRecord soit trop exagérée ou au contraire, que le logiciel ait besoin d'une solution vraiment couplée pour la base de données et que l'ORM ne la coupe tout simplement pas.

Il est important de prendre ces éléments en considération chaque fois que vous concevez un logiciel.

Pour les bibliothèques côté client, je dois dire que c'est tout simplement stupide car vous pouvez toujours trouver un cadre adapté à vos besoins. Et comme certains l'ont dit avant moi, quoi de mieux qu'un framework testé au combat?

Laissez-le prendre la merde de tous les problèmes de cross-browser, il viendra à vous volontiers concernant la façon d'utiliser un framework.

Au fait, j'ai eu une fois un patron qui ne tenait pas compte des cadres. Je lui ai juste montré à quel point il était facile de faire des requêtes ajax au lieu de copier les fonctions encore et encore (ce qui était une idée idiote en premier lieu), eh bien il ne savait pas comment coder ainsi ..

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.