Heim  >  Artikel  >  Backend-Entwicklung  >  Gründe, Python aufzugeben und sich im Jahr 2021 für Go zu entscheiden

Gründe, Python aufzugeben und sich im Jahr 2021 für Go zu entscheiden

尚
nach vorne
2020-02-27 18:23:023762Durchsuche

In der vergangenen Zeit hat die chinesische Go-Sprache viele öffentliche Konten mit Python-Bezug beworben. Viele Menschen sind überrascht: Warum werden alle Python-Konten beworben? Tatsächlich ist der Hauptgrund, dass es zu viele öffentliche Konten in der Python-Kategorie gibt und viele davon sehr viele Fans haben. Ich bin auch ziemlich verwirrt. Aber es lohnt sich, daraus zu lernen, und sie zeigen auch, dass Go noch einen langen Weg vor sich hat.

Gründe, Python aufzugeben und sich im Jahr 2021 für Go zu entscheiden

Welches würden Sie zwischen Python und Go wählen? Wenn Sie ein tieferes Verständnis von Go (Golang) haben, werden Sie sich definitiv dafür entscheiden. Andernfalls wird Python ausgewählt. Also lasst uns darüber diskutieren. Python-Freunde, hier sind 5 Gründe, sich für Go zu entscheiden. Lassen Sie uns diesen Artikel gemeinsam lesen.

„Python ist sehr leistungsfähig, insbesondere Python 3 mit seinen asynchronen Fähigkeiten, aber Go wird in großen Unternehmen seinen Platz vollständig einnehmen …“

Wenn Sie wirklich … Wenn Sie das oben Gesagte verstanden haben, können Sie versuchen, die Programmiersprache Go zu verwenden. Ich denke, Go ist eine sehr einfache Programmiersprache, die sich an jede Anwendungsumgebung anpassen lässt, sogar einfacher als die Javascript-Programmierung. Dies ist wahrscheinlich der Grund, warum die Programmiersprache Go in den letzten Jahren populär geworden ist.

In diesem Artikel werde ich die folgenden Aspekte beider Sprachen vergleichen. Parameter in dieser Richtung helfen Ihnen bei der Entscheidung, welche Sprache für das jeweilige Projekt besser geeignet ist.

1. Leistung

3. Praktische Anwendung

5 >

6. Lesbarkeit des Codes

Die Homepage und API der Website TreeScale.com sind Webanwendungen, die auf einigen Analysetools basieren. Hier ist ihr Tech-Stack:

React.js Home Frontend

  • Django Python Home Backend and Authentication Service

  • Node.js API-Dienst

  • PostgreSQL-Datenbank, Cassandra-Protokollierungssystem

  • Benutzerdefinierte Containerregistrierung in Verwendung der Rust-Sprache

  • Python

  • Repustate ist fast ausschließlich ein Python-Shop. Sie verwenden Django, um ihre API und Website zu implementieren. Daher ist es (derzeit) sinnvoll, Python zur Implementierung der Arabic Sentiment Engine zu verwenden, um die Codekonsistenz aufrechtzuerhalten. Nur für Prototyping und Implementierung ist Python eine gute Wahl.

    Seine Ausdrucksfähigkeit ist sehr leistungsstark und auch Bibliotheken von Drittanbietern sind sehr gut. Wenn Sie mit Webdiensten arbeiten, ist Python die perfekte Wahl. Allerdings verlangsamt sich alles, wenn Sie Berechnungen auf niedriger Ebene durchführen und sich für Vergleiche stark auf Hash-Tabellen (Wörterbuchtypen in Python) verlassen. Wir konnten etwa zwei bis drei arabische Dokumente pro Sekunde verarbeiten, aber das war zu langsam. Im Vergleich dazu kann ihre englische Sentiment-Engine etwa 500 Dokumente pro Sekunde verarbeiten.
Wie Sie oben sehen können, basiert das Grundgerüst vollständig auf der Trennung von Microservices und Logik (Trennung von Front-End und Back-End) und wird sogar mit völlig unterschiedlichen Technologien umgesetzt.

