Ar Ruby on Rails yra gera technologija MVP kurti?
Minimalus gyvybingas produktas (MVP) yra vienas iš "Lean Startup" metodikos principų. Jo tikslas - padėti verslininkams pradėti mokymosi procesą kuo greičiau...
Sužinokite daugiau apie stovo vaidmenį "Ruby" ekosistemoje iš mūsų eksperto ir patobulinkite savo "Ruby" žaidimo įgūdžius.
Dirbant su Ruby žiniatinklio svetainė rėmai įprasta laikyti dalykus savaime suprantamais. Žinome, kad sistema tvarkys HTTP užklausas ir vykdys tarpinės programinės įrangos logiką. mus. Kai mums darosi vis įdomiau, pradedame domėtis, kas yra užkulisiuose, ir čia pradedame girdėti apie Racką.
Svetainė projektas apibūdinamas kaip "modulinė Ruby žiniatinklio serverio sąsaja". "Rack" yra sąsaja, leidžianti kurti žiniatinklio programas, suvienijanti žiniatinklio serverių, žiniatinklio struktūrų ir tarpinės programinės įrangos API.

Kaip aprašyta pirmiau pateiktame paveikslėlyje, "Rack" veikia kaip tarpininkas tarp mūsų žiniatinklio taikomosios programos ir taikomųjų programų serverio, jis HTTP užklausas supakuoja į paprasčiausią
įmanomas būdas.
"Rack" programa yra "Ruby" objektas (ne klasė), kuris reaguoja į skambinkite. Jis priima lygiai vieną argumentą, t. y. aplinka ir grąžina neužšaldytą masyvą
lygiai tris reikšmes:
ir kūnas.
Išsamią Rack Application specifikaciją galite rasti čia.
reikalauti 'rack'
klasė RackApp
def call(env)
status = 200
headers = { 'Content-Type' => 'text/html' }
body = ['<h1>Programėlė "My Rack<h1>']
[statusas, antraštės, kūnas]
pabaiga
pabaiga
Tvarkyklės sujungia žiniatinklio serverius su "Rack". "Rack" apima "Thin", "WEBrick", "FastCGI", CGI, SCGI ir "LiteSpeed" tvarkykles. Kiekvienas "Rack" palaikantis taikomųjų programų serveris turėtų
pateikti tvarkyklę ryšiui sukurti (Puma turi savo tvarkyklę).Paprastai tvarkyklės aktyvuojamos skambinant MyHandler.run(myapp). Antrasis neprivalomas hash gali būti perduota, kad būtų įtraukta konkretaus serverio konfigūracija.
Thin taikomųjų programų serverio naudojimas
Rack::Handler::Thin.run(app)
Numatytasis konfigūracijos pridėjimo failas yra config.ru ir galite jį vykdyti naudodami rackup komandą konsolėje.
"Rack" leidžia kurti tarpinės programinės įrangos programas (programas tarp pagrindinės žiniatinklio programos ir programų serverio). Šios tarpinės programinės įrangos programos grandininiu būdu sujungiamos ir vykdomos nuosekliai.
"Rack Middleware" turi įgyvendinti visas specifikacijas, susijusias su Stovo naudojimas ir atitikti šiuos reikalavimus:
klasė RackMiddleware
def initialize(app)
@app = app
end
def call(env)
@app.call(env)
end
end
Dabar, kai jau žinome pagrindinius dalykus, galime sukurti pirmąją "Rack" taikomąją programą su "Rack Middleware" ir paleisti ją naudodami "Puma" (taikomųjų programų serverį).
Įsitikinkite, kad turite stovas brangakmenis ir puma įdiegtas brangakmenis.
brangakmenis įdiegti lentyną
gem install puma
Pirmiausia turime sukurti failą, pavadintą config.ru ir šiame faile bus naudojama
"Rack::Builder" DSL, kad paleistumėte programą ir pridėtumėte tarpinę programinę įrangą.
Per config.ru faile pridėsime paprastą "Rack" taikomąją programą, kurią apibrėžėme
ankstesniuose skyriuose.
# config.ru
klasė RackApp
def call(env)
status = 200
headers = { 'Content-Type' => 'text/html' }
body = ['<h1>Programėlė "My Rack<h1>']
[statusas, antraštės, kūnas]
pabaiga
pabaiga
Čia šiek tiek pakeisime savo paprastą tarpinę programinę įrangą, kuri, ją įvykdžius, pridės serverio programinę įrangą į mūsų HTML kūną.
# config.ru
klasė RackMiddleware
def initialize(app)
@app = app
end
def call(env)
status, headers, body = @app.call(env)
body << env['SERVER_SOFTWARE']
[status, headers, body]
pabaiga
end
Galiausiai paleisime serverį ir pamatysime, kaip veikia mūsų programa. Mūsų config.ru failas atrodys taip:
# config.ru
klasė RackApp
def call(env)
status = 200
headers = { 'Content-Type' => 'text/html' }
body = ['<h1>Programėlė "My Rack<h1>']
[statusas, antraštės, kūnas]
pabaiga
pabaiga
klasė 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
naudoti RackMiddleware
paleisti RackApp.new
Paskutinėse eilutėse nurodome tarpinę programinę įrangą naudodami naudoti ir paleidžiame programą naudodami paleisti.Esame pasirengę vykdyti rackup konsolėje ir pamatysite veikiantį serverį. Galime patikrinti prievadą, kuriame veikia mūsų programa, ir prisijungę prie jo turėtume pamatyti kažką panašaus:

Kartais naudinga grįžti prie pagrindų ir sužinoti apie įžvalgas apie technologijas, su kuriomis dirbame. Mokymasis "Rack" suteikia mums aiškią architektūros apžvalgą ir atskleidžia "magiją", slypinčią už "Ruby" žiniatinklio karkasai.
