Vai Ruby on Rails ir laba tehnoloģija MVP izveidei?
Minimālais dzīvotspējīgais produkts (MVP) ir viens no Lean Startup metodoloģijas principiem. Mērķis ir palīdzēt uzņēmējiem sākt mācīšanās procesu pēc iespējas ātrāk, lai...
Uzziniet vairāk par plauktu lomu Ruby ekosistēmā no mūsu eksperta un uzlabojiet savas rubīna spēles prasmes.
Strādājot ar Rubīns tīmekļa vietne ietvari ir ierasts uzskatīt lietas par pašsaprotamām. Mēs zinām, ka ietvars apstrādās HTTP pieprasījumus un izpildīs starpprogrammatūras loģiku, lai mums. Kad kļūstam ziņkārīgāki, mēs sākam interesēties, kas ir aizkulisēs, tur mēs sākam dzirdēt par Rack.
Portāls projekts ir aprakstīts kā "Modulāra Ruby tīmekļa servera saskarne". Rack ir saskarne, kas ļauj mums izveidot tīmekļa lietojumprogrammas, apvienojot API tīmekļa serveriem, tīmekļa ietvariem un starpprogrammatūrai.

Kā aprakstīts iepriekšējā attēlā, Rack darbojas kā starpnieks starp mūsu tīmekļa lietojumprogrammu un lietojumprogrammu serveri, tas ietin HTTP pieprasījumus visvienkāršākajā veidā.
veids, kā tas ir iespējams.
Rack lietojumprogramma ir Ruby objekts (nevis klase), kas reaģē uz zvaniet. Tas izmanto tikai vienu argumentu, proti. vide un atgriež neaizsaldētu masīvu
tieši trīs vērtības:
un ķermenis.
Varat atrast detalizētu statīva lietojumprogrammas specifikāciju. šeit.
prasīt 'plaukts'
klase RackApp
def call(env)
status = 200
headers = { 'Content-Type' => 'text/html' }
body = ['<h1>Lietotne Mans plaukts<h1>']
[statuss, galvenes, ķermenis]
beigas
beigas
Apkalpotāji savieno tīmekļa serverus ar Rack. Rack ietver Thin, WEBrick, FastCGI, CGI, SCGI un LiteSpeed rīkus. Katram lietojumprogrammu serverim, kas atbalsta Rack
nodrošina apstrādātāju savienojuma izveidei (Puma ir savs apstrādātājs).Apstrādātāji parasti tiek aktivizēti, izsaucot MyHandler.run(myapp). Otrs izvēles hash var nosūtīt, lai iekļautu serverim specifisku konfigurāciju.
Plānā lietojumprogrammu servera izmantošana
Rack::Handler::Thin.run(app)
Noklusējuma fails konfigurācijas pievienošanai ir config.ru un varat to izpildīt, izmantojot rackup komandu savā konsoles logā.
Rack ļauj mums izveidot starpprogrammatūras lietojumprogrammas (lietojumprogrammas starp mūsu galveno tīmekļa lietojumprogrammu un lietojumprogrammu serveri). Šīs starpprogrammatūras lietojumprogrammas tiek sasaistītas un izpildītas secīgi.
Rack Middleware jāīsteno visas specifikācijas, kas attiecas uz Plaukts Pieteikums un atbilst šādiem punktiem:
klase RackMiddleware
def initialize(app)
@app = app
end
def call(env)
@app.call(env)
end
end
Tagad, kad zinām pamatus, esam gatavi izveidot savu pirmo Rack lietojumprogrammu ar Rack Middleware un palaist to, izmantojot Puma (lietojumprogrammu serveri).
Pārliecinieties, ka jums ir plaukts dārgakmens un puma uzstādīts dārgakmens.
gem instalēt plaukts
gem instalēt puma
Vispirms mums ir jāizveido fails ar nosaukumu config.ru un šis fails izmantos
Rack::Builder DSL, lai palaistu lietojumprogrammu un pievienotu starpprogrammatūru.
ietvaros config.ru failā mēs pievienosim vienkāršo Rack lietojumprogrammu, ko definējām
iepriekšējās sadaļās.
# config.ru
klase RackApp
def call(env)
status = 200
headers = { 'Content-Type' => 'text/html' }
body = ['<h1>Lietotne Mans plaukts<h1>']
[statuss, galvenes, ķermenis]
beigas
beigas
Šeit mēs nedaudz pārveidosim mūsu vienkāršo starpprogrammatūru, un tagad tā pēc izpildes pievienos servera programmatūru mūsu HTML korpusam.
# config.ru
klase 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ā pēdējo soli mēs palaidīsim serveri un redzēsim, kā darbojas mūsu lietojumprogramma. Mūsu config.ru fails izskatīsies šādi:
# config.ru
klase RackApp
def call(env)
status = 200
headers = { 'Content-Type' => 'text/html' }
body = ['<h1>Lietotne Mans plaukts<h1>']
[statuss, galvenes, ķermenis]
beigas
beigas
klase 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
izmantot RackMiddleware
palaist RackApp.new
Pēdējās rindās norādām starpprogrammatūru, izmantojot izmantot un mēs palaižam lietojumprogrammu, izmantojot palaist.Mēs esam gatavi izpildīt rackup mūsu konsoles logā un redzēsiet, ka serveris darbojas. Mēs varam pārbaudīt portu, kurā darbojas mūsu lietojumprogramma, un pēc piekļuves tai mums vajadzētu redzēt kaut ko līdzīgu:

Dažreiz ir labi atgriezties pie pamatiem un iepazīt tehnoloģiju, ar kurām strādājam, ieskatu. Mācīšanās Rack sniedz mums skaidru pārskatu par arhitektūru un atklāj "maģiju" aiz tās. Ruby tīmekļa ietvarstruktūras.