Der Hauptgrund, warum sie den API-Dienst und das Backend in ein Projekt integrieren, besteht darin, dass sie an vielen Stellen ähnlich sind und in mehreren Sprachen oder Technologien mit viel doppeltem Code codiert sind. Schließlich müssen sie viel Zeit damit verbringen, die API-Dienste von Django zu personalisieren, insbesondere wenn es um die Anpassung von JSON-Antworten geht.

Ich finde die Verwendung von Django großartig, wenn Sie einige normale Anwendungen entwickeln, aber wenn Sie eine höhere Leistung und einige personalisierte Module benötigen, wird die Verwendung von Django komplizierter.

Warum Go-Programmierung wählen?

1. Kompiliert in einer einzigen Binärdatei

Golang ist eine kompilierte Sprache, in die die Entwickler von Googe viel Mühe gesteckt haben Es. Es verwendet statische Verknüpfungen, um alle relevanten Bibliotheksdateien und Module basierend auf dem Betriebssystemtyp und der Umgebung tatsächlich in einer einzigen Binärdatei zu kombinieren. Dies bedeutet auch, dass Sie eine Backend-Anwendung für ein Linux-Betriebssystem und eine X86-CPU-basierte Anwendung kompilieren möchten Sie laden einfach die kompilierte Binäranwendung auf den Server herunter und dann funktioniert die Backend-Anwendung ohne zugehörige Dateien.

2. Statisches Typensystem

Das Typensystem ist für groß angelegte Anwendungen sehr wichtig. Python ist eine großartige und unterhaltsame Sprache, aber manchmal treten seltsame Ausnahmen auf, wenn Sie versuchen, eine Variable als Ganzzahlvariable zu verwenden, obwohl sie tatsächlich vom Typ String ist.

Code wie dieser führt zum Absturz von Django.

Gründe, Python aufzugeben und sich im Jahr 2021 für Go zu entscheidenUnd Go kompiliert und teilt Ihnen mit, dass es sich um einen Compilerfehler handelt, wodurch Zeit für dumme Probleme gewonnen wird.

def some_view (request): user_id = request.POST.get ('id', 0)3. Optimierung (Leistung)

Überraschenderweise ist Go in den meisten Anwendungsszenarien besser als Python (Version 2 oder 3). Die Ergebnisse des Vergleichs können in Benchmarks eingesehen werden, was natürlich unfair ist und von der Art der Anwendung und dem Anwendungsfall des Benutzers abhängt.

Für uns verfügt Go über ein eigenes Multithreading-Modul und CPU-Skalierbarkeit, was zu einer höheren Leistung führt. Wann immer wir einige interne Anforderungen ausführen müssen, können wir sie mit Goroutine separat ausführen, was zehnmal Ressourcen spart als Threads in Python. Mit diesen integrierten Sprachfunktionen können wir viele Ressourcen (Speicher und CPU) einsparen.

4. Go erfordert kein Web-Framework mehr

Gründe, Python aufzugeben und sich im Jahr 2021 für Go zu entscheiden

Das ist eine coole Sache für eine Programmiersprache. Die Ersteller und die Community der Go-Sprache verfügen über viele integrierte Tools, die von der Kernsprache unterstützt werden, und in den meisten Fällen benötigen Sie keine Bibliotheken von Drittanbietern mehr. Es verfügt beispielsweise über integrierte http-, json- und html-Vorlagen. Sie können sogar sehr komplexe API-Dienste erstellen, ohne sich Gedanken über die Suche nach Bibliotheken von Drittanbietern auf Github machen zu müssen.

Natürlich verfügt Go auch über viele Bibliotheken und Frameworks zum Erstellen von Webprojekten. Ich empfehle jedoch, keine Bibliotheken von Drittanbietern zum Erstellen von Webprojekten oder API-Diensten zu verwenden, da diese in den meisten Fällen verwendet werden Standard-Bibliothekspakete werden Ihnen das Leben erleichtern.

