So kommunizieren Sie mit einem Kollegen, der Frameworks als Leistungseinbruch betrachtet

10

Wie kann man eine Idee wie "Wir sollten jQuery verwenden, weil es hochoptimiert und browserübergreifend kompatibel ist" oder "Entity Framework ist cool, weil es ordentlich ist und sich automatisch um unser Modell kümmert" verkaufen, wenn die allgemeine Antwort eine pauschale Aussage wie "jquery" ist funktioniert nicht gut "oder" Entitäten bringen 12 Spalten in eine Tabelle, wenn wir nur 10 benötigen "?

Ich bin ein pragmatischer Typ, der dazu neigt, Axiomen zu vertrauen, die ich durch Erfahrung entwickelt habe (es ist kein Leistungsproblem, bis es eine sichtbare Verlangsamung gibt). Ich weiß nicht, ob es eine bestimmte "Kategorie" gibt, in die das andere Extrem passt, während alles ein Leistungsproblem ist, bis das Gegenteil bewiesen ist ... oder wo hier die Kommunikation beginnen soll.

P.Brian.Mackey
quelle
7
Er heißt nicht Dick, oder? Tägliche WTF 'Java ist langsam'
AlexC
Schlagen Sie einfach die Tasche aus ihm heraus.
Job
1
@AlexC - OMG JA !!!!!!!!!!!!
P.Brian.Mackey
1
"Zeig mir die Daten!" Das wäre die IT-Version dieser Jerry Maguire-Linie über Geld, die Tom Cruise vor Jahren berühmt gemacht hat.
JB King
2
Sagen Sie ihm, dass er ein Performance-Hit für Ihr Projekt ist.
Wyatt Barnett

Antworten:

15

Bring ihnen harte Fakten!

Beispielsweise gibt es Leistungsbenchmarks für ORM- und JS-Frameworks. Darüber hinaus haben Framework und ORM auf ihrer Homepage gute Verkaufsargumente.

Nachdem ich Ihren Kommentar gelesen habe, glaube ich, dass in Ihrem Fall das Problem nicht die richtige Technologie ist. Es sind die Menschen, die sich weigern, neue Technologien zu lernen.

Amir Rezaei
quelle
3
+1 - Die Schwierigkeit dabei ist, dass ich Prototypen für verschiedene neue Tools und Technologien erstellt habe, um zu zeigen, dass sie eine gute Leistung erbringen. Aber ich habe das Gefühl, dass es ein Stigma gegen alle Veränderungen oder neuen Werkzeuge gibt, die dadurch entstehen, dass frühere Werkzeuge versagen (und möglicherweise Angst vor Komplexität). Die sichere Wette besteht also darin, den Status Quo beizubehalten. Leider weiß ich nicht, wie lange unsere alten Tools den ständig steigenden Erwartungen und Anforderungen der Benutzer standhalten werden.
P.Brian.Mackey
1
@ P.Brian.Mackey - Sie können immer die Waschbecken- oder Schwimmroute ausprobieren. Implementieren Sie bei Ihrem nächsten Projekt, bei dem Sie eine Implementierung leiten können, Ihr Framework. Er kann entweder mithalten oder auschecken.
Joel Etherton
Problem - Kein JS-Framework-Benchmarking ist relevant im Vergleich zu benutzerdefiniertem JS (maßgeschneiderte Lösung).
Nicole
6

Ich hatte dieses Problem schon einmal, Leute, die das Rad neu erfinden wollten. Normalerweise erkläre ich ihnen, dass wir das Produkt besser und ausgefeilter machen können, wenn wir Zeit damit verbringen, das Wichtige zu perfektionieren und nicht das, was darunter liegt. Plus ... Ich meine, Frameworks gibt es aus einem GRUND, und Leistung ist heutzutage wirklich kein so großes Problem. Zuverlässigkeit ist wichtiger, und wenn Frameworks gute Bewertungen / Bewertungen haben, sind sie wahrscheinlich zuverlässiger als etwas, das sich jeder im Handumdrehen ausdenken könnte.


quelle
+1 für die Idee, dass es wahrscheinlich einen Leistungseinbruch gibt, aber es ist im Allgemeinen ein großartiger Handel, um die Lieferzeit erheblich zu verkürzen, die Wartbarkeit zu verbessern und mit einem ausgereiften / weitgehend optimierten Framework wahrscheinlich zuverlässiger zu sein, als Sie selbst bauen können . Es ist selten, dass Rad-Erfinder argumentieren, dass die Verwendung von etwas anderem als reiner Montage der einzige Weg ist, um echte Leistung zu erzielen. Warum werden also Frameworks über die Linie verwendet? (FWIW Ich bin nicht im Camp "Leistung ist heutzutage kein großes Problem", da ich immer noch denke, dass Leistung sehr wichtig ist. Nur nicht die einzige wichtige Sache.)
Matthew Frederick
6

