window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = vindue if (w.LeadBooster) { console.warn('LeadBooster findes 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
Codest
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Industrier
    • Fintech og bankvirksomhed
    • E-commerce
    • Adtech
    • Sundhedsteknologi
    • Produktion
    • Logistik
    • Biler
    • IOT
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
Pil tilbage GÅ TILBAGE
2021-06-30
Udvikling af software

Skinner og andre transportmidler

Codest

Krzysztof Buszewicz

Senior Software Engineer

Rails er en Rack-kompatibel ramme med fokus på hurtig applikationsudvikling. Desværre får "alt ud af boksen"-tilgangen og den blinde Rails-adfærd ofte applikationskoden til at miste kvalitet, både med hensyn til modtagelse (læsbarhed) og drift.

Populære Rails- og Rails-way-problemer

Problemer nævnt i: artikel om Shopify

  • routing,
  • før-handlinger,
  • store aktioner i controllere,
  • private metoder i controllere,
  • mixins brugt én gang,
  • logik i visninger,
  • ActiveRecord-tilbagekald,
  • Foreninger,
  • "Fede modeller."

Yderligere problemer

  • Validering af aktive poster,
  • implicit over eksplicit,
  • misbrug af DRY,
  • delegationer til foreninger,
  • serviceopkald i modeller.

Alternativer til Rails

Når det kommer til Skinner i Ruby verden, har vi flere alternativer. Andre frameworks baseret på Rack omfatter: - Sinatra, – Roda, – Hanami.

Hvad gør dem unikke?

Både Sinatra og Roda tilbyder os en syntaks for blokrouting, men routing i Sinatra er en liste og i Roda - et træ. I begge frameworks skal vi selv håndtere implementeringen af modellaget. I Rodas tilfælde er det en god idé at bruge Sequel-perlen.

Roda er inspireret af Sinatra. Det er meget let i sig selv, men det har en masse plugins.

Hanami er tættest på Skinner når det drejer sig om områder, der er omfattet af rammerne. De vigtigste forskelle med hensyn til brug er:

  • controllere i Skinner vs. handlinger i Hanami,
  • dedikerede klasser/objekter, der håndterer en specifik HTTP-anmodning, ikke en controller til handlinger relateret til en specifik ressource (model),
  • modellag baseret på repositories og entiteter, der adskiller persistens fra resten af applikationen, ikke det aktive record-mønster.

Hanami version 1 begrænser kraftigt brugen af ROM, som den er baseret på (version 3, og den er allerede 5), så det er ikke værd at bruge det modellag, der foreslås der. Men da det er en meget åben ramme, er det ret nemt at implementere sin egen model.

Supplementer til Rails

Det er værd at bruge løsninger, der ikke er afhængige af Skinner og er tættere på "ren" Ruby. De værktøjer, der nævnes i præsentationen, er:

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

Efterfølgeren er nem at sætte i en projektDet er baseret på plugins og implementerer også det aktive record-mønster. Den har bedre understøttelse af forespørgsler på lavt niveau end Skinner' ActiveRecord.

ROM bruger Sequel, men dens koncept er at oversætte mellem poster i databasen(erne) og Ruby objekter. Det sigter mod hastighed og datatransformation. Adskiller klart persistenslaget i applikationen.

Dry-rb-biblioteker er meget nyttige værktøjer:

  • dry-validation er meget let at bruge i API-projekter og giver god kontrol over korrektheden af indgående data,
  • dry-system kræver lidt øvelse og tålmodighed for udviklerne at forstå, men det giver mulighed for meget fleksibel styring af afhængigheder i applikationen og indlæsning af projektkomponenter i isolation; hvis vi ønsker at bruge dette bibliotek i Skinnerkan vi bruge tørre skinner,
  • tør-monader er et vanskeligt koncept i teorien, men i praksis er det lettere at forstå, resultatet monader kan være en god måde at øge læsbarheden af Kode ved at overveje specifikke tilfælde i stedet for forgrenede if'er.

Konklusioner

Det er bedst at bruge Skinner så du ikke behøver at bruge Skinner en dag.

Kilder

Artikler

  • Kode lugter i Rails-apps (af Shopify)
  • Hanami: repozytoria
  • Skinner guider

Rammeværk

  • Sinatra
  • Roda
  • Hanami

Ædelstene

  • Fortsættelse
  • ROM
  • Biblioteki dry-rb
  • Ruby JSON Schema Validator (json-schema)
  • Pagy
  • Rodauth
  • rodauth-skinner

Specifikationer

  • Stativ
  • JSON-skema

Læs mere om det:

Hvad er Ruby on Jets, og hvordan bygger man en app med det?

Vuelendar. Et nyt Codest-projekt baseret på Vue.js

Codests ugentlige rapport med de bedste tech-artikler. Bygning af software til 50 millioner samtidige sockets (10)

Relaterede artikler

Udvikling af software

Byg fremtidssikrede webapps: Indsigt fra The Codest's ekspertteam

Oplev, hvordan The Codest udmærker sig ved at skabe skalerbare, interaktive webapplikationer med banebrydende teknologier, der leverer sømløse brugeroplevelser på tværs af alle platforme. Lær, hvordan vores ekspertise driver digital transformation og...

DENKODEST
Udvikling af software

Top 10 Letlands-baserede softwareudviklingsvirksomheder

Læs om Letlands bedste softwareudviklingsvirksomheder og deres innovative løsninger i vores seneste artikel. Find ud af, hvordan disse teknologiledere kan hjælpe med at løfte din virksomhed.

thecodest
Løsninger til virksomheder og scaleups

Grundlæggende om Java-softwareudvikling: En guide til succesfuld outsourcing

Udforsk denne vigtige guide til vellykket outsourcing af Java-softwareudvikling for at forbedre effektiviteten, få adgang til ekspertise og skabe projektsucces med The Codest.

thecodest
Udvikling af software

Den ultimative guide til outsourcing i Polen

Den voldsomme stigning i outsourcing i Polen er drevet af økonomiske, uddannelsesmæssige og teknologiske fremskridt, der fremmer it-vækst og et erhvervsvenligt klima.

TheCodest
Løsninger til virksomheder og scaleups

Den komplette guide til IT-revisionsværktøjer og -teknikker

IT-revisioner sikrer sikre, effektive og kompatible systemer. Lær mere om deres betydning ved at læse hele artiklen.

Codest
Jakub Jakubowicz CTO og medstifter

Tilmeld dig vores vidensbase, og hold dig opdateret om ekspertisen fra it-sektoren.

    Om os

    The Codest - International softwareudviklingsvirksomhed med tech-hubs i Polen.

    Storbritannien - Hovedkvarter

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

    Polen - Lokale teknologiske knudepunkter

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

      Codest

    • Hjem
    • Om os
    • Serviceydelser
    • Casestudier
    • Ved hvordan
    • Karriere
    • Ordbog

      Serviceydelser

    • Det rådgivende
    • Udvikling af software
    • Backend-udvikling
    • Frontend-udvikling
    • Staff Augmentation
    • Backend-udviklere
    • Cloud-ingeniører
    • Dataingeniører
    • Andet
    • QA-ingeniører

      Ressourcer

    • Fakta og myter om at samarbejde med en ekstern softwareudviklingspartner
    • Fra USA til Europa: Hvorfor beslutter amerikanske startups sig for at flytte til Europa?
    • Sammenligning af Tech Offshore-udviklingsknudepunkter: Tech Offshore Europa (Polen), ASEAN (Filippinerne), Eurasien (Tyrkiet)
    • Hvad er de største udfordringer for CTO'er og CIO'er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Vilkår for brug af hjemmesiden

    Copyright © 2025 af The Codest. Alle rettigheder forbeholdes.

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