Bereits an diesem Samstag werden wir uns mit allen Rubisten auf der Hauptkonferenz zu dieser Technologie
treffen -
RubyRussia 2019 . Der 28. September steht vor der Tür und in diesem Interview wurden Fragen an
Xavier Noria vom Evrone-Entwickler
Pavel Argentov vorbereitet, und Schüler und Lehrer, mit denen er am Kurs „Internet Programming Languages“ an der MSTU arbeitet, halfen ihm.
Ein seltenes Foto vom letzten Besuch von Chavier in Russland - im RailsClub Moskau 2012Was ist Ihrer Meinung nach das interessanteste und wichtigste der jüngsten Ereignisse in der Welt des RoR?Ich denke, Rails 6 war eine beeindruckende Veröffentlichung. Neue Kernkomponenten, Unterstützung für mehrere Datenbanken, paralleles Testen; Ein neuer Bootloader, der den berühmten Rechen mit Autoload "in die Geschichte schickt".
Sie verdienen Ihren Lebensunterhalt mit Rails Consulting. Was hat Ihnen das als Programmierer gebracht?Meistens gab es mir Erfahrung und Bewusstsein, die gewöhnliche Arbeit nicht bieten kann. Beratung bereichert. Jedes Unternehmen und jedes Team ist anders. Sie stoßen auf verschiedene Geschäftsbereiche, Kulturen, Workflows, Architekturen, Funktionen und Vorlieben. Durch die Anpassung an mobile Umgebungen, die Aufgaben, die angegangen werden müssen, bleiben die Fähigkeiten zur Lösung geschärfter Probleme erhalten.
Wenn Sie mit der vorherigen Frage fortfahren, was sollten Rails-Entwickler aufgrund Ihrer Erfahrung beachten?Entwickler sollten Ruby und Rails zunächst so gut wie möglich kennen. Dies bedeutet, Bücher und Dokumentationen zu lesen und nicht verstreute Blog-Beiträge. Der Meister muss sein Instrument besitzen. Zum Beispiel müssen Sie SQL gut verstehen, damit Active Record ein Katalysator für den Prozess ist und keine Black Box. Verwenden Sie Active Record, um einfach und sicher SQL zu generieren, das sonst handgeschrieben wäre, und verarbeiten Sie die resultierenden Datensätze einfach. Ein gutes Verständnis von HTTP ist wichtig, da es die Sprache ist, die die Anwendung mit der Außenwelt spricht (einschließlich des Erinnerns an WebSockets). Es gibt viele andere Dinge zu beachten, aber ich würde besonders die Leistung erwähnen. Sie müssen wissen, wie man Benchmarks fährt, Sie müssen über GVL in der MRT und all das Bescheid wissen. Suchen Sie nach Ressourcen zu diesem Thema, studieren Sie sie und entwickeln Sie eine fundierte Intuition.
Ist Ruby wirklich die Sprache, die den Verstand des Programmierers verbessert? Wie kann man das Beste daraus machen?Ich persönlich bin solchen Verallgemeinerungen skeptisch gegenüber. Ruby reizt mich und Scala begeistert Scala-Programmierer. Ich mache seit einigen Jahren Perl und liebe ihn sehr, aber viele mögen ihn nicht. Unterschiedliche Gehirne haben Freude an unterschiedlichen Formalismen, selbst Ihre eigenen Vorlieben können sich im Laufe der Zeit ändern. Als Programmierer ist es besser, so viele Sprachen wie möglich und so viele Paradigmen wie möglich zu verwenden. Die Sprache, die mir den Kopf gebrochen hat, war Prolog. Das Paradigma, das mich am meisten beeinflusste, war „literarische Programmierung“ im Knuth-Stil. Wenn Sie diese völlig unterschiedlichen Programmiermethoden durchgehen, werden Sie besser. Ich finde Ruby besonders flexibel und auf hohem Niveau.
Ein hohes Niveau hilft, "näher an der Aufgabe" zu argumentieren. Das zieht mich zu Super-Hochsprachen (VHLL) an. Ich bin ausgebildeter Mathematiker und kann mit jedem Formalismus arbeiten, den sie pflanzen werden. Programmiersprachen sind hier Kinderspielzeug. Die Vollständigkeit stimmt beispielsweise nicht mit der praktischen Gleichwertigkeit überein. Um echte Probleme zu lösen, ist es schwierig, etwas Besseres als VHLL zu finden. Sie fühlen sich sehr leistungsfähig und produktiv, weil die künstliche Komplexität geringer ist und Sie sich besser auf die eigentliche Lösung des Problems konzentrieren können. Die Lösung echter Probleme hat mich dazu gebracht, eine Karriere als Programmierer zu verfolgen. Im Allgemeinen "wo C benötigt wird - nimm C".
Wir machen die Konferenz mehr "Ruby" als "on Rails". Welche Ruby-Anwendungen gibt es neben Rails oder sogar neben webdev?Wenn der Speicher mir recht tut, war das erste Ruby-Programm, das ich verwendet habe, der FreeBSD Port / Package Manager. Das war in den frühen 2000ern vor Rails. Beliebte Ruby-Software, die nicht direkt mit der Webentwicklung zusammenhängt, ist Vagrant, Metasploit, Jekyll, Chef, Puppet oder Homebrew. Darüber hinaus bestehen Systeme in Rails-Unternehmen selten nur aus einer Webschnittstelle. In der Regel gibt es ein ganzes Ökosystem von Software. Ein Unternehmen, dessen Hauptsprache Ruby ist, verfügt normalerweise auch über eine saubere Ruby-Backend-Software (möglicherweise in Verbindung mit anderen Technologien).
In dem Unternehmen, das ich derzeit mit Stuart Delivery berate, habe ich beispielsweise gerade einen Dienst implementiert, der Nachrichten von Kafka an Redis zur Verarbeitung durch Sidekiq-Mitarbeiter akzeptiert. Wir haben auch an einem nicht trivialen Datenmigrationsprojekt und an einem super interessanten Business-Emulator gearbeitet. Alles ist in reinem Ruby geschrieben. Das Frontend der Serverseite des Unternehmens ist Rails, aber hinter den Kulissen und auf der gesamten Plattform gibt es viel mehr verschiedene Programme und Sprachen. Dies kommt in meiner Praxis häufig vor.
Spoiler-Zeit - Worum geht es in Ihrem Bericht bei RubyRussia 2019?Ich werde über Zeitwerk sprechen, das neue Ruby-Juwel, das Autoload, Neustart und aktiven Start für Ruby-Projekte implementiert. Rails 6 delegiert diese Funktionen standardmäßig an Zeitwerk.
Was ist Ihr bester Eindruck von der Ruby-Welt? Vielleicht Code, Technologie, Wissen oder Einstellung?Dies ist ein subjektiver Eindruck, aber ich denke, die Welt von Ruby war überraschend innovativ. Wir haben vor einiger Zeit mit Terence Lee darüber gesprochen. Für den Anfang denke ich, dass es schwer ist, der Aussage zu widersprechen, dass Rails eine echte Revolution in der Webentwicklung darstellt. Firmen wie Heroku, New Relic, Shopify oder GitHub waren einfach revolutionär. Nach meiner Erfahrung sind Menschen, die sich hauptsächlich für bestimmte Gemeinden interessieren, teilweise blind für das, was in den Gemeinden in der Nachbarschaft geschieht. Ich bin sicher, dass Innovation in jeder Community zu finden ist, sei es in Scala, Haskell oder sogar in Brainfuck. Wenn ich also jede Community global beobachten könnte, würde ich feststellen, dass die Ruby-Community nicht besonders innovativ ist, weil sie alle auf die eine oder andere Weise innovativ sind.
Benötigt Rails Ihrer Meinung nach so etwas wie eine Standard-CMS-Komponentenbibliothek? Wie Gerüste für den Bau von Standard-CMS-Teilen?Meiner Meinung nach ist dies für Rails ein wenig unangebrachtes Thema. Lassen Sie mich diese Frage auch verwenden, um zu kommentieren, dass Gerüste nur eine kostengünstige Möglichkeit sind, eine schnelle Demonstration auf einer Konferenz durchzuführen oder eine Anwendung zu generieren, um etwas zu überprüfen, einen Fehler zu reproduzieren und zu sehen, wie eine bestimmte Funktion funktioniert. Ich habe noch nie Gerüste „im Kampf“ gesehen, sie sind nicht für den praktischen Gebrauch geeignet.
Moderne Lösungen sind im Allgemeinen heterogen: Wir können Julia für ML und Java für hohe geschäftliche Workloads verwenden. Bietet Ruby genügend Tools für die Sprachinteraktion? Gibt es Werkzeuge, um dies zu vereinfachen?JRuby kommuniziert nativ mit Java. Sie können C-Erweiterungen für die MRT schreiben, Sie können C-Bibliotheken mit FFI portabel verpacken und mit Helix können Sie Erweiterungen in Rust schreiben. Im Allgemeinen ist es einfacher, über das Dateisystem, Sockets, HTTP, Datenbanken, gRPC und Nachrichtenbroker auf standardmäßige Weise mit Prozessen zu kommunizieren.
Wie viele bemerkt haben, ist Ruby nicht mehr "neu und glänzend". Jetzt ist es mehr "gute alte Sprache". Studenten hingegen sind jung. Wie können sie ihr Interesse am Lernen von Ruby wecken?In den 2000er Jahren unterrichtete ich sieben Jahre lang in meiner Freizeit Perl an der Universität von Barcelona. Vor meinem Kurs beschäftigten sie sich hauptsächlich mit C und Java, und ich sprach über Skriptsprachen und Perl als Beispiel. Es hat viel Spaß gemacht. Wir brauchen ein faszinierendes Programm, das Programmieren lehrt, sich auf das konzentriert, was mit diesen Sprachen verfügbar ist, und das es Ihnen ermöglicht, sich mit einer bestimmten Auswahl zu befassen. Im Fall von Ruby reicht dies von einer einfachen OOP-Implementierung bis hin zu fantastischen Metaprogrammierungsfunktionen. Sie können beispielsweise zeigen, wie das Active Record-Modell ohne eine einzige Codezeile im Klassenkörper funktioniert.
Es stehen Dutzende von Programmiersprachen zur Auswahl. Warum Ruby wählen, warum nicht Python oder JavaScript, wie wäre es mit Clojure, Rust, C ++, Go? Alle Optionen sind umstritten oder umgekehrt - dies sind alles großartige Optionen. Wählen Sie einen aus, machen Sie den Kurs unvergesslich, bringen Sie die Schüler dazu, Programmieren, Best Practices und das Konzept der Redewendung zu studieren, lernen Sie, wie Sie die Dokumentation überprüfen und wichtige verwandte Themen untersuchen, die über den Formalismus hinausgehen. Dies ist es, was sie wachsen lässt und sie grundlegend auf den Beruf vorbereitet. Meiner Meinung nach ist dies die Rolle der Universität.
Es gibt viele verschiedene Tools für dasselbe: Rails Core mit Active Record, Dry-rb und anderen. Soll ich nach Alternativen suchen? Machen sie Rails nicht zu „Pfaden“ statt zu „Pfaden“?Dies hängt weitgehend von den individuellen Vorlieben ab. Sie sollten auf jeden Fall die Kombinationen von Werkzeugen, Ebenen und Mustern studieren und verstehen, die zu Ihnen passen. Es ist wichtig zu beachten, dass "Rails-Pfad" nicht "die gesamte Anwendung in die Standardordner kopieren" bedeutet. Dies ist ein weit verbreitetes Missverständnis. Willst du Dekorateure? Serviceobjekte, POROs? Großartig! Dies widerspricht nicht dem sogenannten „The Rails Way“. Rails bietet eine Reihe von Standardabstraktionen und die Organisation von Code, was unserer Meinung nach für viele Anwendungen zumindest als Ausgangspunkt ausreichend ist. Wenn Sie dann Controller-Aktionen als einzeilige Dateien schreiben möchten, die die gesamte Arbeit in Serviceobjekte entladen, können Sie dies tun. Einige mögen das vielleicht nicht. Unterschiedliche Menschen - unterschiedliche Gehirne.
Wir sehen uns bei RubyRussia!Denken Sie daran, dass die Konferenz bereits an diesem Samstag stattfindet und die
Registrierung noch offen ist.
Es wird nicht nur Berichte geben, sondern auch Stände der besten Unternehmen:
Veranstalter -
EvroneKomplementärin -
ToptalGold Partner -
GettSilberpartner -
Valarm ,
JetBrains ,
Bookmate und
CashwagonBronze Partner -
InSales