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.
la source
Réponses:
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.
la source
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.
la source
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.
la source
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:
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"
la source
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.
la source
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?
la source
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.
la source
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.
la source
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! :-)
la source
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 ..
la source