Es ist gut, dass der Schöpfer Ihres Lieblingsinstruments bei der Erfindung des Fahrrads nicht auf Esel gehört hat



Letzten Sommer sprachen die Jungs und ich über unsere Bibliothek, die unser Kunde nicht akzeptierte und in den Müll warf. Wir haben bombardiert, weil wir an unsere Entscheidung geglaubt und der Community davon erzählt haben - gewöhnliche Entwickler würden es definitiv überprüfen und keinen Unsinn eintauschen.

Nun, natürlich. Wir wurden buchstäblich von einer Welle der Kritik weggespült. Es gab viele Leute, die meine Einbildung nicht mochten und ich persönlich - das ist in Ordnung, ich habe keine Probleme mit ihnen. Ich war wütend auf scheinbar kluge Leute, die nicht einmal in den Code schauen und in den Kontext eintauchen wollten, weil sie von der Schwelle aus sagten: "Ihr habt ein Fahrrad gemacht." Und alle haben es verstanden - das Rad neu zu erfinden ist schlecht, schrecklich, albtraumhaft, inakzeptabel, schade, hingerichtet, gelyncht. In der Tat wird nur ein Idiot ein neues Werkzeug für eine Aufgabe entwickeln, die jemand bereits gelöst hat.

Es wundert mich, wie schnell die Entwürfe für diesen Trick ausgeführt werden. Ich fragte sogar die kritischsten und am tiefsten denkenden Menschen: "Ist es schlecht, Fahrräder neu zu erfinden?". Sie antworten in weniger als einer Sekunde mit „Ja“.

Nein, Männer, das geht nicht. Lassen Sie uns hier anhalten, uns umschauen und im Detail nachdenken.



Ich habe einmal zu Hause eine ganze Weile eine Front-End-Anwendung gemacht. Ich habe das Reagenz verwendet, es aber nicht für die Zustandsverwaltung verwendet - ich hatte kein solches Problem. Dann trat das Problem auf und ich fing an, "mein Fahrrad" zu machen. Kluge Onkel sagten mir, dass ich ein Idiot bin und Redux nehmen muss. Ich habe genommen.

Zwei Monate später war der größte Teil des Projektcodes eine Anpassung des Editors an meine Architektur. Dieses Tool hat mir viel mehr Probleme bereitet als es gelöst hat. Nicht weil die Redakteure schlecht sind - es passte einfach nicht.

Eine Person eines großen Unternehmens hat beschlossen, mit dem Stand der Webanwendung eines großen Unternehmens zu arbeiten. Die Redaktion löst eine Reihe von Problemen, mit denen eine solche Anwendung konfrontiert ist, und macht es gut. Und was macht die Branche? Die Industrie sagt - Dan Abramov hat uns den Weg gegeben. Jetzt wird meine Website in zwei Formen Editoren verwenden, um mit dem Staat zu arbeiten.

Freund, Redakteure arbeiten mit dem Staat zusammen - aber nicht mit Ihrem Staat. Sie benötigen keine dauerhafte Kette aller Segmente des Anwendungsstatus, übertragen die Aktion nicht im Netzwerk und tun nicht viel mehr, als der Editor automatisieren sollte. Gleichzeitig ist die Verwendung von Editoren nicht einfach. Sie müssen hundert Kilometer Code belohnen, um dem Editor zu erklären, wie Ihr Zustand ist, wo und wie er aktualisiert wird, welche Änderungen von Bedeutung sind und welche nicht. Damit die Redakteure ein Problem für Sie automatisieren, das Sie nicht hatten. Im Ernst, haben Sie mindestens eine Stelle für eine Reaktion gesehen, aber ohne Redakteur? Ich nicht.

Es gibt Analoga - aber sie sind auch sperrig. Manchmal besteht der billigste Weg, ein Problem zu lösen, nicht darin, für alles ein Tool zu verwenden, sondern eine für Sie geeignete Domain-Lösung zu schreiben. Mein Gott, Typoskript ist mächtig genug, um in ein paar Stunden ein einfaches MVM, MVC oder was auch immer Sie wollen zu schreiben - so dass es nur die Probleme löst, die Sie haben. Machen Sie es billiger und schneller heraus. Und vielleicht funktioniert Ihre Lösung cool, wächst mit dem Projekt und wird zum Standard.

