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

Abstrakt illustrasjon av et synkende søylediagram med en stigende pil og en gullmynt som symboliserer kostnadseffektivitet eller besparelser. The Codest-logoen vises i øverste venstre hjørne med slagordet "In Code We Trust" på en lysegrå bakgrunn.
Programvareutvikling

Slik skalerer du utviklingsteamet ditt uten å miste produktkvalitet

Skalerer du utviklingsteamet ditt? Lær hvordan du kan vokse uten å ofre produktkvaliteten. Denne guiden tar for seg tegn på at det er på tide å skalere, teamstruktur, ansettelser, lederskap og verktøy - i tillegg til hvordan The Codest kan...

THECODEST
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

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