Lassen Sie uns das Web wieder großartig machen

Bild

Das moderne Web ist ein komplexes dynamisches System, das ständig in Bewegung ist. Wie in vielen Artikeln erwähnt, wird es sehr schwierig, alle Änderungen im Auge zu behalten, da fast täglich neue Tools und Frameworks erscheinen. Wissen wird obsolet, bevor es überhaupt Fuß fasst. All dies ist natürlich ein offensichtliches Ergebnis der schnellen Entwicklung und des Wachstums, aber dies erhöht die Komplexität für Webentwickler unweigerlich und erhöht die Schwelle für den Berufseinstieg.

Es kommt zu dem Punkt der Absurdität, dass Sie zuerst babel, dann das Webpack konfigurieren und dann die für das ausgewählte Framework spezifischen Einstellungen vornehmen müssen, um ein einfaches Formular zur Eingabe von Benutzerdaten zu erstellen ... Und dies sind wahrscheinlich zu viele neue Wörter für einen Neuling im Team, der mit dieser einfach aussehenden Aufgabe betraut wurde . Nein, höchstwahrscheinlich wird das Projekt bereits konfiguriert und konfiguriert sein, und der Anfänger wird sicherlich nicht allein der Gnade des Schicksals überlassen sein, das ihm kurz sagt, wofür. Es ist jedoch zu beachten, dass es wirklich zu kompliziert geworden ist und wir einen erheblichen Teil der Zeit mit all diesen Build-Systemen verbringen und mit der Konfiguration zu kämpfen haben.

Aber versuchen wir uns zu erinnern - war es schon immer so? Haben die Macher des Web von einer solchen Zukunft geträumt? Nein, verdammt noch mal und wieder nein! Immerhin war niemand, oft hässlich, voller Tricks und Tricks, aber das Web war anders - einfach und verständlich! Hier haben wir ein Skript hinzugefügt, hier ist ein Stil und hier ist unser Seitenlayout. Also, was ist schief gelaufen, ist wirklich alles so schlimm geworden? Schließlich wuchsen und verbesserten sich Javascript und das gesamte Web, die Sprache wurde stärker und ausdrucksvoller, Modularität trat auf, der Vorteil verschiedener Architekturvorlagen wurde offensichtlich, und doch - wo ist diese frühere Einfachheit? Haben wir sie wirklich für immer verloren?

Bild
(Herrlicher Spider-Man)

Die Antwort ist eigentlich ganz einfach und unkompliziert. Das Web ist wirklich gewachsen und komplizierter geworden. Jetzt ist es nicht ungewöhnlich, eine Multimedia-Anwendung, die vollständig für die Web-Technologie oder ein 3D-Spiel geschrieben wurde, in einem Browser zu finden, was vor 10 Jahren undenkbar war. Das Hauptproblem ist jedoch, dass wir oft vom Web wollen, dass es uns noch nicht zur Verfügung steht - die neuesten Technologien und Standards, experimentelle Architekturvorlagen, alles ist nur das Neueste und Modernste und natürlich sollte es überall und für alle funktionieren und bitte schnell . Und dann erscheint eine wilde Bande, die von einem Webpack angeführt wird, und beginnt, den Ball zu korrigieren. Und jetzt sind Sie bereits mit komplexen Konfigurationen beschäftigt und Ihr Projekt dauert ungefähr anderthalb Minuten und wiegt fünfzig Megabyte. Finito la comedia. Der Kampf mit der Konfiguration beginnt mit dem Versuch, mehr Leistung zu erzielen und die Größe zu reduzieren. Und welche Art der Entwicklung und Umsetzung von Ideen kann dann diskutiert werden, wenn wir den Löwenanteil der Zeit mit den Einstellungen am Fließband verbringen. Geben Sie zu, wer Ihr Team-Experte für Webpacks ist?

Bild

Wir sind daran nicht so gewöhnt, sondern haben uns darauf geeinigt, dass dies normal ist, aber wie sonst? Wir waren mit Typen und Rahmenbedingungen, Korporatismus und Sicherheit beschäftigt - man kann sich nicht einmal streiten. Aber wohin ging diese Leichtigkeit und Einfachheit des Experiments, für das diese schwach typisierte dynamische Sprache konzipiert wurde? Und alles, nicht ihrs, verschwand unter den Bergen von Bündeln und Unternehmungen. Aber wirklich nichts kann getan werden?

Es lohnt sich anzuhalten und nachzudenken, aber was machen wir und warum? Wenn wir Webpack, Rollup, Paket verwenden (nach Bedarf unterstreichen) und all diese unlesbaren Bundles erstellen, die selbst mit Quellkarten nicht debuggt werden können, braucht dies sicherlich jemand, oder? Ja, alles ist so, für eine schnelle und effektive Produktion aus Bundles kommt man nirgendwo hin und selbst das neue HTTP2 hat die Aufgabe nicht viel einfacher gemacht. Deshalb packen Entwickler an langen Herbstabenden im Büro, bleiben länger bei der Arbeit und verbrennen Hunderttausende Kilowatt Energie, packen in Abteilungen, packen in Unternehmen, packen auf der ganzen Welt und übertragen eine Verschiebung mit der Bewegung der Sonne. Es ist einfach so passiert, und so ist das Gesetz. Dura Lex, Sed Lex. Die wirklich Shakespeare-Frage ist also, ob man die Schuld trägt oder nicht - sie stirbt, bevor sie überhaupt Zeit hat, dem jungen Hamlet, der das visuelle Studio eröffnet hat, die Lippen zu brechen, um ein weiteres Meisterwerk zu stapeln.