Jeder scheint mit Ihrem Kollegen nicht einverstanden zu sein, aber ich denke, Sie sollten seine Argumente ernst nehmen, wenn auch nur aus einem anderen Grund, als um seinen Standpunkt zu verstehen. Ich glaube fest an Frameworks, wenn Sie sie benötigen oder wenn sie tatsächlich optimiert werden, aber ich glaube auch, dass eine übermäßige Abhängigkeit von einem Framework in einigen Fällen zu einer schwachen Entwicklung führen kann.

Ich denke, Sie sollten das Problem weniger unter dem Gesichtspunkt angehen, dass Ihr Mitarbeiter falsch liegt, als vielmehr unter dem Gesichtspunkt, dass die Verwendung der Frameworks, über die Sie nachdenken, die Entwicklungszeit, Leistung, Wartung usw. verbessert.

Ich versuche immer daran zu denken, das richtige Werkzeug für den richtigen Job zu verwenden. Ich brauche keinen 12-Pfund-Schlitten (jQuery), um einen Nagel einzuschlagen und ein Bild aufzuhängen (Bildtausch). Aber wenn ich in eine Situation gerate, in der ich ein Bild aufhänge, für das ein Eisenbahndorn erforderlich ist, um es an der Wand zu halten, sollte ich diesen Schlitten bereit haben.

Joel Etherton
quelle
4

Er hat recht, da ist Overhead

Die Annahme, dass der Overhead eines Frameworks mehr als eine handcodierte Lösung ist, ist jedoch möglicherweise nicht korrekt, und selbst wenn er korrekt ist, ist der Overhead möglicherweise nicht signifikant.

einen Test vorschlagen:

  • Sie beide schreiben etwas Realistisches, aber relativ Kleines
  • Sie verwenden jQuery (oder was auch immer) und er kann nichts verwenden
  • Messen Sie zwei Dinge:
    1. Wie lange brauchen Sie beide, um die Lösung zu codieren (vorausgesetzt, Ihre Codierungsfähigkeiten sind gleichwertig)?
    2. Wie lange dauert die Ausführung jeder Lösung (vollständiger Lebenszyklus)?

Die Chancen stehen gut, dass das Framework einen kleinen Overhead hat - sehr klein -, aber einen großen Unterschied darin, wie lange es dauert, die Lösung zu codieren [und zu debuggen!]

dann kann dein Freund mit den Fakten streiten, anstatt mit dir

Hinweis: Seien Sie auf anhaltenden Widerstand vorbereitet. Oft ist der Pushback gegen Frameworks technisch formuliert, aber eigentlich eine Nebelwand für "hier nicht erfunden" oder "Ich möchte kein anderes Werkzeug lernen".

Steven A. Lowe
quelle
3

Erinnern Sie Ihren Kollegen, der das Rad neu erfindet, daran, dass er eine Vielzahl von vorzeitigen Optimierungen vornimmt. Wie kann er wissen, dass diese Frameworks einen inakzeptablen Leistungseinbruch darstellen, bis nachgewiesen wurde, dass sie ein Problem verursachen? In der Zwischenzeit wird Ihre gegenseitige Produktivität mit all der zusätzlichen Arbeit, die Sie zu tun hatten, sicherlich stark gesunken sein.

Adam Crossland
quelle
2

Wie wäre es, die Performance - Einbußen für das Projekt zu erklären Lieferzeit , wenn Sie nicht einige dieser enormen Zeitersparnis verwenden und kampferprobten Frameworks?

G_P
quelle
Sie sind sich nicht sicher, ob der Grund für die Abwertung der Fall ist. Sagen Sie, dass die NICHT-Verwendung von jQuery oder anderen etablierten Frameworks (sofern dies definitiv erforderlich ist) die Lieferzeit eines Projekts verkürzen wird? Dies ist im Wesentlichen das Argument "das Rad nicht neu erfinden" ...
G_P
Ich gehe auch feige vorbeifahren. Jemand hat heute einen Fehler in seinem Kiester.
Adam Crossland
1
Ich stimme Ihnen zu (und habe Sie sicherlich nicht abgelehnt!), Aber ich habe gesehen, dass sich die Entwicklungszeit verlängert hat, weil ich ein Framework für eine einfache Aufgabe verwendet habe, die schnell von Hand erledigt werden konnte, und mich dann mit dem nicht vorhandenen Framework befassen musste ganz richtig, nicht ganz das zu tun, was man braucht, nicht ganz verstanden zu werden usw.
Carson63000
@ Carson63000 - Stimmen Sie zu 100% zu - Der Umfang der vorliegenden Aufgabe muss definitiv gegen die Auswirkungen der Einführung eines Frameworks abgewogen werden.
G_P
1

