window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = Fenster if (w.LeadBooster) { console.warn('LeadBooster existiert bereits') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Eisenbahnen und andere Transportmittel - The Codest
Der Codest
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Branchen
    • Fintech & Bankwesen
    • E-commerce
    • Adtech
    • Gesundheitstechnik
    • Herstellung
    • Logistik
    • Automobilindustrie
    • IOT
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
Pfeil zurück ZURÜCK
2021-06-30
Software-Entwicklung

Eisenbahnen und andere Transportmittel

Der Codest

Krzysztof Buszewicz

Senior Software Engineer

Rails ist ein Rack-kompatibles Framework, das auf die schnelle Entwicklung von Anwendungen ausgerichtet ist. Leider führen der "Alles-aus-der-Box"-Ansatz und das blinde Rails-Verhalten oft dazu, dass der Anwendungscode an Qualität verliert, sowohl in Bezug auf seine Rezeption (Lesbarkeit) als auch auf seinen Betrieb.

Beliebte Rails und Rails-way Probleme

Probleme erwähnt in: Artikel über Shopify

  • Routenplanung,
  • Vorher-Aktionen,
  • große Aktionen in Controllern,
  • private Methoden in Controllern,
  • Mixins einmal verwendet,
  • Logik in den Ansichten,
  • ActiveRecord-Rückrufe,
  • Assoziationen,
  • "fette Modelle".

Zusätzliche Probleme

  • Aktive Datensatzvalidierungen,
  • implizit vor explizit,
  • Missbrauch von DRY,
  • Delegationen an Verbände,
  • Dienstaufrufe in Modellen.

Alternativen zu Rails

Wenn es darum geht Schiene im Rubinrot Welt, haben wir mehrere Alternativen. Andere auf Rack basierende Frameworks sind: - Sinatra, – Roda, – Hanami.

Was macht sie einzigartig?

Sowohl Sinatra als auch Roda bieten uns eine Block-Routing-Syntax, aber das Routing in Sinatra ist eine Liste und in Roda - ein Baum. In beiden Frameworks müssen wir uns selbst um die Implementierung der Modellschicht kümmern. Im Falle von Roda ist es eine gute Idee, das Sequel-Gem zu verwenden.

Roda ist von Sinatra inspiriert. Es ist an sich sehr leicht, aber es hat eine Menge Plugins.

Hanami ist am nächsten an Schiene wenn es um die Bereiche geht, die von der Rahmenregelung abgedeckt werden. Die wichtigsten Unterschiede in Bezug auf die Nutzung sind:

  • Kontrolleure in Schiene vs. Handlungen in Hanami,
  • dedizierte Klassen/Objekte, die eine bestimmte HTTP-Anfrage bearbeiten, nicht ein Controller für Aktionen im Zusammenhang mit einer bestimmten Ressource (Modell),
  • Modellschicht auf der Grundlage von Repositories und Entitäten, die die Persistenz vom Rest der Anwendung trennt, und nicht das aktive Datensatzmuster.

Hanami Version 1 stark begrenzt die Verwendung von ROM es basiert auf (Version 3, und es ist bereits 5), so ist es nicht wert, mit dem Modell Schicht dort vorgeschlagen. Da es sich jedoch um ein sehr offenes Framework handelt, ist es recht einfach, dort das Modell selbst zu implementieren.

Ergänzungen für Rails

Es lohnt sich, Lösungen zu verwenden, die nicht abhängig sind von Schiene und sind näher an "rein" Rubinrot. Die in der Präsentation genannten Instrumente sind:

  • Sequel (ORM, Alternative zu ActiveRecord),
  • ROM (Objekt-Mapper),
  • dry-rb-Bibliotheken: dry-validations, dry-system und dry-monads.

Sequel lässt sich leicht in ein ProjektEs basiert auf Plugins und implementiert auch das aktive Datensatzmuster. Sie bietet eine bessere Unterstützung für Abfragen auf niedriger Ebene als Schiene' ActiveRecord.

ROM verwendet Sequel, aber sein Konzept besteht darin, zwischen Datensätzen in der/den Datenbank(en) und Rubinrot Objekte. Es zielt auf Geschwindigkeit und Datentransformation ab. Sie trennt die Persistenzschicht klar von der Anwendung.

Dry-rb-Bibliotheken sind sehr nützliche Werkzeuge:

  • dry-validation ist in API-Projekten sehr einfach zu verwenden und ermöglicht eine umfassende Kontrolle über die Korrektheit der eingehenden Daten,
  • dry-system erfordert ein wenig Übung und Geduld für die Entwickler, um es zu verstehen, aber es ermöglicht eine sehr flexible Verwaltung von Abhängigkeiten in der Anwendung und das Laden von Projektkomponenten in Isolation; wenn wir diese Bibliothek in Schienekönnen wir Trockenschienen verwenden,
  • dry-monads ist in der Theorie ein schwieriges Konzept, aber in der Praxis ist es einfacher zu verstehen, das Ergebnis monads kann eine gute Möglichkeit sein, die Lesbarkeit von Code durch die Berücksichtigung spezifischer Fälle anstelle von Wenn-Verzweigungen.

Schlussfolgerungen

Am besten ist es, wenn Sie Schiene so dass Sie nicht mit Schiene eines Tages.

Quellen

Artikel

  • Codegerüche in Rails-Anwendungen (von Shopify)
  • Hanami: repozytoria
  • Schienen-Führer

Rahmenwerke

  • Sinatra
  • Roda
  • Hanami

Edelsteine

  • Sequel
  • ROM
  • Biblioteki trocken-rb
  • Ruby JSON-Schema-Prüfer (json-schema)
  • Pagy
  • Rodauth
  • rodauth-rails

Spezifikationen

  • Gestell
  • JSON-Schema

Lesen Sie mehr:

Was ist Ruby on Jets und wie kann man damit eine Anwendung erstellen?

Vuelendar. Ein neues Projekt von Codest auf der Grundlage von Vue.js

Codest's wöchentlicher Bericht über die besten technischen Artikel. Software für 50 Mio. gleichzeitige Sockets erstellen (10)

Ähnliche Artikel

Software-Entwicklung

Zukunftssichere Web-Apps bauen: Einblicke vom The Codest-Expertenteam

Entdecken Sie, wie sich The Codest bei der Erstellung skalierbarer, interaktiver Webanwendungen mit Spitzentechnologien auszeichnet, die nahtlose Benutzererfahrungen auf allen Plattformen bieten. Erfahren Sie, wie unsere Expertise die digitale Transformation und...

DAS SCHÖNSTE
Software-Entwicklung

Top 10 Softwareentwicklungsunternehmen in Lettland

Erfahren Sie in unserem neuesten Artikel mehr über die besten Softwareentwicklungsunternehmen Lettlands und ihre innovativen Lösungen. Entdecken Sie, wie diese Technologieführer Ihr Unternehmen voranbringen können.

thecodest
Enterprise & Scaleups Lösungen

Grundlagen der Java-Softwareentwicklung: Ein Leitfaden für erfolgreiches Outsourcing

Entdecken Sie diesen wichtigen Leitfaden zum erfolgreichen Outsourcing der Java-Softwareentwicklung, um die Effizienz zu steigern, auf Fachwissen zuzugreifen und den Projekterfolg mit The Codest voranzutreiben.

thecodest
Software-Entwicklung

Der ultimative Leitfaden für Outsourcing in Polen

Der Anstieg des Outsourcings in Polen wird durch wirtschaftliche, bildungspolitische und technologische Fortschritte angetrieben, die das IT-Wachstum und ein unternehmensfreundliches Klima fördern.

TheCodest
Enterprise & Scaleups Lösungen

Der vollständige Leitfaden für IT-Audit-Tools und -Techniken

IT-Audits gewährleisten sichere, effiziente und gesetzeskonforme Systeme. Erfahren Sie mehr über ihre Bedeutung, indem Sie den vollständigen Artikel lesen.

Der Codest
Jakub Jakubowicz CTO & Mitbegründer

Abonnieren Sie unsere Wissensdatenbank und bleiben Sie auf dem Laufenden über das Fachwissen aus dem IT-Sektor.

    Über uns

    The Codest - Internationales Software-Unternehmen mit technischen Zentren in Polen.

    Vereinigtes Königreich - Hauptsitz

    • Büro 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale Tech-Hubs

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polen

      Der Codest

    • Startseite
    • Über uns
    • Dienstleistungen
    • Fallstudien
    • Gewusst wie
    • Karriere
    • Wörterbuch

      Dienstleistungen

    • IT-Beratung
    • Software-Entwicklung
    • Backend-Softwareentwicklung
    • Frontend-Softwareentwicklung
    • Staff Augmentation
    • Backend-Entwickler
    • Cloud-Ingenieure
    • Daten-Ingenieure
    • Andere
    • QS-Ingenieure

      Ressourcen

    • Fakten und Mythen über die Zusammenarbeit mit einem externen Softwareentwicklungspartner
    • Aus den USA nach Europa: Warum entscheiden sich amerikanische Start-ups für eine Verlagerung nach Europa?
    • Tech Offshore Development Hubs im Vergleich: Tech Offshore Europa (Polen), ASEAN (Philippinen), Eurasien (Türkei)
    • Was sind die größten Herausforderungen für CTOs und CIOs?
    • Der Codest
    • Der Codest
    • Der Codest
    • Privacy policy
    • Website terms of use

    Urheberrecht © 2025 von The Codest. Alle Rechte vorbehalten.

    de_DEGerman
    en_USEnglish sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek de_DEGerman