Warum Webentwicklung auf Go schöner ist als auf PHP

Für wen schreibe ich? Für diejenigen, die in PHP schreiben (möglicherweise auch Python, Ruby) und von Go gehört haben, sich aber noch nicht entschlossen haben, es genauer zu studieren. Ich werde Gründe nennen, warum es sich lohnt, diese Programmiersprache zu lernen, und warum die Zukunft darin in der Webentwicklung liegt.

Ich schreibe PHP seit ungefähr 12 Jahren und es ist eine ausgezeichnete Programmiersprache, 90% der Websites des gesamten Internets sind darauf geschrieben. Fast jedes beliebte CMS ist in PHP geschrieben.
Warum habe ich auf Go umgestellt?

Multithreading


Grundsätzlich ist hier alles klar. Multithreading bietet enorme Vorteile für eine Programmiersprache. In Go wird Multithreading sehr einfach und ausdrucksstark implementiert. Im nächsten Abschnitt werde ich die Vorteile aufzeigen, die sich auf die Entwicklung der Website auswirken.

Die Umwelt


Was brauche ich, um eine reguläre Seite in PHP zu erstellen?

Server unter Linux, installieren Sie Nginx, manchmal Apache, installieren Sie PHP, Erweiterungen, Datenbank, Memcache, konfigurieren Sie Cron. Um die Wartung des Servers nicht schmerzhaft zu machen, habe ich alles in Docker abgelegt. So sieht mein reguläres Docker PHP-Projekt aus.



Ist das bekannt?

Was benötigen Sie, um eine reguläre Website auf Go zu erstellen?

Server unter Linux und installieren Sie Go. Das ist alles. Cool Dies liegt daran, dass Go über mehrere Threads verfügt und alle Funktionen in einen separaten Stream verschoben werden können, z. B. einen Webserver, Mikrodienste, Warteschlangen, Kronen usw. Viele Dinge sind bereits in Basispaketen implementiert.

Wie sieht mein Docker-Projekt für Go aus? In der Tat existiert es überhaupt nicht. Ich lege Docker-Dateien direkt in den Ordner mit dem Site- oder Service-Code. Wenn die Site über zusätzliche Mikrodienste verfügt (z. B. zum Arbeiten mit Warteschlangen), wird die Docker-Datei in dem Ordner mit diesem Dienst abgelegt.



Eintrittsschwelle


Das Erlernen der Go-Sprache ist einfach. Sie können in ein paar Stunden durch die gesamte Dokumentation scrollen und das Prinzip der Sprache verstehen, ohne es zu vertiefen. Ich denke, Go hat die kürzeste Dokumentation populärer kompilierter Sprachen.

Auf der offiziellen Website können Sie eine Studienreise machen , die alle Aspekte der Sprache enthüllt.

Vertiefen Sie Ihr theoretisches Wissen in kürzester Zeit an die Profis. Ich empfehle Kurse von Mail.ru auf YouTube .

Lesbarkeit des Codes


Hatten Sie solche, dass Sie den Code, das Modul, das Plugin usw. einer anderen Person öffnen? und Sie verstehen, dass Sie nichts verstehen. Und um die Feinheiten zu verstehen, müssen Sie zumindest den Hauptcode mit Debug durchgehen.

Wenn Sie in Go in den meisten Fällen heftigen Code für 200 Dateien und jede Handtuchcodedatei öffnen, sind Sie überrascht, dass Sie ihn verstehen können.

IDE


Das Schreiben in der JetBrains-IDE unter PHP und unter Go ist völlig anders. Die automatische Vervollständigung funktioniert immer und überall (99% der Fälle). Sie können in jeder Methode scheitern, in jeder!

Es gibt überhaupt keine Bremsen. Mit Worten im Allgemeinen ist es schwer zu beschreiben, Sie müssen es versuchen. Wenn Sie anfangen, vollständig in Goland zu schreiben, verstehen Sie, dass Sie nicht mehr zu PhpStorm zurückkehren möchten.

Im vorletzten Jahr habe ich Dmitry Stogov nach Plänen gefragt, "natives" Multithreading in PHP einzuführen, und es sieht so aus, als würden wir es nicht sehen, aber es ist schade.

Debuggen und Testen


Viele PHP-Entwickler verwenden das Debuggen überhaupt nicht, da es separat als Erweiterung installiert werden muss, außerdem korrekt konfiguriert werden muss und viele sich nur nicht darum kümmern und die Ausgabe auf der Seite verwenden. In Go ist das Debugging integriert. Sie können nicht einmal herausfinden, wie es im Inneren funktioniert. Wenn Sie die IDE verwenden, setzen Sie einfach einen Haltepunkt und starten Sie das Programm.

Wenn die Tests ungefähr gleich sind, müssen Sie nicht das gesamte Framework mit dem Projekt verbinden, es ist bereits in die Basispakete und die IDE integriert.

Leistung


Go ist in Bezug auf Ausführungsgeschwindigkeit und Speicherverbrauch viel schneller als PHP. Ein Vergleich ist natürlich nicht korrekt, da Go eine kompilierte Sprache ist. Es gibt einen guten Artikel zum Vergleich der Produktivität bei Habré . Zum Beispiel habe ich einen Mirkoservice in einer vollständigen Docker-Umgebung, der früher 100 bis 200 MB RAM belegte. Der Wechsel zu Go dauert 1-2 MB. Die Geschwindigkeitssteigerung beträgt das 2-5-fache.

Zusammenfassung


Ich liebe PHP und werde weiterhin nach Bedarf darüber schreiben, aber Go war für mich eine Weiterentwicklung der Entwicklung, und wenn ich PHP von Grund auf neu schrieb, wurde es zur Go-Sprache.

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


All Articles