Eine Möglichkeit wäre, ihm mitzuteilen, dass er für die Leistungsoptimierung verantwortlich ist - wenn dies gezeigt werden kann, liegt ein Leistungsproblem vor! Wenn Sie über die Ressourcen verfügen, erstellen Sie zwei Proof-of-Concepts: Sie erstellen Ihre mit jQuery und alles andere, was Sie möchten. Er kann sein eigenes mit seinem eigenen handgerollten superschnellen System bauen. Lassen Sie dies nicht länger als ein paar Tage dauern (es ist ein Proof-of-Concept) und sehen Sie, wer am Ende besser abschneidet.

Und natürlich, wie andere bereits erwähnt haben, erhalten Sie einige harte Zahlen und Leistungsprofile für beide Seiten des Arguments.

FrustratedWithFormsDesigner
quelle
1

Erstens kann er für Ihre spezifische Situation richtig sein.

Da Sie anscheinend Probleme haben, ihn dazu zu bringen, Ihren Standpunkt zu betrachten, müssen Sie einen besseren Job machen, um ihn zu überzeugen.

Ihr zwei seid an zwei verschiedenen Punkten entlang der Linie zwischen "Build" und "Buy". Dies ist eine ziemlich lange Schlange. Links in "Build" haben Sie SpaceX, das eine ganze Branche aufbauen musste. Auf der rechten Seite haben Sie im "Kaufen" die vollständige Auslagerung aller IT-Funktionen an IBM, HP und dergleichen, und das Unternehmen führt überhaupt keine Codierung durch. In der Mitte, ungefähr 2 mm voneinander entfernt, sind Sie beide. Sie müssen beide das Management davon überzeugen, dass Ihr Ansatz in Bezug auf "Build vs Buy" für das Framework und den Orm und dergleichen - und mit "Buy" meine ich "nicht im eigenen Haus gebaut" - lange Zeit im besten Interesse des Unternehmens liegt -Begriff. Twitter wäre gestorben, wenn sie an IBM ausgelagert worden wären. Sie rollten ihre eigenen. Denk darüber nach.

In jedem Fall muss das Management den Golfplatz verlassen und dort einsteigen und seine Arbeit erledigen.

Christopher Mahan
quelle
0

Für den ORM lautet die Antwort "Nur wenn Sie Ihre Abfrage so schreiben, was auch für SQL gilt". Wie andere gesagt haben, sind harte Fakten das, was Sie brauchen.

Stellen Sie außerdem spezifische Fragen, um herauszufinden, was er sagt: "Können Sie mir ein Beispiel dafür geben, dass JQuery nicht funktioniert, weil dies nicht meine Erfahrung ist?"

Die dritte Option, und ein weiser alter Entwickler hat mir dies vorgeschlagen, schließt das "Ding" trotzdem ein (vorausgesetzt, es hat keine schlechten Probleme).

Die Suche nach Genehmigung führt nur zur Antwort "Nein". Holen Sie es dort hinein, dann können Sie sie bitten, auf bestimmte Bereiche zu verweisen, und sie bitten, Ihnen zu sagen, wo das Problem liegt.

"Hey, dieser EF-Code bringt nur die 2 benötigten Datenelemente aus dieser Tabelle zurück, was ist das Problem" usw.

Natürlich müssen Sie sich selbst und dem von Ihnen verwendeten Tool ziemlich sicher sein, bevor Sie mit diesem Ansatz fortfahren können! :-)

ozz
quelle
0

Es ist dumm und manchmal arrogant, solche Bibliotheken sofort abzulehnen. Die Produktstunden, die in diese investiert werden, und der Gedanke dahinter machen es einfach lächerlich, sie abzulehnen.

Es kann jedoch sein, dass Ihr Mitarbeiter Recht hat, da Sie die Anforderungen der Software, die Teil des Designs ist, vergleichen und übergewichten müssen. Es kann sein, dass eine ORM- oder ActiveRecord-Lösung einfach zu viel des Guten ist oder im Gegenteil, dass die Software eine wirklich gekoppelte Lösung für die Datenbank benötigt und ORM sie einfach nicht schneidet.

Die Berücksichtigung dieser Aspekte ist jedes Mal wichtig, wenn Sie eine Software entwerfen.

Für die clientseitigen Bibliotheken muss ich sagen, dass es einfach dumm ist, da Sie immer ein Framework finden können, das Ihren Anforderungen entspricht. Und wie einige vor mir sagten: Was ist besser als ein kampferprobtes Framework?

Lassen Sie ihn den Mist aus allen browserübergreifenden Problemen herausholen, er wird bereitwillig zu Ihnen kommen, um zu erfahren, wie ein Framework verwendet wird.

Übrigens hatte ich einmal einen Chef, der nicht über Frameworks berichtete. Ich habe ihm nur gezeigt, wie einfach es ist, Ajax-Anfragen zu stellen, anstatt die Funktionen immer wieder zu kopieren (was an erster Stelle eine blöde Idee war). Nun, er wusste nicht, wie man so codiert.

Cu7l4ss
quelle