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 }) }, } } })() Telineen rooli Ruby-ekosysteemissä - 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
2022-08-25
Ohjelmistokehitys

Rackin rooli Ruby-ekosysteemissä

Nicolas Nisoria

Lue lisää telineen roolista Rubyn ekosysteemissä asiantuntijaltamme ja paranna ruby-pelisi taitoja.

Työskennellessään Ruby-verkkokehykset on yleistä pitää asioita itsestäänselvyyksinä. Tiedämme, että kehys käsittelee HTTP-pyynnöt ja toteuttaa väliohjelmiston logiikan puolestamme. Kun olemme uteliaampia, alamme miettiä, mitä kulissien takana on, ja siinä kohtaa alamme kuulla Rackista.

Mikä on Rack?

The projekti on kuvattu nimellä "modulaarinen Ruby-verkkopalvelimen käyttöliittymä". Rack on rajapinta, jonka avulla voimme luoda web-sovelluksia yhdistämällä web-palvelimien, web-kehysten ja väliohjelmistojen API:n.

rack ruby järjestelmä

Kuten yllä olevassa kuvassa on kuvattu, Rack toimii välikätenä verkkosovelluksemme ja sovelluspalvelimen välillä, se kietoo HTTP-pyynnöt yksinkertaisimpaan muotoon.
tavalla mahdollista.

Telinesovellus

Rack-sovellus on Ruby-objekti (ei luokka), joka vastaa seuraaviin kysymyksiin soita. Se ottaa täsmälleen yhden argumentin, joka on ympäristö ja palauttaa jäädyttämättömän Array of
täsmälleen kolme arvoa:

  • The tila,
  • ... otsikot,
  • ja keho.

    Rack-sovelluksen yksityiskohtaiset tekniset tiedot löytyvät osoitteesta täällä.

vaatia 'teline'

luokka RackApp
  def call(env)
        status = 200
        headers = { 'Content-Type' => 'text/html' }
        body = ['<h1>My Rack -sovellus<h1>']

    [status, headers, body]
  end
end

Rack::Handler

Käsittelijät yhdistävät verkkopalvelimet Rackiin. Rack sisältää käsittelijät Thin, WEBrick, FastCGI, CGI, SCGI ja LiteSpeed -palvelimille. Jokaisen Rackia tukevan sovelluspalvelimen tulisi
tarjoavat käsittelijän yhteyden luomista varten (Pumalla on oma käsittelijänsä).Käsittelijät aktivoidaan yleensä kutsumalla kutsua MyHandler.run(myapp). Toinen valinnainen hash voidaan välittää palvelinkohtaisten asetusten sisällyttämiseksi.

Ohuen sovelluspalvelimen käyttö

Rack::Handler::Thin.run(app)

Oletustiedosto, johon konfiguraatio lisätään, on config.ru ja voit suorittaa sen käyttämällä rackup komento konsolissasi.

Rack Middleware

Rackin avulla voimme luoda väliohjelmistosovelluksia (sovelluksia pääverkkosovelluksen ja sovelluspalvelimen välille). Nämä väliohjelmistosovellukset ketjutetaan toisiinsa ja suoritetaan peräkkäin.

Rack Middleware -ohjelmiston on pantava täytäntöön kaikki eritelmät Telinesovellus ja täyttää seuraavat vaatimukset:

  • Sen on oltava luokka,
  • on alustusohjelma, joka saa vain yhden parametrin (pääsovellus),
  • ja kutsua seuraavaa väliohjelmistoa tai sovellusta.
luokka RackMiddleware
def initialize(app)
@app = app
end
def call(env)
@app.call(env)
end
end

Telineestä käytäntöön

Nyt kun tunnemme perusasiat, olemme valmiita luomaan ensimmäisen Rack-sovelluksemme Rack Middleware -ohjelmiston avulla ja ajamaan sitä Puman (Application Server) avulla.

Asenna riippuvuudet

Varmista, että sinulla on teline jalokivi ja puma gem asennettu.

gem asentaa telineeseen
gem asentaa puma

Luo konfiguraatiotiedosto

Ensin meidän on luotava tiedosto nimeltä config.ru ja tämä tiedosto käyttää
Rack::Builder DSL -sovelluksen suorittamiseksi ja väliohjelmiston lisäämiseksi.

Rack-sovelluksen lisääminen

Sisällä config.ru tiedostoon lisätään yksinkertainen Rack-sovellus, jonka määrittelimme kohdassa
edelliset jaksot.

# config.ru

luokka RackApp
  def call(env)
    status = 200
    headers = { 'Content-Type' =&gt; 'text/html' }
    body = ['<h1>My Rack -sovellus<h1>']

    [status, headers, body]
  end
end

Lisää Rack Middleware

Tässä teemme pienen muutoksen yksinkertaiseen väliohjelmistoon, ja nyt se lisää palvelinohjelmiston HTML-runkoon suorituksen jälkeen.

# config.ru

luokka RackMiddleware
  def initialize(app)
    @app = app
  end

  def call(env)
    status, headers, body = @app.call(env)

    body << env['SERVER_SOFTWARE']

    [status, headers, body]
  end
end

Käynnistä sovelluspalvelin

Viimeisenä vaiheena ajamme palvelimen ja näemme sovelluksemme käynnissä. Meidän config.ru tiedosto näyttää seuraavalta:

# config.ru

luokka RackApp
  def call(env)
    status = 200
    headers = { 'Content-Type' =&gt; 'text/html' }
    body = ['<h1>My Rack -sovellus<h1>']

    [status, headers, body]
  end
end

luokka RackMiddleware
  def initialize(app)
    @app = app
  end

  def call(env)
    status, headers, body = @app.call(env)

    body <&lt; env[&#039;SERVER_SOFTWARE&#039;]

    [status, headers, body]
  end
end

käytä RackMiddleware
run RackApp.new

Viimeisillä riveillä määrittelemme väliohjelmiston käyttämällä komentoa käytä ja ajamme sovelluksen käyttämällä juosta.Olemme valmiita toteuttamaan rackup konsolissa ja näet palvelimen olevan käynnissä. Voimme tarkistaa portin, jossa sovelluksemme on käynnissä, ja meidän pitäisi nähdä jotakin tällaista, kun olemme ottaneet siihen yhteyttä:

Räkkipalvelimen teksti

Päätelmät

Joskus on hyvä palata perusasioiden äärelle ja oppia tuntemaan tekniikka, jonka kanssa työskentelemme. Learning Rack antaa meille selkeän yleiskuvan arkkitehtuurista ja paljastaa "taikuuden" taustalla. Ruby-verkkokehykset.

yhteistyöbanneri

Aiheeseen liittyvät artikkelit

Ohjelmistokehitys

GraphQL Ruby. Entä suorituskyky?

GraphQL:llä, kuten millä tahansa teknologialla, on ongelmansa, joista osa johtuu suoraan arkkitehtuurista ja osa on samanlaisia kuin missä tahansa muussa sovelluksessa. Ratkaisut ovat kuitenkin...

Codest
Tomasz Szkaradek Kehitysarkkitehti
Ohjelmistokehitys

Yksinkertainen Ruby-sovellus tyhjästä Active Recordilla

MVC on suunnittelumalli, joka jakaa sovelluksen vastuualueet niin, että sovelluksessa on helpompi liikkua. Rails noudattaa tätä suunnittelumallia sopimuksen mukaan.

Codest
Damian Watroba Software Engineer
E-commerce

Onko Ruby on Rails hyvä teknologia MVP:n rakentamiseen?

Pienin elinkelpoinen tuote (MVP) on yksi Lean Startup -menetelmän periaatteista. Tavoitteena on auttaa yrittäjiä aloittamaan oppimisprosessi mahdollisimman pian....

Nicolas Nisoria

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