5. Bessere IDE-Unterstützung und Debugging

IDE-Unterstützung ist eine der wichtigsten Überlegungen, wenn Sie versuchen, Programmiersprachen zu ändern. Freundliche IDEs können durchschnittlich 80 % der Programmierzeit einsparen. Das Go-Plugin für JetBrains IDEA bietet auch andere Unterstützung, z. B. (Webstorm, PHPStorm usw.). Dieses Plugin stellt alle in der Projektentwicklung benötigten Dienste bereit. Die leistungsstarke JetBrains IDEA kann Ihre Entwicklung leistungsfähiger machen, und Goland ist noch besser.

Wählen Sie „Gehen“ oder „nach Hause gehen?“

Mozilla stellt intern seine umfangreiche zugrunde liegende Protokollierungsarchitektur auf Go um, teilweise aufgrund leistungsstarker Goroutinen. Die Go-Sprache wurde von Leuten bei Google entworfen, und die Unterstützung der Parallelität hatte zu Beginn des Entwurfs oberste Priorität, anstatt wie bei verschiedenen anderen Python-Lösungen erst später hinzugefügt zu werden. Also begannen wir, von Python auf Go umzusteigen.

Obwohl unser Go-Code-Produkt noch nicht offiziell veröffentlicht wurde, sind die Ergebnisse ermutigend. Jetzt können wir tausend Dokumente pro Sekunde verarbeiten, verbrauchen weniger Speicher und müssen das in Python aufgetretene Problem nicht debuggen: ugly multiprocess/gevent/"Warum Control-C Prozesse nicht beenden kann".

Warum wir Go lieben?

Jeder, der auch nur ein bisschen weiß, wie Programmiersprachen funktionieren (Interpretation vs. Kompilierung, dynamisch vs. statisch), wird sagen: „Tch, natürlich ist Go schneller.“ Ja, wir könnten auch alles in Java neu schreiben und ähnliche und schnellere Verbesserungen sehen, aber das ist nicht der Grund, warum Go gewinnt.

Der Code, den Sie in Go geschrieben haben, scheint korrekt zu sein. Ich weiß nicht, was los ist, aber sobald der Code kompiliert ist (schnelle Kompilierungsgeschwindigkeit), hat man das Gefühl, dass der Code einfach funktioniert (nicht nur korrekt läuft, sondern auch logisch korrekt ist). Ich weiß, das klingt unzuverlässig, aber es ist wahr.

Dies ist Python in Bezug auf Redundanz (oder Nicht-Redundanz) sehr ähnlich. Es zielt zunächst auf Funktionen ab, sodass die funktionale Programmierung leicht zu verstehen ist. Klar, Go-Threads und -Kanäle erleichtern Ihnen die Arbeit, Sie erzielen große Leistungssteigerungen durch statische Eingabe und haben eine bessere Kontrolle über die Speicherzuweisung, aber Sie müssen nicht viel für die Ausdruckskraft der Sprache bezahlen.

Laut unserer Codestatistik haben wir nach dem Umschreiben des Projekts in Go den Code um 64 % reduziert.

Sie müssen keinen Code debuggen, der nicht vorhanden ist. Weniger Code bedeutet weniger Fehler!

Fazit

Go bietet uns große Flexibilität. Eine Sprache kann in allen Benutzerszenarien verwendet werden und funktioniert in allen Benutzerszenarien gut. Bei den Backend- und API-Diensten haben wir eine Leistungsoptimierung von 30 % erreicht. Jetzt kann ich Protokolle in Echtzeit verarbeiten, in eine Datenbank konvertieren und einen oder mehrere Dienste über WebSocket verwalten! Dies ist eine sehr leistungsstarke Funktion der Go-Sprache.

Weitere Go-Sprachkenntnisse finden Sie in der Spalte Go Language Tutorial auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonGründe, Python aufzugeben und sich im Jahr 2021 für Go zu entscheiden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:studygolang.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen