Interview mit Markus Schirp, RubyRussia Conference Speaker

    Hallo an alle! Etwas mehr als eine Woche später wird in Moskau eine RubyRussia- Konferenz stattfinden . In einem heutigen Interview sprach Evrone- Entwickler Mikhail Morgunov mit einem unserer Sprecher, Marcus Schirp , dem Erfinder des beliebten Tools Ruby Mutation Testing .


    Die erste Frage betrifft Mutant . Was müssen wir über dieses Tool wissen? Was wird der Bericht über RubyRussia sein?

    Ich werde die Geschichte erzählen, wie man ein Werkzeug für Mutationstests erstellt - Mutant. Ich möchte das Publikum mit den wichtigsten Konzepten vertraut machen: Die Menschen lernen verschiedene Ebenen der Berichterstattung, ihre Bedeutung und ihren Wert kennen.

    Dies wird ein Licht auf die Dinge in Ruby werfen, die wir gewohnt sind und für richtig halten, aber tatsächlich haben sie Probleme. Weil Ruby uns sehr oft die Möglichkeit bietet, sich in den Fuß zu schießen.

    Wie haben Sie angefangen, Mutant zu entwickeln?

    Diese Geschichte bezieht sich auf meine Arbeit an DataMapper und dessen nächste Implementierung, DataMapper 2, die schließlich als ROM bezeichnet wurde. Projekt Dan Kubb hat eine relationale Algebra-Bibliothek namens Axiom geschriebenum diese neuen Entwicklungen zu unterstützen. Als er Axiom schrieb, benutzte er die Strategie der "Entwicklung mit Einschränkungen". Es enthält viele Tools zum Arbeiten mit Metriken und Mutationstests.

    Das Werkzeug, das wir dann für Mutationstests verwendeten, hieß Hackle. Er hatte gewisse operative und konzeptionelle Mängel. Einmal dachte ich: „Verdammt, ich werde nicht einmal versuchen, es zu reparieren! Lassen Sie uns einfach eine neue schreiben und alle Skalierungsprobleme des Mutationstests lösen, die wir in DataMapper2 haben. "

    Das war vor fünf oder sechs Jahren, seit Mutant mehrere Iterationen durchlief. Alle sind nicht mit meinem Wunsch verbunden, Open Source zu schreiben, sondern mit den Anforderungen kommerzieller Projekte, an denen ich gearbeitet habe. Die Entwicklung von Mutant hängt also stark von meiner Beratungstätigkeit ab.

    Bei jedem neuen Ruby-Projekt muss ich mich auf jeden Code verlassen. Und Mutant ist das Werkzeug, das ich dafür verwende.

    Kommerzielle Kunden möchten also Mutant verwenden?

    Ja Dies wird durch die Tatsache bestätigt, dass alle Funktionen, die Sie sehen, Funktionen sind, die gewerbliche Kunden in den letzten Jahren von mir verlangt haben. Es gibt einige Funktionen, die nicht in der öffentlichen Version enthalten sind, da der Client mir nicht das Recht gab, ihren Quellcode zu öffnen. Aber manchmal sagt der Kunde: "Kein Problem, wenn jemand davon profitiert", was ich sehr mag.

    Im Moment habe ich DataMapper2 verlassen. Ich habe nie Features geschrieben, nur zum Spaß. Dies sind nur Nebenwirkungen der kommerziellen Nutzung.

    Ich persönlich bin nicht in Ruby verliebt, es ist nur ein Werkzeug für mich. Mutant ist ein Weg, um Ruby effizienter zu machen. Die Schwelle für den Eintritt in den Mutanten ist sehr hoch, aber wenn Sie anfangen, hilft das sehr. Das Bedürfnis nach Lernen ist etwas, mit dem man sich versöhnen kann.

    Es ist in der Reihenfolge der Dinge, wenn Sie einen kostenlosen Edelstein verwenden :)

    95% der kostenlosen Edelsteine ​​sind nur Hobbyprojekte. Sie sind nicht für den gewerblichen Gebrauch geeignet. Autoren machen sie aus persönlichen Interessen. Ich beschuldige sie nicht. Ich empfehle jedoch Entwicklerteams für kommerzielle Projekte, sich daran zu erinnern, wenn sie etwas von RubyGems mitnehmen.

    Ich lese nur die Mutant README-Datei auf GitHub. Aber bisher wenig verstanden.

    Aus diesem Grund muss ich etwas mehr Zeit für das Schreiben der Readme-Datei und zusätzlicher Einstiegsunterlagen aufwenden.

    Aus persönlichen Gründen habe ich drei Jahre in der Gemeinde geschwiegen: Ich hatte zwei weitere Kinder, ich zog in ein anderes Land.
    RubyRussia ist die erste Konferenz nach der Pause, wenn ich mit der Community sprechen kann. Ich möchte die Zeit, die ich für die Vorbereitung meines Berichts und meines Workshops aufwenden, als Materialquelle für zusätzliche Dokumentation nutzen.

    Was erwartet uns?

    Der 6. Oktober wird ein Bericht über Mutant und der 7. Oktober - Workshop sein. Es basiert auf realen Beispielen aus einem Open Source-Projekt, das Rails und Rspec verwendet.

    Soweit ich verstehe, verwenden Sie eine andere Programmiersprache, nicht Ruby?

    Das ist nicht ganz richtig. Ich benutze oft Ruby, aber nur wenn es einen guten Grund dafür gibt. In der Regel handelt es sich hierbei um die Rettung älterer Anwendungen, die unter dem Gewicht ihres eigenen Codes kurz vor dem Zusammenbruch stehen.

    In dieser Ausführungsform können Sie nicht einfach Ruby in einem Schritt ersetzen. Inkrementelles Refactoring / Würgen von Ruby-Code ist meine Hauptaufgabe. Und während dieses Prozesses werden meine Hände in Ruby gebeugt, und hier ist Mutant mein Hauptwerkzeug zum Bündeln von Refactoring- / Wechselzyklen.

    Welche Sprachen bevorzugen Sie?

    Grundsätzlich Haskell. Jetzt ist es für mich die ausgewogenste Sprache hinsichtlich Benutzerfreundlichkeit und Eignung für die Entwicklung von Programmen mit kommerziellem Wert. Der Haskell Type Checker garantiert viele Eigenschaften sofort. Eigenschaften, für die ich in Ruby kämpfen müsste.

    Es gibt ein paar andere coole Sprachen und Erweiterungen am Horizont. Ich denke, dass abhängige Typen „die Richtigkeit nach einer Typprüfung“ auf eine neue Ebene bringen.

    Glaubst du, Ruby und Rails haben eine Zukunft?

    Ruby und Rails haben eine niedrige Einstiegsschwelle, die Menschen hilft, schnell einen Punkt zu erreichen, an dem eine Anwendung Geld verdient. Während die Menschen glauben, dass Ruby und Rails diese Qualität haben, haben diese Technologien eine Zukunft.

    Kleine häretische Aussage: Rails-Anwendungen können aufgrund der vom Framework übernommenen Komplexität aufgrund der von den Erstellern der Sprache und des Frameworks getroffenen Entscheidungen nicht wachsen. Diese technische Pflicht ist jedoch in Ordnung, wenn Sie einen geschäftlichen Grund dafür haben. Halten Sie einfach einen Tilgungsplan für diese Schulden bereit.

    Was denkst du über Rust?

    Ich mag ihn wirklich Jetzt benutze ich es nicht oft - es gab keinen triftigen Grund, da die Arbeitsprojekte nichts von den Vorteilen von Rust im Vergleich zu anderen Optionen bekommen konnten, die ich hatte.

    Ich mache hauptsächlich Backend-Entwicklung. Oder nennen Sie es "massiver RPC mit Subjektlogik". Hier ist zunächst einmal die Korrektheit des Programms und nur das zweite - seine Leistung zu gewährleisten. Rust ist rechnerisch sehr effizient, erfordert jedoch eine manuelle Kontrolle von Details auf niedriger Ebene. Dies erfordert Zeit, die besser für die Optimierung von E / A-Mustern auf hoher Ebene (RPC-Gruppierung, Minimierung von Roundtrips, Überprüfung der Transaktionseigenschaften usw.) aufgewendet wird. Es ist besser, dies zu tun, bevor die einzelnen Primitive auf Kosten der Sprache optimiert werden, was mir mehr Möglichkeiten zur Optimierung gibt.

    Wenn ich etwas rechenintensiver mache, zum Beispiel einen Videocodec, wäre Rust das Werkzeug, das ich gewählt habe.

    Und die letzte Frage. Was können Sie neuen Programmierern empfehlen?

    Suchen Sie als Programmierer für Anfänger ein Haustierprojekt und integrieren Sie es mit Interessen außerhalb der Programmierung. Dies ist notwendig, um lange genug leidenschaftlich zu sein, bis das Studium der Programmierung anfängt, Geld einzubringen.

    Sehr interessant! Das sollte funktionieren!

    Ja, genau so habe ich angefangen :)

    Toller Rat! Danke für das Interview! Wir sehen uns bei Ruby Russia.

    Wir erwarten Sie auch auf der Konferenz! Übrigens sind noch weniger als 30 Tickets verfügbar. Daher empfehlen wir nicht, die Registrierung zu verschieben, wenn Sie sich entscheiden, zu gehen. Und wenn Sie sich gründlicher in Mutant eintauchen möchten, warten wir am 7. Oktober in der Werkstatt von Marcus. Alle Details auf der Website .

    Sie können das Original in englischer Sprache unter hype.codes lesen .

    Und hier möchten wir den hervorragenden Unternehmen danken, die das Ruby-Hauptereignis in Russland unterstützen:

    General Partner - Toptal
    Gold Partners - Gett und Cookpad
    Silver Partners - Instamart , UCHi.ru , JetBrains und Qlean
    Bronze Partners - Bookmate und InSales

    Jetzt auch beliebt: