Heim Backend-Entwicklung Golang 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

Feb 27, 2020 pm 06:23 PM
go python

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Apr 01, 2025 pm 05:09 PM

Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Apr 01, 2025 pm 11:15 PM

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Können Python -Parameteranmerkungen Zeichenfolgen verwenden? Können Python -Parameteranmerkungen Zeichenfolgen verwenden? Apr 01, 2025 pm 08:39 PM

Alternative Verwendung von Python -Parameteranmerkungen in der Python -Programmierung, Parameteranmerkungen sind eine sehr nützliche Funktion, die den Entwicklern helfen kann, Funktionen besser zu verstehen und zu verwenden ...

Python Cross-Platform Desktop-Anwendungsentwicklung: Welche GUI-Bibliothek ist die beste für Sie? Python Cross-Platform Desktop-Anwendungsentwicklung: Welche GUI-Bibliothek ist die beste für Sie? Apr 01, 2025 pm 05:24 PM

Auswahl der Python-plattformübergreifenden Desktop-Anwendungsentwicklungsbibliothek Viele Python-Entwickler möchten Desktop-Anwendungen entwickeln, die sowohl auf Windows- als auch auf Linux-Systemen ausgeführt werden können ...

Warum kann mein Code nicht die von der API zurückgegebenen Daten erhalten? Wie löst ich dieses Problem? Warum kann mein Code nicht die von der API zurückgegebenen Daten erhalten? Wie löst ich dieses Problem? Apr 01, 2025 pm 08:09 PM

Warum kann mein Code nicht die von der API zurückgegebenen Daten erhalten? Bei der Programmierung stoßen wir häufig auf das Problem der Rückgabe von Nullwerten, wenn API aufruft, was nicht nur verwirrend ist ...

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Apr 01, 2025 pm 10:51 PM

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Wie lösten Python -Skripte an einem bestimmten Ort die Ausgabe in Cursorposition? Wie lösten Python -Skripte an einem bestimmten Ort die Ausgabe in Cursorposition? Apr 01, 2025 pm 11:30 PM

Wie lösten Python -Skripte an einem bestimmten Ort die Ausgabe in Cursorposition? Beim Schreiben von Python -Skripten ist es üblich, die vorherige Ausgabe an die Cursorposition zu löschen ...

Bieten Google und AWS öffentliche PYPI -Bildquellen an? Bieten Google und AWS öffentliche PYPI -Bildquellen an? Apr 01, 2025 pm 05:15 PM

Viele Entwickler verlassen sich auf PYPI (PythonpackageIndex) ...

See all articles