Bild
(Alles ist in Ordnung)

Aber warten Sie, Sie sagten, dass dies alles für die Produktion notwendig ist, aber was ist mit der Entwicklung? Warum ist es unmöglich, sich wie in guten alten Zeiten bequem zu entwickeln, indem man einfach den Server startet und dann alles packt, bevor man es an die Produktion sendet? Und warum verwenden wir im Allgemeinen dieselben Werkzeuge für Produktion und Entwicklung? Warum nicht eine speziell auf die Entwicklung zugeschnittene Lösung verwenden, denn was wir tun, ist irgendwie nicht besonders logisch.

Und das ist wirklich nicht logisch, und wir tun es lieber ohne Alternativen oder einfach, weil wir daran gewöhnt sind. Aber was ist, wenn ich sage, dass Sie eine Wahl haben?

Bild

Lernen Sie hq kennen - einen spezialisierten Server für die Entwicklung von Webanwendungen. hq ist ein statischer Server für Steroide, der alles versteht, was ein normaler Server nicht verarbeiten kann. Möchten Sie die neueste Funktion aus dem Javascript-Standard, aber Ihr Browser unterstützt sie noch nicht? - bitte! Ihre Bibliothek verwendet das CommonJS-Format - kein Problem! Mit den verschiedenen Werkzeugen, die für die Arbeit mit den einzelnen Frameworks geschärft wurden, unterstützt hq sie alle sofort. hq ist so cool, dass es keine Konfiguration erfordert, es funktioniert einfach und macht seinen Job. Kein Paket, alles ist anders als deins, hq erfordert WIRKLICH keine Konfiguration, es existiert einfach nicht, also gibt es keinen Ort, an den man gehen kann. Installieren Sie es einmal

npm install -g @hqjs/hq

Führen Sie dann einen Befehl im Stammverzeichnis des Projekts aus, um sofort mit dem Experimentieren zu beginnen

hq

Sie sagen, die alte Bande hat uns ungefähr das Gleiche angeboten, vielleicht etwas mehr Konfiguration, etwas weniger einfach, aber alles ist sehr ähnlich. Warum brauchen wir diesen neuen Chuck Norris in der Welt der Jungfrauen? Und dann werde ich Ihnen mit dem neuen Motto des Hauses Greyjoy antworten: „Wir sind kein Bandit!“. Ja, wir sind keine Gangster!

Bild
(Haus Greyjoy. Wir säen kein Bundlem)

Hallo, ich bin seit meinem 13. Lebensjahr in der Webentwicklung tätig und habe mit 19 Jahren angefangen zu schlagen. Mein Freund hat mich davon begeistert, als ich in seine Garage ging, wo er Tage und Nächte zum Fliegen schlug. Ich fragte, was machst du? Und er sagte, dass dies eine neue Sache ist, es ist jetzt sehr modisch und cool und ich muss es definitiv versuchen. Zuerst habe ich nur die Dateien geklebt, dann habe ich ein kleines Bundle mit dem Closure Compiler ausprobiert und dann konnte ich nicht mehr aufhören. schlucken, browserify und dann webpack ... Meine Bundles wurden schwieriger. Ich wusste nicht, wie ich aufhören sollte, ich fiel in einen Kreislauf, der mir nicht erlaubte zu gehen. Jedes Mal, wenn ich zu einem neuen Projekt kam, schlug dort bereits jemand zu und es war einfach unmöglich, dies abzulehnen. Kein Bandit war nicht prestigeträchtig! Leute aus dem Beruf und sogar enge Freunde weigerten sich zu kommunizieren und riefen mich nicht zurück, als sie herausfanden, dass ich aufhören möchte. Es gab also keinen Ort, an den man gehen konnte. Aber jetzt bin ich sauber! Ich bin während der Entwicklung kein Bandit mehr! Meine Freunde und Bekannten haben aufgehört, mit mir zu schlagen, jetzt wird dies in unserer Firma nicht akzeptiert. Und weißt du was? Ich habe mich noch nie so gut gefühlt! Die Welt begann endlich mit neuen Farben zu spielen und die Zeit begann sowohl für die Arbeit als auch für die Familie.

Im Ernst, das Fehlen von Bündeln vereinfacht das Leben erheblich. Denken Sie an unerträgliche Situationen, in denen es unmöglich ist, nicht nur den Ausdruck, sondern auch die gewünschte Linie mit einem Haltepunkt zu versehen! Oder diese Variablennamen, die vom Webpack __webpack __ @ #% ^ $ generiert wurden !!! Wenn Sie sie lesen, ist es nicht überraschend, Satan anzurufen, aber Sie möchten sie nicht an die Konsole und den Feind schreiben und was das Gegenteil ist, das sie hinter normalen menschlichen Namen verbergen. Ratet mal, was noch. Im Allgemeinen wird das Debuggen oft zur Hölle, selbst bei vollständigen Quellkarten. Wie oft am Tag schwören Sie Code in node_modules? Wie viele Flüche fallen den unglücklichen Entwicklern von React und Angular auf den Kopf, weil es unmöglich ist, die Fehlermeldung zu verstehen, und wo tritt dieser Fehler auf? Nachdem wir zu hq gewechselt waren, haben wir das alles als Albtraum vergessen. Es gibt wirklich mehr Zeit, jetzt müssen Sie nicht mehr rätseln, warum es nicht funktioniert oder einfach nicht funktioniert und woher wir diese Bibliothek mit zehn Megabyte im Build haben. Jetzt können Sie klar sehen, wo! Es gab weniger Leiden, die Arbeit ist einfacher geworden und es stellt sich heraus, dass es ein Vergnügen ist.

Bild
(Diese Person ist Varg oder verändert die Haut, er kann das Bewusstsein von Tieren durchdringen. Jetzt schwebt er mit dem Adler und sucht den Feind.)

Das Beste daran ist, dass hq nicht neu und komplex erscheint, es fühlt sich an, als wäre er immer bei uns gewesen, alles ist so einfach und vertraut. hq ist ein statischer Server, der Sie nur versteht. Der Start eines neuen Projekts wird unglaublich schnell, ein Befehl in der Konsole und Sie können mit dem Experimentieren beginnen. Frameworks, Bibliotheken, Formate, architektonische Ansätze - all dies schafft keine Barrieren mehr, mit hq funktioniert alles wie früher, schnell, einfach und logisch! Außerdem das hq Open Source- Projekt, damit Sie jederzeit etwas verbessern oder Unterstützung für ein neues Format hinzufügen können.

Ehrlich gesagt haben wir Fehler gefunden. Früher, als das Zusammenbauen mit dem Webpack einige Minuten dauerte, war es eine wunderbare Ausrede, in der Küche nach einer Tasse aromatischen Kaffees zu suchen, aber jetzt funktioniert alles so schnell, dass dafür einfach keine Zeit bleibt. Muss man nach einer Entschuldigung für guten Kaffee suchen?

Bild

Wie funktioniert das alles? Dies könnte den Eindruck erwecken, dass hq ein kräftiges Monster ist, das von Dr. Frankenstein aus einer Vielzahl unterschiedlicher und inkohärenter Teile gewebt wurde, die mit etwas schwarzer Magie gewürzt sind. Tatsächlich ist aber alles ziemlich harmonisch und einheitlich. hq verteilt jede Datei auf Anfrage einzeln, genau wie ein normaler statischer Server. Dies gibt uns nur eine begrenzte Möglichkeit, nicht verwendeten Code ohne vollständiges Schütteln des Baums zu entfernen, spart jedoch viel Zeit, die für die Abhängigkeitsanalyse aufgewendet wurde. Alle Transformationen erfolgen sofort und im laufenden Betrieb. Darüber hinaus wird nur das notwendige Minimum transformiert. Wenn Sie einen modernen Browser verwenden und sich an Webstandards halten, ist es unwahrscheinlich, dass Ihr Code überhaupt geändert wird. Sie können sich zwar auf Standards verlassen, es gibt jedoch keine Garantie dafür, dass die Bibliotheken, an die Sie so gewöhnt sind, dasselbe tun. Die meisten von ihnen werden wahrscheinlich im CommonJS-Format geliefert, wodurch sie nicht so wie sie sind im Browser arbeiten können. hq kümmert sich darum und konvertiert commonjs-Module in das ESM-Format, verarbeitet nicht Standard-, sondern gängige Importe (wie CSS oder JSON) und zerstört die importierten Objekte bei Bedarf. hq arbeitet mit einem Webbrowser zusammen und verwendet sein Caching-System, um die Bereitstellung von Assets zu beschleunigen und nur geänderte Dateien zu übertragen. Die Seite wird automatisch neu geladen, wenn Sie Ihren Code ändern, sodass Sie das Ergebnis der Änderungen sofort auswerten können. hq kann mit vielen Frameworks arbeiten, hängt jedoch nicht von deren Code ab. Stattdessen führt hq eine Reihe von AST-Transformationen mit Babel-Plugins durch, die speziell für hq erstellt wurden, um die Vielfalt der in der Entwicklung verwendeten Technologien und Ansätze zu verstehen und in einen einzigen vom Browser unterstützten Standard umzuwandeln.

Trotz aller Schwierigkeiten und Herausforderungen, die das moderne Web mit sich bringt, kann die Projektentwicklung einfach und intuitiv bleiben, so wie es zu Beginn der Web-Technologie war. Probieren Sie hq jetzt aus, um Ihre Entwicklungserfahrung in einem alten Projekt zu verbessern, oder verwenden Sie es, um ein aufregendes neues Projekt zu erstellen!

npm install -g @hqjs/hq

Source: https://habr.com/ru/post/de428864/


All Articles