window.pipedriveLeadboosterConfig = { basis: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versie: 2, } ;(functie () { var w = venster als (w.LeadBooster) { console.warn('LeadBooster bestaat al') } anders { w.LeadBooster = { q: [], on: functie (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: functie (n) { this.q.push({ t: 't', n: n }) }, } } })() Rails en andere vervoermiddelen - The Codest
The Codest
  • Over ons
  • Diensten
    • Software Ontwikkeling
      • Frontend ontwikkeling
      • Backend ontwikkeling
    • Staff Augmentation
      • Frontend ontwikkelaars
      • Backend ontwikkelaars
      • Gegevensingenieurs
      • Cloud Ingenieurs
      • QA ingenieurs
      • Andere
    • Het advies
      • Audit & Consulting
  • Industrie
    • Fintech & Bankieren
    • E-commerce
    • Adtech
    • Gezondheidstechnologie
    • Productie
    • Logistiek
    • Automotive
    • IOT
  • Waarde voor
    • CEO
    • CTO
    • Leveringsmanager
  • Ons team
  • Case Studies
  • Weten hoe
    • Blog
    • Ontmoetingen
    • Webinars
    • Bronnen
Carrière Neem contact op
  • Over ons
  • Diensten
    • Software Ontwikkeling
      • Frontend ontwikkeling
      • Backend ontwikkeling
    • Staff Augmentation
      • Frontend ontwikkelaars
      • Backend ontwikkelaars
      • Gegevensingenieurs
      • Cloud Ingenieurs
      • QA ingenieurs
      • Andere
    • Het advies
      • Audit & Consulting
  • Waarde voor
    • CEO
    • CTO
    • Leveringsmanager
  • Ons team
  • Case Studies
  • Weten hoe
    • Blog
    • Ontmoetingen
    • Webinars
    • Bronnen
Carrière Neem contact op
Pijl terug KEREN TERUG
2021-06-30
Software Ontwikkeling

Rails en andere transportmiddelen

The Codest

Krzysztof Buszewicz

Senior Software Engineer

Rails is een Rack-compatibel framework dat gericht is op snelle applicatieontwikkeling. Helaas zorgen de "alles uit de doos"-aanpak en het blinde Rails-weg gedrag er vaak voor dat de applicatiecode aan kwaliteit verliest, zowel wat betreft de ontvangst (leesbaarheid) als de werking.

Populaire Rails en Rails-weg problemen

Problemen genoemd in: artikel over Shopify

  • routing,
  • voor-acties,
  • grote acties in controllers,
  • privémethoden in controllers,
  • mixins eenmaal gebruikt,
  • logica in weergaven,
  • ActiveRecord callbacks,
  • Verenigingen,
  • "dikke modellen."

Bijkomende problemen

  • Actieve recordvalidaties,
  • impliciet boven expliciet,
  • misbruik van DROOG,
  • delegaties naar verenigingen,
  • service-oproepen in modellen.

Alternatieven voor Rails

Als het gaat om Rails in de Ruby wereld hebben we verschillende alternatieven. Andere frameworks gebaseerd op Rack zijn onder andere: - Sinatra, – Roda, – Hanami.

Wat maakt ze uniek?

Zowel Sinatra als Roda bieden ons een block routing syntax, maar routing in Sinatra is een lijst en in Roda - een boom. In beide frameworks moeten we ons zelf bezighouden met de implementatie van de modellaag. In het geval van Roda is het een goed idee om de Sequel gem te gebruiken.

Roda is geïnspireerd op Sinatra. Het is op zichzelf erg licht, maar het heeft veel plugins.

Hanami is het dichtst bij Rails als het gaat om gebieden die onder het kader vallen. De belangrijkste verschillen in termen van gebruik zijn:

  • regelaars in Rails vs. acties in Hanami,
  • toegewijde klassen/objecten die een specifiek HTTP-verzoek afhandelen, niet één controller voor acties met betrekking tot een specifieke bron (model),
  • modellaag gebaseerd op repositories en entiteiten, die persistentie scheidt van de rest van de applicatie, niet het actieve recordpatroon.

Hanami versie 1 beperkt sterk het gebruik van ROM waarop het is gebaseerd (versie 3, en het is al 5), dus het is niet de moeite waard om de modellaag te gebruiken die daar wordt voorgesteld. Omdat het echter een zeer open framework is, is het vrij eenvoudig om het model zelf te implementeren.

Supplementen voor Rails

Het is de moeite waard om oplossingen te gebruiken die niet afhankelijk zijn van Rails en dichter bij "puur" staan Ruby. De tools die in de presentatie worden genoemd zijn:

  • Sequel (ORM, alternatief voor ActiveRecord),
  • ROM (object mapper),
  • dry-rb bibliotheken: dry-validations, dry-system en dry-monads.

Sequel is gemakkelijk in een projectHet is gebaseerd op plugins en implementeert ook het actieve recordpatroon. Het heeft betere ondersteuning voor zoekopdrachten op laag niveau dan Rails' ActiveRecord.

ROM gebruikt Sequel, maar het concept is om te vertalen tussen records in de database(s) en Ruby objecten. Het is gericht op snelheid en gegevenstransformatie. Scheidt duidelijk de persistentielaag in de applicatie.

Dry-rb bibliotheken zijn erg nuttige hulpmiddelen:

  • dry-validation is heel eenvoudig te gebruiken in API-projecten en biedt een goede controle over de juistheid van binnenkomende gegevens,
  • dry-system vergt wat oefening en geduld van de ontwikkelaars om het te begrijpen, maar het maakt zeer flexibel beheer van afhankelijkheden in de applicatie en het laden van projectonderdelen in isolatie mogelijk; als we deze bibliotheek willen gebruiken in Railskunnen we droge rails gebruiken,
  • dry-monads is een moeilijk concept in theorie, maar in de praktijk is het makkelijker te begrijpen, het resultaat monads kan een geweldige manier zijn om de leesbaarheid van code door specifieke gevallen te overwegen in plaats van vertakkende ifs.

Conclusies

Je kunt het beste Rails zodat je niet Rails op een dag.

Bronnen

Artikelen

  • Code ruikt in Rails Apps (door Shopify)
  • Hanami: repozytoria
  • Rails Gidsen

Kaders

  • Sinatra
  • Roda
  • Hanami

Juwelen

  • Vervolg
  • ROM
  • Biblioteki droog-rb
  • Ruby JSON Schema-validator (json-schema)
  • Pagy
  • Rodauth
  • rodauth-rails

Specificaties

  • Rek
  • JSON-schema

Lees meer:

Wat is Ruby on Jets en hoe bouw je er een app mee?

Vuekalender. Een nieuw project van Codest gebaseerd op Vue.js

Codest's wekelijkse verslag van de beste tech-artikelen. Software bouwen voor 50M gelijktijdige sockets (10)

Verwante artikelen

Software Ontwikkeling

Bouw Toekomstbestendige Web Apps: Inzichten van The Codest's Expert Team

Ontdek hoe The Codest uitblinkt in het creëren van schaalbare, interactieve webapplicaties met geavanceerde technologieën, het leveren van naadloze gebruikerservaringen op alle platforms. Ontdek hoe onze expertise digitale transformatie en business...

DE BESTE
Software Ontwikkeling

Top 10 in Letland gevestigde bedrijven voor softwareontwikkeling

Lees meer over de beste softwareontwikkelingsbedrijven van Letland en hun innovatieve oplossingen in ons nieuwste artikel. Ontdek hoe deze technologieleiders uw bedrijf kunnen helpen verbeteren.

thecodest
Oplossingen voor ondernemingen en schaalvergroting

Essentiële Java-softwareontwikkeling: Een gids voor succesvol uitbesteden

Verken deze essentiële gids over succesvolle outsourcing Java-softwareontwikkeling om de efficiëntie te verbeteren, toegang te krijgen tot expertise en projectsucces te stimuleren met The Codest.

thecodest
Software Ontwikkeling

De ultieme gids voor outsourcing in Polen

De sterke groei van outsourcing in Polen wordt gedreven door economische, educatieve en technologische vooruitgang, die IT-groei en een bedrijfsvriendelijk klimaat stimuleert.

DeCodest
Oplossingen voor ondernemingen en schaalvergroting

De complete gids voor IT-auditmiddelen en -technieken

IT-audits zorgen voor veilige, efficiënte en compliant systemen. Lees het volledige artikel om meer te weten te komen over het belang ervan.

The Codest
Jakub Jakubowicz CTO & medeoprichter

Abonneer je op onze kennisbank en blijf op de hoogte van de expertise uit de IT-sector.

    Over ons

    The Codest - Internationaal softwareontwikkelingsbedrijf met technische hubs in Polen.

    Verenigd Koninkrijk - Hoofdkantoor

    • Kantoor 303B, 182-184 High Street North E6 2JA
      Londen, Engeland

    Polen - Lokale technologieknooppunten

    • Fabryczna kantorenpark, Aleja
      Pokoju 18, 31-564 Krakau
    • Hersenambassade, Konstruktorska
      11, 02-673 Warschau, Polen

      The Codest

    • Home
    • Over ons
    • Diensten
    • Case Studies
    • Weten hoe
    • Carrière
    • Woordenboek

      Diensten

    • Het advies
    • Software Ontwikkeling
    • Backend ontwikkeling
    • Frontend ontwikkeling
    • Staff Augmentation
    • Backend ontwikkelaars
    • Cloud Ingenieurs
    • Gegevensingenieurs
    • Andere
    • QA ingenieurs

      Bronnen

    • Feiten en fabels over samenwerken met een externe partner voor softwareontwikkeling
    • Van de VS naar Europa: Waarom Amerikaanse startups besluiten naar Europa te verhuizen
    • Tech Offshore Ontwikkelingshubs Vergelijking: Tech Offshore Europa (Polen), ASEAN (Filippijnen), Eurazië (Turkije)
    • Wat zijn de grootste uitdagingen voor CTO's en CIO's?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Gebruiksvoorwaarden website

    Copyright © 2025 door The Codest. Alle rechten voorbehouden.

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