Dies ist jedoch verboten, da andere Entwickler Ihnen sagten: „Mann, erfinden Sie das Rad nicht neu. Nehmen Sie einfach die beliebtesten auf dem Markt. “

In meinem Projekt war MobX zum Beispiel besser geeignet, aber auch nicht super. Es würde für mich am besten genau das Fahrrad funktionieren, das ich erfunden habe. Aber es schien, als hätten sie mir das Recht genommen, eine gute Entscheidung zu treffen, denn egal was ich tat, niemand würde zuhören. Niemand ist bereit zu glauben, dass es besser und billiger wird.

Dies schafft einen Teufelskreis. Wenn jeder nur das vor ihm erfundene verwendet, wird der Entwicklungsfortschritt aufhören. Sie sagen dir, wenn du es besser machen willst als im Ziel - mach es zu Hause in deiner Freizeit. Du sagst ok, du fängst nachts an zu arbeiten, du beendest es, du erzählst den Leuten von deiner Entscheidung, aber niemand ist bereit, unter seine Motorhaube zu schauen - "das ist ein Fahrrad."

Tatsächlich erfinden wir nur Fahrräder. "Fahrrad" ist einfach eine schädliche rhetorische List, um Ihre Faulheit zu rechtfertigen oder sich in einem Streit mit einem anderen Entwickler zu behaupten.

Die Macher des Editorials reagieren und mobix - schließlich haben sie auch "ihr Fahrrad gemacht". Nun, was, es sei denn, als der Winkel erschien, hatten wir keine Bibliothek für die Arbeit mit der Browser-Benutzeroberfläche? Jquery Knockout Das ist übrigens auch toll. Immerhin gab es immer Vanilla Js und eine Browser-API. Warum haben diese Idioten das gelöste Problem gelöst?

Douglas Crockford hat JSON erfunden. Der inkompetente Boob scheint nicht zu wissen, dass wir bereits XML haben. Lange vor ihm erfanden Programmierer einen Weg, Daten auszutauschen. Wen glaubte er, dort zu sein?

Schlechte Beispiele? Nun, natürlich. In Ihren Köpfen haben Menschen aus großen Unternehmen das Recht, Fahrräder zu erfinden. Sie haben, aber Sie und ich nicht.



Die meisten Unternehmens-ITs in der Russischen Föderation sind Banken. Und wenn Sie sich die technischen Produkte von Sberbank, Tinkov oder Alf ansehen, werden Sie sehen - sie haben alle die gleichen Anwendungen mit ungefähr dem gleichen Design. Dies sind fast identische Systeme. Für den Benutzer gleich, werden sie auf unterschiedliche Weise, auf unterschiedlichen Stapeln, von unterschiedlichen Personen hergestellt. Alle diese Banken haben ihre eigenen einzigartigen Entwicklungsansätze. Die globalen IT-Giganten haben auch viele der gleichen Produkte. Wenn große Banker zusammenkommen und entscheiden, dass sie digitale Produkte benötigen, stellen sie eine Armee von Entwicklern ein und zwingen sie, zum hundertsten Mal die gleichen Dinge zu tun, die andere Banken bereits getan haben - aber auf eine neue Art und Weise.

Hier dreht sich alles um Fahrräder.

In jedem Projekt, an dem ich gearbeitet habe, gab es langlebige Probleme, weil etwas nicht automatisiert war. Denn wenn jemand einmal informiert wurde - erfinden Sie das Rad nicht neu, schließen Sie einfach das Ticket. Ja, das Unternehmen wartet auf seine Tickets und es muss gefüttert werden, aber seien wir ehrlich - ich weiß, dass wir immer mehr Budget haben, als das Unternehmen denkt.

Ich habe alles nur mit dem Geld des Geschäfts, das ich dafür ausgebe. Ein großes Unternehmen hat viel Geld und treibt sie in die Entwicklung. Dieser riesige Haufen Geld kann von Entwicklern ausgegeben werden, die Probleme lösen und gleichzeitig Nachforschungen anstellen. Und Manager können ausgeben, aber Manager werden sie ausgeben, um für unser sinnloses Sitzen in Millionen nutzloser Besprechungen zu bezahlen. Unternehmen haben bereits Geld für die Entwicklung ausgegeben, und wenn Sie es nicht in Programmierung umwandeln, geben Geschäftsleute es für ihre dummen Prozesse aus, die von niemandem außer sich selbst benötigt werden.

Ich habe genug von Typen gesehen, die 18 Stunden am Tag „arbeiten“. Und ich weiß genau, dass Sie, wenn Sie 18 Stunden im Büro bleiben, wirklich so viel arbeiten werden, als ob Sie 8 sitzen würden.

Unsere kollektive Art, ein Unternehmen zu täuschen, wird sehr einfach erklärt - es fummelt nicht. Das Geschäft versteht nicht, warum wir zwei Wochen lang keine Funktionen ausführen sollten, sondern das Erbe in Ordnung bringen sollten. Dies ist normal und wir wissen, wie wir es lösen können. Sie arbeiten einen halben Tag für ein Unternehmen und einen halben Tag für ein Projekt. Ich bin zur Arbeit gekommen, habe die tägliche Norm geschlossen - das ist alles, Sie haben einen Freibrief für die Forschung.

Während wir das praktische, momentane Wunschliste-Geschäft lösen, ist er bereit, für diese Arbeit zu bezahlen. Tatsächlich beginnt die eigentliche Entwicklung dort, wo es Programmierung zum Zwecke der Programmierung gibt. Wenn Sie in reiner Mechanik schwelgen, um nichts zu ficken, ein kurzes Klicken und technische Begeisterung, denn nur so werden die Grenzen verschoben, neue Wege und Werkzeuge scheinen praktische Probleme wieder zu lösen, nur besser.

Wenn ich etwas entwickle, etwas, das bereits getan wurde, erfinde ich es nicht genau so neu wie das ihre. Ich überlege mir meinen Ansatz. Er ist immer etwas Besseres, immer etwas Schlimmeres. Und es ist immer eine Erfindung. Die überwiegende Mehrheit meiner Erfindungen geht in den Mülleimer der Geschichte, aber es besteht immer die Möglichkeit, dass ich etwas wirklich Cooles erfinde. Auch wenn im Vorbeigehen, auch wenn ich selbst keine Bedeutung darauf lege, spielt es keine Rolle. Jemand wird irgendwo anders sehen, dass die Branche einen neuen Standard erhält, der beginnt, unsere Probleme zu lösen. Nur diese Idee bringt mich dazu, Code zu schreiben.

Open Source hat auch viele der gleichen Projekte. Diejenigen, die das gleiche Problem lösen. Bist du bereit zu sagen, dass jeder, der sie macht, Dummköpfe ist? Ich bin nicht bereit. Wenn ich einen Stapel für die Serialisierung erstellen möchte, erhalte ich fünf oder sechs Top-Lösungen, von denen jede einzigartige Vorteile bietet. Manchmal ist einer dieser Vorteile für mich entscheidend. In solchen Momenten bin ich den Jungs, die sich für dieses „Fahrrad“ entschieden haben, sehr dankbar.

Wenn sie mir sagen, dass alles bereits in der Entwicklung erfunden wurde, frage ich: "Was, haben wir keine Probleme?".

Schreiben wir nicht ein tägliches Boilerplate? Nehmen wir die Automatisierung nicht immer wieder heraus, wenn wir unsere Dateien mit demselben Code füllen? Wir machen immer noch viel von dem, was die Maschine jetzt tun könnte. Und das tun wir, weil wir noch keine Ansätze erfunden haben, weil wir immer Stöcke in die Räder von Fahrrädern stecken.



Schau dir meinen Podcast an

All Articles