Wie ich Ruby zugunsten von Python aufgegeben habe, als ich an einem Backend gearbeitet habe



Wir haben einen Artikel von Benoit Zen, einem Softwareentwickler bei Sqreen, für Sie übersetzt. Benoit arbeitet an einem Backend-Webdienst und hat kürzlich von Ruby zu Python gewechselt.

Im Jahr 2008, als ich noch als Softwareentwickler studierte, beschlossen zwei meiner Freunde, eine Firma zu gründen, die sie Feedbooks nannte. Ihr Ziel war es, hochwertige elektronische Bücher zu erstellen, die jeder schnell finden und herunterladen konnte (falls gewünscht, mit Freunden teilen). Das Projekt wurde ihnen als digitale Samizdat-Bibliothek vorgestellt.

Die Website, die zum Gesicht des Dienstes werden sollte, musste schnell, effizient und einfach zu verwalten sein. Zu dieser Zeit erschien ein Ruby on Rails-Demo-Video mit dem Titel „So erstellen Sie ein Blog in 15 Minuten“. Danach beschlossen die Gründer, damit zu arbeiten.

Skillbox empfiehlt: einen zweijährigen praktischen Kurs "Ich bin ein PRO Web Developer".

Wir erinnern Sie daran: Für alle Leser von „Habr“ - ein Rabatt von 10.000 Rubel bei der Anmeldung für einen Skillbox-Kurs mit dem Promo-Code „Habr“.


Ein paar Wochen später brauchten sie Hilfe und wandten sich an mich.

Wie viele Entwickler meiner Generation habe ich mit PHP und MySQL gearbeitet und manchmal sogar meinen Anteil zum Open Source CMS hinzugefügt. Alles war mir bei der Aufgabe sehr vertraut, außer Ruby. Ich habe noch nie von ihm gehört (nicht vergessen, wir sprechen über 2008, Anmerkung des Übersetzers). Im Allgemeinen begann ich mit Ruby zu arbeiten und verbrachte die nächsten zehn Jahre damit.

Warum Ruby?


Tatsache ist, dass dies eine sehr ausdrucksstarke Sprache ist. Sein Hauptentwickler wollte Programmierer bei der Arbeit mit Ruby glücklich machen. Und er hat seinen Weg gefunden. Fast jedes Element hier ist ein Objekt. Die virtuelle Ruby-Maschine übersetzt die Syntax in eine reale Anweisung. Es wird ständig verbessert, sodass der generierte Code mit jeder neuen Version besser wird. Ruby ist einfach zu analysieren, zu ändern oder sogar spezielle Schnittstellen zu erstellen.

Ruby on Rails ist im Kern eine DSL-Suite und -Infrastruktur zum einfachen Erstellen modellgetriebener Webanwendungen. Heute ist es besonders angepasst und gut für die Erstellung von Anwendungen geeignet, bei denen Geschäftslogik und Modellierung eine wichtige Rolle spielen.

In meiner Sqreen-Firma habe ich mit Ruby am Backend gearbeitet. Aber dann kam ziemlich schnell die Entscheidung, Python zu verwenden.

Liebe Ruby, aber wechsle zu Python, warum?


Erstens besteht unser Backend aus mehreren Diensten, von denen einige für die Welt offen sind, andere nicht. Das erste, was ein Kunde sieht, ist eine statische Unternehmenswebsite, die mit Jekyll generiert wird. Dann öffnet sich die Symbolleiste - dies ist eine dynamische React-Anwendung. Das Panel arbeitet mit einer dedizierten API, wir nennen es "Backend für die externe Schnittstelle". Er ist unser wichtigster.

Zunächst wurde beschlossen, die API nicht in verschiedenen Sprachen zu schreiben, da wir möchten, dass alle bestimmten Geschäftslogiken und -modellen entsprechen. Darüber hinaus haben wir gleich zu Beginn der Reise festgestellt, dass zumindest das Backend für Agenten leicht skalierbar sein sollte, um einen wachsenden Kundenstamm zu unterstützen.

Leider war Rails zu langsam. Natürlich ist er nicht der einzige, es gibt viele Mikroframes für Ruby, einschließlich des berühmten Sinatra.

Trotzdem haben wir uns für Python entschieden. Es gibt zwei Hauptgründe. Erstens war unser Leitfaden damit vertraut, da viele Produkte zuvor in Python entwickelt wurden. Zweitens brauchten wir eine gründliche Datenanalyse, mit der Ruby nicht sehr gut zurechtkommt. Und die Wahl war offensichtlich.

Erste Schritte mit Python


Zu diesem Zeitpunkt hatte ich fast keine Erfahrung mit Python - früher habe ich nur kleine Skripte darauf geschrieben, die zur Gesamtimplementierung des Projekts beigetragen haben. Ich musste alles in der Entwicklung der API, an der wir gearbeitet haben, schnell beherrschen und beschleunigen. Glücklicherweise hängen die grundlegenden Komponenten nicht davon ab, welche Sprache Sie verwenden: HTTP / HTML / JSON / REST - alle bleiben gleich. Die Fähigkeit von Anwendungen, auf einer niedrigeren Ebene mit dem Web zu kommunizieren, wird in Ruby mithilfe von Rack implementiert. Wie sich herausstellte, wurde Python viel Rack entnommen, daher war es nicht sehr schwer zu arbeiten.

Aber was ist mit der Sprache? Ruby ist eine objektorientierte Sprache, Python ist auch objektorientiert. Dennoch ist der Unterschied zwischen den beiden Sprachen erheblich. Ruby beschreibt Blöcke also mit Schlüsselwörtern. In Python werden dafür Leerzeichen verwendet. Ich musste mich daran gewöhnen und ich bevorzuge den Ruby-Pfad mit seinem Anfang / Rettung / Ende. Mit Python können Sie jedoch effizienteren Code schreiben, der schnell funktioniert.

Was habe ich persönlich getan, um die Python-Syntax schnell zu verstehen? Die Hauptsache - ich habe angefangen, mit Python Koans zu üben. Es ist ein Open-Source-Projekt, mit dem Sie Python lernen können und das immer komplexere Unit-Tests bietet.

Python Koans stellt die verschiedenen Funktionen der Sprache vor. Die Dokumentation hier ist sehr detailliert.

Außerdem studiere ich auch Python-Dokumentation - sie ist in dieser Sprache äußerst umfassend. Die Sprache ist in Module unterteilt, die jeweils eine ausführliche Erläuterung enthalten. Es enthält die Antwort, warum das Modul existiert, welches Problem es zu lösen versucht und wie all dies implementiert werden kann.

Ratschläge für diejenigen, die zu Python wechseln möchten


Wenn Sie ein Ruby-Entwickler sind, der erwägt, zu Python zu wechseln, tun Sie es einfach, es könnte Ihnen gefallen. Sie müssen sich zwar daran erinnern, dass Sie viele Funktionen der Sprache beherrschen müssen, bevor Sie neue Möglichkeiten eröffnen. Ein guter Ausgangspunkt ist das interaktive Tutorial und die Dokumentation. Darüber hinaus sollte das Training durch Übung unterstützt werden. Es lohnt sich, sofort mit der Implementierung einer realen Anwendung zu beginnen.
Skillbox empfiehlt:

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


All Articles