window.pipedriveLeadboosterConfig = { base: pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster on jo olemassa') } 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 }) }, } } })() Kiskot ja muut kuljetusvälineet - The Codest
Codest
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Toimialat
    • Fintech & pankkitoiminta
    • E-commerce
    • Adtech
    • Terveysteknologia
    • Valmistus
    • Logistiikka
    • Autoteollisuus
    • IOT
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
Takaisin nuoli PALAA TAAKSE
2021-06-30
Ohjelmistokehitys

Kiskot ja muut liikennevälineet

Codest

Krzysztof Buszewicz

Vanhempi Software Engineer

Rails on Rack-yhteensopiva kehys, joka on keskittynyt nopeaan sovelluskehitykseen. Valitettavasti "kaikki suoraan laatikosta" -lähestymistapa ja sokea Rails-käyttäytyminen aiheuttavat usein sovelluskoodin laadun heikkenemistä sekä vastaanoton (luettavuuden) että toiminnan osalta.

Suosittuja Rails- ja Rails-way-ongelmia

Ongelmat, jotka mainitaan seuraavassa: artikkeli Shopifystä

  • reititys,
  • before-actions,
  • suuret toimet valvojissa,
  • yksityiset metodit ohjaimissa,
  • kerran käytetyt yhdistelmät,
  • logiikka näkymissä,
  • ActiveRecord-kutsut,
  • Yhdistykset,
  • "lihavat mallit."

Lisäongelmat

  • Aktiivisen tietueen validoinnit,
  • implisiittinen verrattuna eksplisiittiseen,
  • DRY:n väärinkäyttö,
  • valtuuskunnat yhdistyksille,
  • palvelukutsut malleissa.

Vaihtoehtoja Railsille

Kun on kyse Kiskot vuonna Ruby maailmassa, meillä on useita vaihtoehtoja. Muita Rackiin perustuvia kehyksiä ovat mm: - Sinatra, – Roda, – Hanami.

Mikä tekee niistä ainutlaatuisia?

Sekä Sinatra että Roda tarjoavat meille lohkon reitityssyntaksin, mutta Sinatran reititys on lista ja Rodan puu. Molemmissa kehyksissä meidän on itse huolehdittava mallikerroksen toteutuksesta. Rodan tapauksessa on hyvä käyttää Sequel-helmeä.

Roda on saanut inspiraationsa Sinatrasta. Se on itsessään hyvin kevyt, mutta siinä on paljon lisäosia.

Hanami on lähimpänä Kiskot kun on kyse puitteiden kattamista aloista. Tärkeimmät erot käytön kannalta ovat seuraavat:

  • ohjaimet in Kiskot vs. toimet Hanamissa,
  • erityisiä luokkia/objekteja, jotka käsittelevät tiettyä HTTP-pyyntöä, ei yhtä ohjainta tiettyyn resurssiin (malliin) liittyviä toimia varten,
  • mallitaso, joka perustuu arkistoihin ja olioihin ja erottaa pysyvyyden muusta sovelluksesta, ei aktiivista tietuemallia.

Hanamin versio 1 rajoittaa vahvasti ROMin käyttöä, johon se perustuu (versio 3, ja se on jo 5), joten siinä ehdotettua mallitasoa ei kannata käyttää. Koska kyseessä on kuitenkin hyvin avoin kehys, on melko helppoa toteuttaa sinne oma mallinsa.

Railsin lisäosat

Kannattaa käyttää ratkaisuja, jotka eivät ole riippuvaisia Kiskot ja ovat lähempänä "puhdasta" Ruby. Esityksessä mainitut työkalut ovat:

  • Sequel (ORM, vaihtoehto ActiveRecordille),
  • ROM (objektikartoittaja),
  • dry-rb-kirjastot: dry-validations, dry-system ja dry-monads.

Jatko-osa on helppo laittaa projekti, se perustuu liitännäisiin ja toteuttaa myös aktiivisen tietueen mallin. Siinä on parempi matalan tason kyselytuki kuin Kiskot' ActiveRecord.

ROM käyttää Sequeliä, mutta sen käsite on kääntää tietokannan (tietokantojen) tietueiden välillä ja Ruby esineitä. Sen tavoitteena on nopeus ja tietojen muuntaminen. Se erottaa selvästi pysyvyyskerroksen sovelluksesta.

Dry-rb-kirjastot ovat erittäin hyödyllisiä työkaluja:

  • Dry-validointia on erittäin helppo käyttää API-projekteissa, ja sen avulla voidaan hyvin valvoa saapuvien tietojen oikeellisuutta,
  • dry-system vaatii hieman harjoittelua ja kärsivällisyyttä, jotta kehittäjät ymmärtäisivät sen, mutta se mahdollistaa hyvin joustavan riippuvuuksien hallinnan sovelluksessa ja projektin komponenttien lataamisen eristyksissä; jos haluamme käyttää tätä kirjastoa sovelluksessa Kiskotvoimme käyttää kuivakiskoja,
  • dry-monads on vaikea käsite teoriassa, mutta käytännössä se on helpompi ymmärtää, tulos monads voi olla hyvä tapa lisätä luettavuutta koodi tarkastelemalla erityistapauksia haarautuvien if-lausekkeiden sijaan.

Päätelmät

On parasta käyttää Kiskot jotta sinun ei tarvitse käyttää Kiskot yhtenä päivänä.

Lähteet

Artikkelit

  • Koodi haisee Rails-sovelluksissa (Shopify)
  • Hanami: repozytoria
  • Kiskot oppaat

Kehykset

  • Sinatra
  • Roda
  • Hanami

Jalokivet

  • Jatko-osa
  • ROM
  • Biblioteki dry-rb
  • Ruby JSON-skeeman validaattori (json-schema)
  • Pagy
  • Rodauth
  • rodauth-rails

Tekniset tiedot

  • Teline
  • JSON-skeema

Lue lisää:

Mikä on Ruby on Jets ja miten rakentaa sovellus sen avulla?

1TP53Kalenteri. Uusi Codestin projekti, joka perustuu Vue.js:ään.

Codestin viikoittainen raportti parhaista teknologia-artikkeleista. Ohjelmiston rakentaminen 50 miljoonalle yhtäaikaiselle pistorasialle (10)

Aiheeseen liittyvät artikkelit

Ohjelmistokehitys

Tulevaisuuden web-sovellusten rakentaminen: The Codest:n asiantuntijatiimin näkemyksiä

Tutustu siihen, miten The Codest loistaa skaalautuvien, interaktiivisten verkkosovellusten luomisessa huipputeknologian avulla ja tarjoaa saumattomia käyttäjäkokemuksia kaikilla alustoilla. Lue, miten asiantuntemuksemme edistää digitaalista muutosta ja liiketoimintaa...

THECODEST
Ohjelmistokehitys

Top 10 Latviassa toimivaa ohjelmistokehitysyritystä

Tutustu Latvian parhaisiin ohjelmistokehitysyrityksiin ja niiden innovatiivisiin ratkaisuihin uusimmassa artikkelissamme. Tutustu siihen, miten nämä teknologiajohtajat voivat auttaa nostamaan liiketoimintaasi.

thecodest
Yritys- ja skaalausratkaisut

Java-ohjelmistokehityksen perusteet: A Guide to Outsourcing Successfully

Tutustu tähän keskeiseen oppaaseen Java-ohjelmistokehityksen onnistuneesta ulkoistamisesta tehokkuuden parantamiseksi, asiantuntemuksen saamiseksi ja projektin onnistumiseksi The Codestin avulla.

thecodest
Ohjelmistokehitys

Perimmäinen opas ulkoistamiseen Puolassa

Ulkoistamisen lisääntyminen Puolassa johtuu taloudellisesta, koulutuksellisesta ja teknologisesta kehityksestä, joka edistää tietotekniikan kasvua ja yritysystävällistä ilmapiiriä.

TheCodest
Yritys- ja skaalausratkaisut

Täydellinen opas IT-tarkastustyökaluihin ja -tekniikoihin

Tietotekniikan tarkastuksilla varmistetaan turvalliset, tehokkaat ja vaatimustenmukaiset järjestelmät. Lue lisää niiden merkityksestä lukemalla koko artikkeli.

Codest
Jakub Jakubowicz teknologiajohtaja ja toinen perustaja

Tilaa tietopankkimme ja pysy ajan tasalla IT-alan asiantuntemuksesta.

    Tietoa meistä

    The Codest - Kansainvälinen ohjelmistokehitysyritys, jolla on teknologiakeskuksia Puolassa.

    Yhdistynyt kuningaskunta - pääkonttori

    • Toimisto 303B, 182-184 High Street North E6 2JA
      Lontoo, Englanti

    Puola - Paikalliset teknologiakeskukset

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Krakova
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsova, Puola

      Codest

    • Etusivu
    • Tietoa meistä
    • Palvelut
    • Tapaustutkimukset
    • Tiedä miten
    • Työurat
    • Sanakirja

      Palvelut

    • Se neuvoa-antava
    • Ohjelmistokehitys
    • Backend-kehitys
    • Frontend-kehitys
    • Staff Augmentation
    • Backend-kehittäjät
    • Pilvi-insinöörit
    • Tietoinsinöörit
    • Muut
    • QA insinöörit

      Resurssit

    • Faktoja ja myyttejä yhteistyöstä ulkoisen ohjelmistokehityskumppanin kanssa
    • Yhdysvalloista Eurooppaan: Miksi amerikkalaiset startup-yritykset päättävät muuttaa Eurooppaan?
    • Tech Offshore -kehityskeskusten vertailu: Tech Offshore Eurooppa (Puola), ASEAN (Filippiinit), Euraasia (Turkki).
    • Mitkä ovat teknologiajohtajien ja tietohallintojohtajien tärkeimmät haasteet?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Verkkosivuston käyttöehdot

    Tekijänoikeus © 2025 by The Codest. Kaikki oikeudet pidätetään.

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