window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versjon: 2, } ;(function () { var w = vindu if (w.LeadBooster) { console.warn('LeadBooster finnes allerede') } 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 }) }, } } })() Skinner og andre transportmidler - The Codest
The Codest
  • Om oss
  • Tjenester
    • Programvareutvikling
      • Frontend-utvikling
      • Backend-utvikling
    • Staff Augmentation
      • Frontend-utviklere
      • Backend-utviklere
      • Dataingeniører
      • Ingeniører i skyen
      • QA-ingeniører
      • Annet
    • Det rådgivende
      • Revisjon og rådgivning
  • Industrier
    • Fintech og bankvirksomhet
    • E-commerce
    • Adtech
    • Helseteknologi
    • Produksjon
    • Logistikk
    • Bilindustrien
    • IOT
  • Verdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leveransesjef
  • Vårt team
  • Casestudier
  • Vet hvordan
    • Blogg
    • Møter
    • Webinarer
    • Ressurser
Karriere Ta kontakt med oss
  • Om oss
  • Tjenester
    • Programvareutvikling
      • Frontend-utvikling
      • Backend-utvikling
    • Staff Augmentation
      • Frontend-utviklere
      • Backend-utviklere
      • Dataingeniører
      • Ingeniører i skyen
      • QA-ingeniører
      • Annet
    • Det rådgivende
      • Revisjon og rådgivning
  • Verdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leveransesjef
  • Vårt team
  • Casestudier
  • Vet hvordan
    • Blogg
    • Møter
    • Webinarer
    • Ressurser
Karriere Ta kontakt med oss
Pil tilbake GÅ TILBAKE
2021-06-30
Programvareutvikling

Skinner og andre transportmidler

The Codest

Krzysztof Buszewicz

Senior Software Engineer

Rails er et Rack-kompatibelt rammeverk med fokus på rask applikasjonsutvikling. Dessverre fører "alt ut av boksen"-tilnærmingen og den blinde Rails-atferden ofte til at applikasjonskoden mister kvalitet, både når det gjelder mottak (lesbarhet) og drift.

Populære Rails- og Rails-way-problemer

Problemer nevnt i: artikkel på Shopify

  • ruting,
  • før-handlinger,
  • store handlinger i controllere,
  • private metoder i kontrollere,
  • mixins brukt én gang,
  • logikk i visninger,
  • ActiveRecord-tilbakekall,
  • Foreninger,
  • "feite modeller."

Ytterligere problemer

  • Validering av aktive poster,
  • implisitt over eksplisitt,
  • misbruk av DRY,
  • delegasjoner til foreninger,
  • serviceanrop i modeller.

Alternativer til Rails

Når det gjelder Rails i Ruby verden, har vi flere alternativer. Andre rammeverk basert på Rack er blant annet - Sinatra, – Roda, – Hanami.

Hva gjør dem unike?

Både Sinatra og Roda tilbyr oss en syntaks for blokkruting, men ruting i Sinatra er en liste og i Roda - et tre. I begge rammeverkene må vi håndtere implementeringen av modellaget selv. Når det gjelder Roda, er det en god idé å bruke Sequel-perlen.

Roda er inspirert av Sinatra. Det er veldig lett i seg selv, men det har mange plugins.

Hanami er det nærmeste man kommer Rails når det gjelder områder som dekkes av rammeverket. De viktigste forskjellene når det gjelder bruk er:

  • kontrollører i Rails vs. handlinger i Hanami,
  • dedikerte klasser/objekter som håndterer en spesifikk HTTP-forespørsel, ikke én kontroller for handlinger knyttet til en spesifikk ressurs (modell),
  • modellaget basert på repositories og entiteter, som skiller persistens fra resten av applikasjonen, ikke det aktive arkivmønsteret.

Hanami versjon 1 begrenser sterkt bruken av ROM den er basert på (versjon 3, og den er allerede 5), så det er ikke verdt å bruke modellaget som er foreslått der. Men siden det er et veldig åpent rammeverk, er det ganske enkelt å implementere modellen din egen.

Tillegg for Rails

Det lønner seg å bruke løsninger som ikke er avhengige av Rails og er nærmere "ren" Ruby. Verktøyene som nevnes i presentasjonen, er

  • Sequel (ORM, alternativ til ActiveRecord),
  • ROM (objektkartlegger),
  • dry-rb-biblioteker: dry-validations, dry-system og dry-monads.

Oppfølgeren er lett å sette inn i en prosjekter basert på plugins og implementerer også det aktive postmønsteret. Den har bedre støtte for spørringer på lavt nivå enn Rails' ActiveRecord.

ROM bruker Sequel, men konseptet er å oversette mellom poster i databasen(e) og Ruby objekter. Målet er hastighet og datatransformasjon. Skiller tydelig ut persistenslaget i applikasjonen.

