Filme porno

Categorii

Advertising

Dansand in jurul corzilor din Node.js si Redis

Kyle

14 aprilie 2015 · 3 min de citire

Aceasta este partea 1 din seria mea Node / Redis . Puteti citi Partea 2, Stocati obiectele Javascript in Redis cu Node.js in modul corect , Partea 3, Utilizarea obiectului multi Redis din Node.js pentru distractie si profit, Partea 4 Tinerea evidentei abonamentelor de cont cu Redis si Node.js, Partea 5 Gestionarea modularitatii si conexiunilor Redis in Node.js, Partea 6 Redis, Express si Streaming cu Node.js si Classic Literature (?), Partea 7 Untangling Redis sorteaza rezultatele cu Node.js si lodash si Partea 8 Redis, set, nod .

Hei! Daca citesti acest lucru, poate vrei sa mergi la RedisConf 2018 gratuit?

Am construit o serie de proiecte cu Node si Redis. Am descoperit ca software-ul meu era mai rapid, mai strans si mai bun daca renuntam la o baza de date relationala traditionala pentru Redis. Sigur, Redis are complicatii, dar la fel face ceva de genul MySQL – diferenta este ca Redis te face sa te gandesti la complicatiile ei in loc sa le ascunzi in propriul limbaj de interogare (complicat).

Un lucru care ma innebuneste cu Redis este gestionarea cheilor. Cand am inceput sa folosesc Node si Redis impreuna, am descoperit ca o multime de coduri aratau astfel:

client.get (‘super-app: status:’ + someUserName, …

Array

.)

Functioneaza, dar am o relatie complicata cu personajul de colon. Cred ca intra in joc memoria musculara si aproximativ 10% din timp imi doresc un colon ajung sa scriu un punct si virgula. Deci, uneori:

client.get (‘super-app; status:’ + someUserName, ….)

Nu e bun.

Devine mai rau.

Mai tarziu, am inceput sa-mi fac aplicatia configurabila, asa ca am setat radacina cheii ca variabila. Din nou, acest lucru functioneaza, dar este urat:

client.get (config.myAppRootKey + ‘: status:’ + someUserName, …

.)

Si mai rau, aveti probleme daca se intampla asa ceva:

client.get (config.myApppRootKey + ‘: status:’ + someUserName, ….)

Oferindu-va o cheie care are ca rezultat:

nedefinit: status: kyle

Eeek.

Eliminand problema inca un pas, sa presupunem ca faceti o inchidere pentru a reduce repetarea:

functia getInfo (infoType) {

return function (someUserName, cb) {

client.get (config.myAppRootKey + ‘:’ + infoType + ‘:’ + someUserName, …)

}

}

Da. Doar urat.

Primul lucru pe care l-am facut pentru a curata si a face nucleul mai fiabil este sa mut tastele catre propriul modul. In acest fel pot defini tastele o data si le pot folosi in toata aplicatia, indiferent de fisier. Suficient de simplu – creati doar un modul cu sirurile dvs. si solicitati-l. De obicei il numesc rKeys .

Am inceput apoi sa folosesc acest tip de cod pentru a uni totul:

client.get ([rKeys.appRoot, infoType, someUserName] .join (‘:’), …)

Arata mai bine, dar are probleme.

  1. Veti folosi join (‘:’) din nou si din nou, ceea ce este mai putin decat ideal.
  2. Nu este usor de vazut ce faceti unui nou dezvoltator.

Sa adaugam niste zahar in plus la amestec:

functia rk () {

return Array.prototype.slice.call (arguments) .join (‘:’)

}

Folosim Array.prototype.slice.call pentru a schimba argumentele dintr-un obiect asemanator matricei intr-un tablou adevarat, apoi unim totul cu doua puncte. Pentru a utiliza aceasta functie, trebuie doar sa o apelati cu orice numar de elemente si returneaza o tasta redis frumoasa, bine formatata.

client.get (rk (rKeys.appRoot, infoType, someUserName), …)

Deoarece stocam toate cheile noastre intr-un modul, puteti crea versiuni chiar mai scurte ale cheilor dvs. si le puteti documenta:

var

rKeys = {} // redis key

function rk () {

return Array.prototype.slice.call (arguments) .join (‘:’)

}

rKeys.base = ‘my-app’;

rKeys.users = rk (rKeys.base, ‘utilizatori’) // list

rKeys.status = rk (rKeys.base, ‘status’) // String

,: UserName rKeys.rk = rk; module.exports = rKeys;

Mai tarziu, in aplicatia dvs., puteti solicita modulul si puteti face asa ceva:

var

rKeys = require (‘./ rKeys.module.node.js’),

rk = rKeys.rk;

… client.get (rk (rKeys.status, userName), …)

In acest fel, nu va trebui sa va faceti griji cu privire la o neplacere la punct si virgula, la citarea / necotarea constanta a sirurilor si a plusurilor peste tot.

Video Description:

