Par to ir daudz runāts Plaukts, bet, ja vien jūs pats neesat ietvara autors, to reti redzat. Kas ir Rack? Un kāpēc jums kā lietotņu izstrādātājam vajadzētu par to rūpēties?
Plaukta pamati
Plaukts ir sava veida starpprogrammatūra. Tas atrodas starp jūsu tīmekļa lietojumprogrammu un tīmekļa serveri. Tas apstrādā visus ar serveri saistītos API zvanus, HTTP pieprasījumu un visus vides parametrus nodod hash un sniedz jūsu lietojumprogrammas atbildi atpakaļ serverim. Citiem vārdiem sakot, jūsu lietojumprogrammai nav jāzina, kā sarunāties ar HTTP serveri, tai jāzina, kā runāt ar Rack.
Rack priekšrocības
Tam ir vairākas priekšrocības. Pirmkārt, runāt ar Rack ir viegli (kā redzēsit tālāk). Otrkārt, tā kā jums jāzina, kā runāt tikai ar Rack, un Rack zina, kā runāt ar daudziem dažādiem HTTP serveriem, jūsu lietojumprogramma darbosies uz jebkura no šiem HTTP serveriem. Plaukts ir kā universāls adapteris tīmekļa lietojumprogrammām.
Pašas Rack lietojumprogrammas nav nekas īpašs. Faktiski Rack API ir tik vienkārši mirusi, to var aprakstīt vienā teikumā:
Rack lietojumprogramma ir jebkurš Ruby objekts, kas reaģē uz zvana metodi, ņem vienu hash parametru un atgriež masīvu, kurā ir atbildes statusa kods, HTTP atbildes galvenes un atbildes korpuss kā virkņu masīvs.
Tas ir diezgan daudz. Tas izklausās pārāk vienkārši, lai būtu patiesība, vai vismaz pārāk vienkārši, lai būtu noderīgi, bet, kad tas patiešām nāk pie tā, tas ir viss, ko jūs patiešām darāt, runājot ar HTTP serveriem.
Kāpēc plaukts ir svarīgs?
Bet pie patiesā jautājuma: Kāpēc kā lietotņu programmētājam vajadzētu rūpēties par Rack? Pirmkārt, vienmēr ir apskaidrība, kā saprast jūsu ietvara darbību. Bet vēl svarīgāk ir tas, ka ir noderīgas lietas, kuras varat darīt ar Rack. Vissvarīgākais: starpprogrammatūra.
Tagad tas izklausās mazliet savādi. Bet papildu slānis starp jūsu lietojumprogrammu un Rack var būt laba lieta un ieviest funkcijas, kas tikai pārblīvē jūsu lietojumprogrammu. Šis starpprogrammatūra vienkārši ir ņemt pieprasījumu no Rack, nodot to jūsu lietojumprogrammai un iegūt to atbildi, pievienojiet tai kaut ko vai filtrējiet to vai kaut ko līdzīgu un pēc tam atbildi nosūtiet atpakaļ Plaukts. To var izmantot, lai ieviestu ļoti interesantas mazas funkcijas, piemēram, servera-agnostic logger vai pieprasījumu saprāta pārbaudītājs vai neliela starpprogrammatūra, kas e-pastu nosūta administratoram katru reizi, kad jūsu lietojumprogramma atgriežas ar 404. Nevienai no šīm funkcijām nav nepieciešams pārblīvēt jūsu lietojumprogrammu, tās var ieviest kā starpprogrammatūru ar Rack.