socialgekon.com
  • Glavni
  • Ljudje In Ekipe
  • Objava
  • Ui Design
  • Postopek Oblikovanja
Spletno Mesto

Spoznajte Volta, obetaven okvir Ruby za dinamične aplikacije

Volt je Rubyjev okvir, namenjen aplikacijam, bogatim s podatki. Tako na strežniški kot na odjemalski strani sta napisani v Rubyju (ki se nato prevede v JS z uporabo OPAL-a), zato razvijalec omogoča pisanje zelo dinamičnih aplikacij, ne da bi mu bilo treba napisati eno vrstico kode Javascript. Če ste Rubin ventilator kot meni, vam bo všeč ta okvir.

V poskusu, da bi spletne aplikacije postale veliko bolj dinamične, so Javascriptovi okviri, kot so Angular.js, Backbone.js in Ember.js, pridobili veliko popularnost. Vendar ti okviri pogosto zahtevajo, da je uporabna zaledna aplikacija, zato se uporabljajo skupaj s spletnimi okviri, kot sta Ruby on Rails in Django.

Po drugi strani pa je Ruby framework Volt sposoben upravljati back-end in dinamični front-end. Ker sta obe funkcionalnosti tesno integrirani v njegovo jedro (pravzaprav je Volt bolj podoben arhitekturi MVVM, ki izkorišča prednosti vezav podatkov), razvijalcu omogoča hitro izdelavo teh aplikacij.



Zelo kul funkcija, ki pride iz škatle, je Voltova funkcija v realnem času. Če ste kdaj izdelovali aplikacije v realnem času, veste, da je postopek lahko zahteven - verjetno ste izvedli anketiranje AJAX, spletne vtičnice, strežniške dogodke (SSE) ali celo uporabili zunanje storitve, dodali zapletenost aplikaciji in celo povzročili dodatne stroške . V nasprotju z drugimi ogrodji Volt ohranja povezavo s strežnikom (prek spletnih vtičnic), zato namesto da Ajax zahteva za vsako dejanje, spremembe takoj pošlje vsem strankam. Za to ni potrebna nobena konfiguracija.

Spoznajte Volta, obetaven okvir Ruby za dinamične aplikacije

Uporaba Volta za ustvarjanje aplikacije za klepet

V tej vadnici Ruby framework vas bom popeljal skozi postopek ustvarjanja aplikacije v realnem času z uporabo Volta in še boljši način kot aplikacija za klepet, da dokažem svoje zmogljivosti, saj klepet ostaja največji primer uporabe aplikacij v realnem času.

Najprej namestimo Volt in MongoDB. Slednji postopek ne bo podrobneje zajet:

gem install volt brew install mongodb mkdir -p /data/db

(ustvari dbpath)

chown `id -u` /data/db (change the owner to have the proper dbpath permissions)

Zdaj smo pripravljeni ustvariti svojo prvo aplikacijo, recimo ji 'klepet'. To lahko enostavno naredimo v nekaj vrsticah:

volt new chat cd chat

Struktura dokumenta ima nekaj podobnosti z Rails. Glavna razlika, ki jo bodo opazili uporabniki storitve Rails, je ta, da imamo v aplikaciji dodatno mapo, ki vsebuje ostale mape, kot so sredstva, krmilniki, modeli in pogledi, ta dodatna mapa pa je 'Komponenta'.

Komponenta je ločen odsek aplikacije. Vse strani znotraj komponente se upodobijo brez ponovnega nalaganja strani, saj so vse datoteke za to komponento naložene z začetno zahtevo http, tako da, če obiščemo stran druge komponente, bo narejena nova zahteva http in stran bo znova naložena '. V tem primeru uporabimo privzeto komponento, imenovano 'main'.

Zaženimo strežnik z izvajanjem ukaza ‘volt server’ v konzoli in si oglejte, kako izgleda v brskalniku, tako da se pomaknete na localhost: 3000:

volt server

Prav tako ne pozabite zagnati MongoDB v konzoli:

mongod

Opazimo, da Volt prihaja s številnimi privzetimi stranmi, vključno z „Domov“ in „Vizitka“. Te je mogoče prilagoditi takoj.

Druga stvar, ki jo je treba omeniti, je gumb za prijavo v zgornjem desnem kotu strani. Volt ima v ogrodje integrirano 'uporabniško' funkcionalnost prek dragulja 'volt-user-templates', ki omogoča neposredno registracijo in preverjanje pristnosti uporabnikov.

Kako začeti

Zdaj začnimo delati na naši aplikaciji. Najprej ne potrebujemo strani »Vizitka«, da lahko nadaljujemo in izbrišemo naslednje: app/main/views/main/about.html datoteko, približno dejanje v app/main/controllers/main_controller.rb, odstranite /about pot v app/main/config/routes.rb in navigacijska povezava v app/main/views/main/main.html.

Zdaj pa se lotimo posla in začnimo z naštevanjem vseh registriranih uporabnikov:

{{ if Volt.user }} { } {{ if user._id != Volt.user._id }} {{user._name}} {{ end }} {{ end }} {{ if params._user_id }} { current_conversation.each do }

{{ message._text }}

{{ end }} {{ if current_conversation.count == 0 }}

You have no messages yet. Start chatting!

{{ else }} {{ end }} Submit {{ end }} {{ else }}

This is a sample application built with Volt to demonstrate its real-time capabilities. Please log in to access it.

{{ end }}

Najprej preverimo, ali je pred prikazom obrazca izbran uporabnik, nato prikažemo vsa sporočila iz trenutnega pogovora (pogovor z izbranim uporabnikom) iz metode v krmilniku, ki jo bomo določili v bit, in na dnu prikazujemo obrazec za pošiljanje novih sporočil.

Upoštevajte, da je vrednost vnosa atribut, ki ga ustvarjamo v modelu zbirke strani, saj ne želimo, da se shrani v shrambo podatkov. Zdaj pa določimo current_conversation in send_message metode v krmilniku:

def send_message unless page._new_message.strip.empty? _messages <[{ sender_id: Volt.user._id, receiver_id: params._user_id }, { sender_id: params._user_id, receiver_id: Volt.user._id }] }) end

V metodi send_message v zbirko dodamo novo sporočilo, če sporočilo ni prazno (preverjamo v vrstici, da se trenutno ne bi morali motati s preverjanji), nato nastavimo stran ._new_message to ‘’ tako izpraznimo vnosno polje.

To vrstico bomo morda želeli dodati na konec select_conversation metoda. Trenutna metoda pogovora samo poizveduje _messages zbirka sporočil med izbranim uporabnikom in trenutnim uporabnikom.

Zaključite s sprotnimi obvestili

Za konec bi rad imel nekakšen sistem obveščanja, da bi uporabniki lahko videli, kdaj jim drugi uporabniki pošiljajo sporočila.

Dodajmo novo zbirko z imenom _notifications in ustvarite novo po vsakem poslanem sporočilu:

def send_message unless page._new_message.strip.empty? _messages << { sender_id: Volt.user._id, receiver_id: params._user_id, text: page._new_message } _notifications << { sender_id: Volt.user._id, receiver_id: params._user_id } page._new_message = '' end end def select_conversation(user) params._user_id = user._id unread_notifications_from(user).then do |results| results.each do |notification| _notifications.delete(notification) end end page._new_message = '' end def unread_notifications_from(user) _notifications.find({ sender_id: user._id, receiver_id: Volt.user._id }) end

Prav tako moramo izbrisati obvestila po tem, ko uporabnik izbere pogovor in vidi nova sporočila, zato sem ta del dodal v select_conversation metoda.

Dodajmo števec obvestil tik ob uporabniškem imenu:

{{user._name}} {{ if unread_notifications_from(user).count > 0 }} {{ unread_notifications_from(user).count }} {{ end }}

Zdaj je aplikacija pripravljena, lahko odprete nekaj brskalnikov in začnete preizkušati realnočasovne zmožnosti Volta.

Volt je vsekakor vreden poskusa

Čeprav Voltov okvir ni tako zrel in robusten kot večina priljubljenih Rubyjevih okvirov, ki obstajajo že leta (v trenutku, ko je Volt še vedno v beta različici), je vredno razmisliti in preučiti.

V primeru, da vas zanima, uporabite to vadnico v okviru Rubyja, da Volta odpeljete. Bodite pozorni na nadaljnji razvoj, saj je Volt že v tej zgodnji fazi razvoja videti kot zelo obetaven Rubyjev okvir.

V pripravi je veliko novih funkcij in prepričan sem, da bo Volt v naslednjih nekaj letih postal bolj aktualen, ko bo več ljudi začelo eksperimentirati z njim. Zaradi številnih inovativnih funkcij bi se lahko mnogi razvijalci zaljubili v Volta in ga uporabili za naslednjega Ruby projekt .

Predstavitveno oblikovanje in umetnost vizualnega pripovedovanja zgodb

Oblikovanje Blagovne Znamke

Predstavitveno oblikovanje in umetnost vizualnega pripovedovanja zgodb
H-1B: Potovanje razvijalca za iOS iz Hondurasa v Silicijevo dolino

H-1B: Potovanje razvijalca za iOS iz Hondurasa v Silicijevo dolino

Življenjski Slog

Priljubljene Objave
Zakaj odkupi delnic ne uspejo? Nekaj ​​predlaganih pravnih sredstev
Zakaj odkupi delnic ne uspejo? Nekaj ​​predlaganih pravnih sredstev
10 najpogostejših napak, ki jih naredijo razvijalci WordPressa
10 najpogostejših napak, ki jih naredijo razvijalci WordPressa
Spoznajte Ecto, brezkompromisni ovitek za zbirko podatkov za sočasne aplikacije Elixir
Spoznajte Ecto, brezkompromisni ovitek za zbirko podatkov za sočasne aplikacije Elixir
Ustvarjanje večplastnih aplikacij z Xamarin: perspektiva razvijalca za Android
Ustvarjanje večplastnih aplikacij z Xamarin: perspektiva razvijalca za Android
Kako GWT odklene razširjeno resničnost v vašem brskalniku
Kako GWT odklene razširjeno resničnost v vašem brskalniku
 
Globok potop v naložbe Elona Muska: zasluge milijarderja
Globok potop v naložbe Elona Muska: zasluge milijarderja
Kako začeti uspešen fotografski YouTube kanal
Kako začeti uspešen fotografski YouTube kanal
Kako enostavno narediti delovni prehod na daljavo
Kako enostavno narediti delovni prehod na daljavo
10 najpogostejših ranljivosti spletne varnosti
10 najpogostejših ranljivosti spletne varnosti
Oblikovalcem z ljubeznijo (pismo razvijalca)
Oblikovalcem z ljubeznijo (pismo razvijalca)
Kategorije
TehnologijaShranjevanjePostopek OblikovanjaLjudje In EkipeMobilniProces In OrodjaRise Of RemoteKpi In AnalitikaPrihodnost DelaMobilno Oblikovanje

© 2023 | Vse Pravice Pridržane

socialgekon.com