Dry-rb-biblioteker er svært nyttige verktøy:

  • Dry-validering er svært enkelt å bruke i API-prosjekter og gir god kontroll over korrektheten av innkommende data,
  • dry-system krever litt øvelse og tålmodighet for utviklerne for å forstå det, men det gir mulighet for svært fleksibel håndtering av avhengigheter i applikasjonen og innlasting av prosjektkomponenter isolert; hvis vi ønsker å bruke dette biblioteket i Railskan vi bruke tørrskinner,
  • tørr-monader er et vanskelig konsept i teorien, men i praksis er det lettere å forstå, og resultatet monader kan være en fin måte å øke lesbarheten til kode ved å vurdere spesifikke tilfeller i stedet for å forgrene ifs.

Konklusjoner

Det er best å bruke Rails slik at du ikke trenger å bruke Rails en dag.

Kilder

Artikler

  • Koden lukter i Rails-apper (av Shopify)
  • Hanami: repozytoria
  • Rails Guides

Rammeverk

  • Sinatra
  • Roda
  • Hanami

Edelstener

  • Oppfølger
  • ROM
  • Biblioteki dry-rb
  • Ruby JSON Schema Validator (json-schema)
  • Pagy
  • Rodauth
  • rodauth-skinner

Spesifikasjoner

  • Stativ
  • JSON-skjema

Les mer om dette:

Hva er Ruby on Jets, og hvordan bygger man en app ved hjelp av det?

Vuelkalender. Et nytt Codest-prosjekt basert på Vue.js

Codests ukentlige rapport med de beste teknologiartiklene. Bygge programvare for 50 millioner samtidige stikkontakter (10)

Relaterte artikler

Programvareutvikling

Bygg fremtidssikre webapper: Innsikt fra The Codests ekspertteam

Oppdag hvordan The Codest utmerker seg når det gjelder å skape skalerbare, interaktive webapplikasjoner med banebrytende teknologi som gir sømløse brukeropplevelser på tvers av alle plattformer. Finn ut hvordan ekspertisen vår driver digital transformasjon og...

THECODEST
Programvareutvikling

Topp 10 Latvia-baserte programvareutviklingsselskaper

I vår nyeste artikkel kan du lese mer om Latvias beste programvareutviklingsselskaper og deres innovative løsninger. Oppdag hvordan disse teknologilederne kan bidra til å løfte virksomheten din.

thecodest
Løsninger for bedrifter og oppskalering

Grunnleggende om Java-programvareutvikling: En guide til vellykket outsourcing

Utforsk denne viktige veiledningen om vellykket outsourcing av Java-programvareutvikling for å øke effektiviteten, få tilgang til ekspertise og drive frem prosjektsuksess med The Codest.

thecodest
Programvareutvikling

Den ultimate guiden til outsourcing i Polen

Den kraftige økningen i outsourcing i Polen er drevet av økonomiske, utdanningsmessige og teknologiske fremskritt, noe som fremmer IT-vekst og et forretningsvennlig klima.

TheCodest
Løsninger for bedrifter og oppskalering

Den komplette guiden til verktøy og teknikker for IT-revisjon

IT-revisjoner sørger for sikre, effektive og kompatible systemer. Les hele artikkelen for å lære mer om viktigheten av dem.

The Codest
Jakub Jakubowicz CTO og medgrunnlegger

Abonner på vår kunnskapsbase og hold deg oppdatert på ekspertisen fra IT-sektoren.

    Om oss

    The Codest - Internasjonalt programvareutviklingsselskap med teknologisentre i Polen.

    Storbritannia - Hovedkvarter

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

    Polen - Lokale teknologisentre

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

      The Codest

    • Hjem
    • Om oss
    • Tjenester
    • Casestudier
    • Vet hvordan
    • Karriere
    • Ordbok

      Tjenester

    • Det rådgivende
    • Programvareutvikling
    • Backend-utvikling
    • Frontend-utvikling
    • Staff Augmentation
    • Backend-utviklere
    • Ingeniører i skyen
    • Dataingeniører
    • Annet
    • QA-ingeniører

      Ressurser

    • Fakta og myter om samarbeid med en ekstern programvareutviklingspartner
    • Fra USA til Europa: Hvorfor velger amerikanske oppstartsbedrifter å flytte til Europa?
    • Sammenligning av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinene), Eurasia (Tyrkia)
    • Hva er de største utfordringene for CTO-er og CIO-er?
    • The Codest
    • The Codest
    • The Codest
    • Retningslinjer for personver
    • Vilkår for bruk av nettstedet

    Opphavsrett © 2025 av The Codest. Alle rettigheter forbeholdt.

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