Kyle14 aprilie 2015 · 3 min de citireAceasta este partea 1 din seria mea Node / Redis . Puteti citi Partea 2, Stocati obiectele Javascript in Redis cu Node.js in modul corect , Partea 3, Utilizarea obiectului multi Redis din Node.js pentru distractie si profit, Partea 4 Tinerea evidentei abonamentelor de cont cu Redis si Node.js, Partea 5 Gestionarea modularitatii si conexiunilor Redis in Node.js, Partea 6 Redis, Express si Streaming cu Node.js si Classic Literature (?), Partea 7 Untangling Redis sorteaza rezultatele cu Node.js si lodash si Partea 8 Redis, set, nod .Hei! Daca citesti acest lucru, poate vrei sa mergi la RedisConf 2018 gratuit?Am construit o serie de proiecte cu Node si Redis. Am descoperit ca software-ul meu era mai rapid, mai strans si mai bun daca renuntam la o baza de date relationala traditionala pentru Redis. Sigur, Redis are complicatii, dar la fel face ceva de genul MySQL - diferenta este ca Redis te face sa te gandesti la complicatiile ei in loc sa le ascunzi in propriul limbaj de interogare (complicat).Un lucru care ma innebuneste cu Redis este gestionarea cheilor. Cand am inceput sa folosesc Node si Redis impreuna, am descoperit ca o multime de coduri aratau astfel:client.get ('super-app: status:' + someUserName, ... Array .)Functioneaza, dar am o relatie complicata cu personajul de colon. Cred ca intra in joc memoria musculara si aproximativ 10% din timp imi doresc un colon ajung sa scriu un punct si virgula. Deci, uneori:client.get ('super-app; status:' + someUserName, ....)Nu e bun.Devine mai rau.Mai tarziu, am inceput sa-mi fac aplicatia configurabila, asa ca am setat radacina cheii ca variabila. Din nou, acest lucru functioneaza, dar este urat:client.get (config.myAppRootKey + ': status:' + someUserName, ... porno kabyle exam-edu.com porno onlain propertiesofatlanta.com jeune porno kohlstn.com free porno sex luvboutique.biz porno adolescente moonlitexotics.eu agathe auproux porno www.hivresearcher.com porno party italianculture.net gina gerson porno expresslunch.com porno ding gardensecrets.biz film horreur porno tamarindocosta-rica.com porno xxxx mailchristies.info porno aloha childsafetyhinges.com 300 porno blogueisso.com porno 1980 pianet.info sophie davant porno cilada.com porno jeune vallen.info porno marocaine singlebb.com porno usa thebookdallasdirt.com star wars porno www.jiffle.com site porno trans www.paulleeder.com .)Si mai rau, aveti probleme daca se intampla asa ceva:client.get (config.myApppRootKey + ': status:' + someUserName, ....)Oferindu-va o cheie care are ca rezultat:nedefinit: status: kyleEeek.Eliminand problema inca un pas, sa presupunem ca faceti o inchidere pentru a reduce repetarea:functia getInfo (infoType) { return function (someUserName, cb) { client.get (config.myAppRootKey + ':' + infoType + ':' + someUserName, ...) } }Da. Doar urat.Primul lucru pe care l-am facut pentru a curata si a face nucleul mai fiabil este sa mut tastele catre propriul modul. In acest fel pot defini tastele o data si le pot folosi in toata aplicatia, indiferent de fisier. Suficient de simplu - creati doar un modul cu sirurile dvs. si solicitati-l. De obicei il numesc rKeys .Am inceput apoi sa folosesc acest tip de cod pentru a uni totul:client.get ([rKeys.appRoot, infoType, someUserName] .join (':'), ...)Arata mai bine, dar are probleme.Veti folosi join (':') din nou si din nou, ceea ce este mai putin decat ideal.Nu este usor de vazut ce faceti unui nou dezvoltator.Sa adaugam niste zahar in plus la amestec:functia rk () { return Array.prototype.slice.call (arguments) .join (':') }Folosim Array.prototype.slice.call pentru a schimba argumentele dintr-un obiect asemanator matricei intr-un tablou adevarat, apoi unim totul cu doua puncte. Pentru a utiliza aceasta functie, trebuie doar sa o apelati cu orice numar de elemente si returneaza o tasta redis frumoasa, bine formatata.client.get (rk (rKeys.appRoot, infoType, someUserName), ...)Deoarece stocam toate cheile noastre intr-un modul, puteti crea versiuni chiar mai scurte ale cheilor dvs. si le puteti documenta:var rKeys = {} // redis key function rk () { return Array.prototype.slice.call (arguments) .join (':') } rKeys.base = 'my-app'; rKeys.users = rk (rKeys.base, 'utilizatori') // list rKeys.status = rk (rKeys.base, 'status') // String ,: UserName rKeys.rk = rk; module.exports = rKeys;Mai tarziu, in aplicatia dvs., puteti solicita modulul si puteti face asa ceva:var ... rKeys = require ('./ rKeys.module.node.js'), rk = rKeys.rk; ... client.get (rk (rKeys.status, userName), ...)In acest fel, nu va trebui sa va faceti griji cu privire la o neplacere la punct si virgula, la citarea / necotarea constanta a sirurilor si a plusurilor peste tot.

Categorie:
Taguri:
Data adaugarii: