Habr pito i luma o ogalaau atiaʻe: toe faʻaleleia ma atagia

Habr pito i luma o ogalaau atiaʻe: toe faʻaleleia ma atagia

Ou te fiafia i taimi uma pe faʻafefea ona faʻatulagaina Habr mai totonu, faʻafefea ona faʻatulagaina galuega, faʻafefea ona faʻatulagaina fesoʻotaʻiga, o a tulaga faʻaaogaina ma pe faʻafefea ona tusia tulafono iinei. O le mea e lelei ai, na ou maua se avanoa faapena, aua talu ai nei na avea ai au ma se vaega o le 'au a le habra. I le faʻaaogaina o le faʻataʻitaʻiga o le toe faʻaleleia o le telefoni feaveaʻi, o le a ou taumafai e tali le fesili: pe faʻapefea le galue iinei i luma. I le polokalame: Node, Vue, Vuex ma SSR faʻatasi ma sosi mai faʻamatalaga e uiga i le poto masani i Habr.

O le mea muamua e tatau ona e iloa e uiga i le au atinaʻe o le toʻaitiiti o matou. E le lava - e tolu pito i luma, lua tua ma le taʻitaʻi faʻapitoa o Habr - Baxley uma. O loʻo i ai, ioe, o se suʻega, o se mamanu, tolu Vadim, o se salu faʻavavega, o se tagata tomai faapitoa tau maketi ma isi Bumburums. Ae e na o le ono lava sao sao i punaoa a Habr. E seasea lava lenei mea - o se poloketi e faitau miliona tala, lea mai fafo e foliga mai o se atinaʻe tele, o le mea moni e foliga mai o se amataga mafanafana ma le fausaga faʻalapotopotoga sili ona lelei.

E pei o le tele o isi kamupani IT, ua taʻua e Habr manatu Agile, faʻataʻitaʻiga CI, ma na o le pau lava lena. Ae e tusa ai ma oʻu lagona, o le Habr o se oloa o loʻo atiaʻe atili i galu nai lo le faʻaauau. O lea la, mo le tele o sprints i se laina, matou te faʻamaonia ma le filiga se mea, mamanu ma toe faʻaleleia, talepe se mea ma faʻaleleia, foia tiketi ma fatuina ni mea fou, laa i luga o se rake ma fana i matou i vae, ina ia faʻamatuʻu ai le ata i totonu. gaosiga. Ona oo mai ai lea o se malologa patino, se vaitaimi o le toe atiina ae, taimi e fai ai le mea o loo i totonu o le "taua-e le faanatinati".

O le mea tonu lava lea "off-season" sprint lea o le a talanoaina i lalo. O le taimi lea na aofia ai le toe faʻaleleia o le telefoni feaveaʻi o Habr. I se tulaga lautele, o loʻo i ai i le kamupani le faʻamoemoe maualuga mo ia, ma i le lumanaʻi e tatau ona suitulaga i le faleoloa atoa o faʻataʻitaʻiga a Habr ma avea ma faʻasalalauga faʻasalalau lautele. O le ai ai se aso o le ai ai le faʻatulagaina fetuutuunai, PWA, tulaga tuusao, faʻaoga faʻaoga, ma le tele o isi mea manaia.

Tatou seti le galuega

I se tasi taimi, i se tulaga masani, o se tasi o luma na talanoa e uiga i faafitauli i le fausaga o le vaega o faʻamatalaga o le telefoni feaveaʻi. Faatasi ai ma lenei mea i le mafaufau, na matou faʻatulagaina se micro-meeting i le faatulagaga o le psychotherapy vaega. Sa feauauai tagata uma e fai mai le mea e tiga ai, sa latou faamaumauina mea uma i luga o pepa, sa latou alolofa, sa latou malamalama, vagana ai e leai se tasi na patipati. O le iʻuga o se lisi o faʻafitauli e 20, lea na faʻamalamalamaina ai o le telefoni feaveaʻi o Habr o loʻo i ai pea se ala umi ma le matuitui i le manuia.

Sa sili ona ou popole e uiga i le lelei o le faʻaogaina o punaoa ma le mea e taʻua o se fesoʻotaʻiga lamolemole. O aso uma, i luga o le auala ile fale-galuega-fale, sa ou vaʻaia ai laʻu telefoni tuai o taumafai malosi e faʻaalia ulutala 20 i le fafaga. Na foliga mai e pei o lenei:

Habr pito i luma o ogalaau atiaʻe: toe faʻaleleia ma atagiaMobile Habr fa'aoga a'o le'i toe fa'afo'i

O le a le mea o tupu iinei? I se faapuupuuga, na tuʻuina atu e le 'auʻaunaga le itulau HTML i tagata uma i le auala lava e tasi, e tusa lava pe faʻaoga le tagata faʻaoga pe leai. Ona utaina lea o le kalani JS ma toe talosagaina faʻamatalaga talafeagai, ae fetuunai mo le faʻatagaina. O lona uiga, e faalua ona matou faia le galuega lava e tasi. Na emoemo le atinaʻe, ma na sii mai e le tagata faʻaoga se selau kilobytes faaopoopo. I auiliiliga mea uma na sili atu ona mataʻutia.

Habr pito i luma o ogalaau atiaʻe: toe faʻaleleia ma atagiaPolokalame tuai SSR-CSR. E na'o la'asaga C3 ma C4 e mafai ai le fa'atagaina, pe a le pisi Node JS i le fa'atupuina o le HTML ma mafai ona sui talosaga i le API.

O la matou fausaga o lena taimi sa matua saʻo ona faʻamatalaina e se tasi o tagata faʻaoga Habr:

O le telefoni feaveai e leaga. Ou te fai atu e pei o lea. O se tuufaatasiga mataʻutia o le SSR ma le CSR.

Sa tatau ona matou ioeina, e tusa lava po o le a le faanoanoa.

Na ou iloiloina filifiliga, faia se pepa ulufale i Jira ma se faʻamatalaga i le tulaga o le "leaga nei, fai saʻo" ma faʻaumatia le galuega i le lautele o taʻaloga:

  • toe fa'aoga fa'amaumauga,
  • faaitiitia le numera o toe tusi,
  • aveese fa'alua talosaga,
  • fa'amanino atili le faiga o uta.

Tatou toe fa'aoga fa'amaumauga

I le talitonuga, o le tuʻuina atu o le server-side rendering ua mamanuina e foia ai faʻafitauli e lua: e le o le mafatia i faʻatapulaʻaina o masini suʻesuʻe i tulaga o SPA fa'asino igoa ma faaleleia le metric FMP (e mautinoa le leaga TTI). I se tulaga masani na iu lava faia ile Airbnb ile 2013 tausaga (o loʻo i luga o Backbone.js), SSR o le isomorphic JS talosaga tutusa o loʻo faʻaogaina i le Node environment. E na'o le lafo e le 'au'aunaga le fa'atulagaina o le fa'atulagaina o se tali i le talosaga. Ona toe fa'aleleia lea o le vai i le itu o le kalani, ona galue lea o mea uma e aunoa ma le toe utaina o itulau. Mo Habr, e pei o le tele o isi punaoa o loʻo i ai tusitusiga, o le tuʻuina atu o le server o se elemene taua i le fausiaina o sootaga faauo ma masini suʻesuʻe.

E ui lava i le mea moni e sili atu ma le ono tausaga ua mavae talu mai le oʻo mai o tekinolosi, ma i le taimi lea o le tele o vai ua tafe moni i lalo o le alalaupapa i le pito i luma o le lalolagi, mo le tele o tagata atiaeina o lenei manatu o loʻo ufitia pea i le faalilolilo. Matou te leʻi tu ese ma taʻavale se Vue talosaga ma le SSR lagolago i le gaosiga, misi se tasi faʻamatalaga: matou te leʻi auina atu le tulaga muamua i le kalani.

Aisea? E leai se tali tonu i lenei fesili. Pe latou te leʻi manaʻo e faʻateleina le tele o le tali mai le 'auʻaunaga, pe ona o le tele o isi faʻafitauli faʻapitoa, pe naʻo le le alu ese. Le tasi auala poʻo le isi, lafo ese le setete ma toe faʻaaogaina mea uma na faia e le 'auʻaunaga e foliga mai e talafeagai ma aoga. O le galuega e matua faatauvaa lava - setete e na'o le tui i totonu o le faʻatinoga, ma faʻapipiʻi faʻapipiʻi e Vue i le faʻatulagaina o se suiga i le lalolagi atoa: window.__INITIAL_STATE__.

O se tasi o faʻafitauli ua tulaʻi mai o le le mafai lea ona faʻaliliu fausaga faʻataʻamilosaga i le JSON (faasinomaga lapotopoto); na foia e ala i le na o le suia o ia fausaga i latou tulaga mafolafola.

E le gata i lea, pe a feagai ma mataupu UGC, e tatau ona e manatua o faʻamatalaga e tatau ona liua i faʻalapotopotoga HTML ina ia aua nei motusia le HTML. Mo nei faʻamoemoe matou te faʻaaogaina he.

Fa'aitiitiga toe tusi

E pei ona mafai ona e vaʻaia mai le ata o loʻo i luga, i la matou tulaga, o le tasi Node JS faʻataʻitaʻiga e faia ni galuega se lua: SSR ma le "proxy" i le API, lea e tupu ai le faʻatagaina o tagata. O lenei tulaga e le mafai ai ona faʻatagaina aʻo faʻaogaina le code JS i luga o le 'auʻaunaga, talu ai o le node e tasi le filo, ma o le SSR galuega e faʻatasi. O lona uiga, e le mafai e le 'auʻaunaga ona tuʻuina atu talosaga ia te ia lava aʻo pisi le callstack i se mea. Na faʻaalia na matou faʻafouina le setete, ae e leʻi taofia le faʻaogaina o le atinaʻe, talu ai o faʻamatalaga i luga o le kalani e tatau ona faʻafouina ma amanaʻia le faʻaoga o le vasega. Matou te manaʻomia le aʻoaʻoina o la matou talosaga e tuʻu faʻamaumauga saʻo i le tulaga muamua, ma amanaʻia le saini a le tagata faʻaoga.

E na'o le lua fofo o le faafitauli:

  • fa'apipi'i fa'amatalaga fa'atagaga i talosaga fa'alava;
  • vaevae Node JS layers i ni tulaga eseese se lua.

O le fofo muamua e manaʻomia ai le faʻaogaina o fesuiaiga o le lalolagi i luga o le 'auʻaunaga, ma o le lona lua na faʻalauteleina le taimi e faʻamaeʻa ai le galuega e le itiiti ifo ma le masina.

E faapefea ona fai se filifiliga? O Habr e masani ona alu i luga o le ala e sili ona tetee. E le masani ai, o loʻo i ai se manaʻoga lautele e faʻaitiitia le taamilosaga mai le manatu i le faʻataʻitaʻiga i se mea maualalo. O le faʻataʻitaʻiga o uiga agaʻi i le oloa e faʻamanatu mai i faʻamatalaga a le booking.com, ma na o le pau lava le eseesega o le faʻaogaina e Habr o faʻamatalaga a tagata e sili atu ona faʻamaoni ma faʻatuatuaina oe, i le avea ai ma se atinaʻe, e faia ia filifiliga.

I le mulimuli ai i lenei manatu ma loʻu lava manaʻoga e vave foia le faʻafitauli, na ou filifilia ai suiga o le lalolagi. Ma, e pei ona masani ai, e tatau ona e totogia i latou i se taimi vave pe mulimuli ane. Na matou totogiina toetoe lava a vave: matou galulue i le faaiuga o le vaiaso, faʻamamaina taunuuga, tusi post siaki ma amata ona vaevaeina le server i ni vaega se lua. O le mea sese na matua valea lava, ma o le bug na aofia ai e le faigofie ona toe gaosia. Ma ioe, o se mea e maasiasi ai mo lenei mea, ae o se tasi auala poʻo se isi, tautevateva ma oi, o laʻu PoC ma suiga o le lalolagi na alu i le gaosiga ma o loʻo galue manuia aʻo faʻatali mo le siitia atu i se fausaga fou "lua-node". O se laasaga taua lea, aua na ausia aloaia le sini - na aʻoaʻoina e le SSR le tuʻuina atu o se itulau sauni atoatoa e faʻaaoga, ma o le UI na sili atu ona toʻa.

Habr pito i luma o ogalaau atiaʻe: toe faʻaleleia ma atagiaMobile Habr interface ina ua maeʻa le laasaga muamua o le toe faʻaleleia

Mulimuli ane, o le fausaga SSR-CSR o le telefoni feaveaʻi e tau atu i lenei ata:

Habr pito i luma o ogalaau atiaʻe: toe faʻaleleia ma atagia"Lua-node" SSR-CSR matagaluega. O le Node JS API e sauni i taimi uma mo le asynchronous I / O ma e le o poloka e le SSR galuega, talu ai o le mea mulimuli o loʻo tu i se isi tulaga. E le mana'omia le filifili #3.

Ave'esea talosaga fa'alua

Ina ua uma ona faia togafiti, o le uluai faaliliuga o le itulau na le toe faaosofia ai le epilepsy. Ae o le faʻaogaina atili o le Habr i le SPA mode na mafua ai le fenumiai.

Talu ai o le faʻavae o le faʻaogaina o tagata faʻaoga o suiga o le fomu lisi o tala → tala → fa'amatalaga ma le isi itu, sa taua le fa'asilisiliina o le fa'aaogaina o punaoa o lenei filifili i le mea muamua.

Habr pito i luma o ogalaau atiaʻe: toe faʻaleleia ma atagiaO le toe fo'i i le fafaga fa'ai'u e fa'aoso ai se talosaga fa'amatalaga fou

Sa leai se manaomia o le eli loloto. I le screencast o loʻo i luga e mafai ona e vaʻaia o le talosaga e toe talosagaina le lisi o tala pe a swipe i tua, ma i le taimi o le talosaga matou te le vaʻai i tala, o lona uiga o faʻamatalaga muamua e mou atu i se mea. E foliga mai o lo'o fa'aaogaina e le vaega o le lisi o tala se setete fa'apitonu'u ma leiloa i le fa'aumatia. O le mea moni, o le talosaga na faʻaaogaina se setete o le lalolagi, ae o le Vuex architecture na fausia i luga o le ulu: modules e nonoa i itulau, lea e fesoʻotaʻi atu i auala. E le gata i lea, o modules uma e "tuuina" - o asiasiga mulimuli ane i le itulau na toe tusia ai le module atoa:

ArticlesList: [
  { Article1 },
  ...
],
PageArticle: { ArticleFull1 },

I le aotelega, sa i ai sa matou module Lisi o Mataupu, o lo'o iai mea fa'atusa mea ma le module Itulau Mataupu, o se fa'aopoopoga fa'aopoopo o le mea mea, pei lava MataupuTumu. I le lautele, o lenei faʻatinoga e leai se mea leaga ia te ia lava - e matua faigofie lava, e mafai e se tasi ona fai mai le valea, ae e matua malamalama lava. Afai e te toe setiina le module i taimi uma e te suia ai le auala, e mafai foi ona e ola ai. Ae ui i lea, fealuai i le va o fafaga tala, mo se faʻataʻitaʻiga /fafaga → /uma, ua faʻamaonia e lafo ese mea uma e fesoʻotaʻi ma fafaga a le tagata lava ia, talu ai e naʻo le tasi Lisi o Mataupu, lea e te manaʻomia e tuʻu ai faʻamatalaga fou. O lenei mea e toe ta'ita'ia ai i tatou i le toe fa'aluaina o talosaga.

I le aoina o mea uma na mafai ona ou eliina i luga o le autu, na ou faia ai se fausaga fou o le setete ma tuuina atu i aʻu uo. Na umi le talanoaga, ae i le faaiuga o finauga na lagolagoina na sili atu i masalosaloga, ma na amata ona ou faatinoina.

O le manatu o se fofo e sili ona faaalia i ni laasaga se lua. Muamua matou te taumafai e vavae le Vuex module mai itulau ma fusi saʻo i auala. Ioe, o le a iai sina faʻamatalaga i totonu o le faleoloa, o le a sili atu le lavelave o tagata faʻatau, ae matou te le utaina faʻalua faʻamatalaga. Mo le telefoni feaveai, atonu o le finauga sili lea ona malosi. O le a foliga e pei o lenei:

ArticlesList: {
  ROUTE_FEED: [ 
    { Article1 },
    ...
  ],
  ROUTE_ALL: [ 
    { Article2 },
    ...
  ],
}

Ae faʻafefea pe a mafai e lisi o tusiga ona faʻafefe i le va o le tele o auala ma faʻafefea pe a tatou manaʻo e toe faʻaaogaina faʻamatalaga mea mea e fa'ailoa ai le itulau fa'asalalau, liliu i totonu MataupuTumu? I lenei tulaga, o le a sili atu ona talafeagai le faʻaaogaina o sea fausaga:

ArticlesIds: {
  ROUTE_FEED: [ '1', ... ],
  ROUTE_ALL: [ '1', '2', ... ],
},
ArticlesList: {
  '1': { Article1 }, 
  '2': { Article2 },
  ...
}

Lisi o Mataupu o lea ua na o se ituaiga o faleteuoloa o tala. O tala uma na sii mai ile taimi ole fa'aoga. Matou te togafitia i latou ma le faʻaeteete tele, aua o le taʻavale lea atonu na sii mai e ala i tiga i se mea i le metro i le va o nofoaga, ma e mautinoa matou te le manaʻo e toe faʻatupu lenei tiga i le tagata faʻaoga e ala i le faʻamalosia o ia e utaina faʻamatalaga ua uma ona ia sii mai. O se mea faitino ArticlesIds ua na'o se fa'asologa o ID (e pei o "so'oga") i mea faitino mea. O lenei fausaga e mafai ai ona e aloese mai le fa'aluaina o fa'amatalaga masani i auala ma toe fa'aaogaina le mea mea pe a tu'uina atu se itulau meli e ala i le tu'ufa'atasia o fa'amatalaga fa'alautele i totonu.

O le gaioiga o le lisi o tala ua sili atu ona manino: o le vaega o le tagata e faʻasalalau e ala i le faʻasologa ma faʻamatalaga ID ma tusi le vaega teaser tusiga, pasia le Id e fai ma faʻaoga, ma le tamaititi, i le isi itu, toe aumai faʻamatalaga talafeagai mai. Lisi o Mataupu. A e alu i le itulau fa'asalalau, matou te maua le aso ua iai nei mai Lisi o Mataupu, matou te faia se talosaga e maua mai faʻamatalaga o loʻo misi ma faʻaopoopo i le mea o loʻo iai.

Aisea e sili atu ai lenei auala? E pei ona ou tusia i luga, o lenei faiga e sili atu le agamalu e tusa ai ma faʻamaumauga na sii mai ma faʻatagaina oe e toe faʻaaogaina. Ae e le gata i lea, e tatalaina ai le auala i ni avanoa fou e fetaui lelei i totonu o sea fausaga. Mo se fa'ata'ita'iga, palota ma uta tala i totonu ole fafaga e pei ona aliali mai. E mafai ona matou tuʻuina faʻamatalaga lata mai i totonu o se "teu" Lisi o Mataupu, teu se lisi ese o ID fou i totonu ArticlesIds ma logo le tagata fa'aoga e uiga i ai. A matou kiliki i luga o le "Faʻaali lomiga fou" faʻamau, o le a matou faʻaofiina Id fou i le amataga o le faʻasologa o le lisi o loʻo i ai nei ma o mea uma o le a galue toetoe lava faʻapitoa.

Fa'afiafia atili le la'uina

O le aisa i luga o le keke refactoring o le manatu o skeletons, lea e faʻaitiitia ai le inosia o le faagasologa o le siiina o mea i luga ole Initaneti lemu. E leai ni talanoaga i lenei mataupu; o le auala mai le manatu i le faʻataʻitaʻiga e lua itula. O le mamanu na faʻataʻitaʻiina ia lava, ma matou aʻoaʻoina a matou vaega e faʻafaigofie, e tau le fememeaʻi poloka div aʻo faʻatali mo faʻamatalaga. Ile tulaga, o lenei auala i le utaina moni e faʻaitiitia ai le aofaʻi o hormones faʻalavelave i le tino o le tagata faʻaoga. O le auivi e pei o lenei:

Habr pito i luma o ogalaau atiaʻe: toe faʻaleleia ma atagia
Habraloading

Mafaufauga

Sa ou faigaluega i Habré mo le ono masina ma o loʻo fesili pea aʻu uo: lelei, e te fiafia i ai iina? Lelei, mafanafana - ioe. Ae e iai se mea e ese ai lenei galuega mai isi. Sa ou galue i 'au e matua le fiafia lava ia latou oloa, le iloa pe malamalama po o ai a latou tagata faʻaoga. Ae o iinei e ese mea uma. O iinei e te lagona ai le nafa ma au mea e fai. I le faʻagasologa o le atinaʻeina o se faʻaaliga, o oe o se vaega e avea ma ona tagata, auai i fonotaga uma o oloa e fesoʻotaʻi ma au galuega, fai fautuaga ma fai au filifiliga. O le faia o se oloa e te faʻaaogaina i aso uma oe lava e manaia tele, ae o le tusiaina o tulafono mo tagata atonu e sili atu nai lo oe ua na o se lagona ofoofogia (leai se faʻatauga).

Ina ua maeʻa le faʻasalalauga o nei suiga uma, na matou mauaina ni faʻamatalaga lelei, ma sa matua manaia tele. E musuia. Fa'afetai! Tusi atili.

Sei ou faamanatu atu ia te oe ina ua uma suiga o le lalolagi na matou filifili e sui le fausaga ma tuʻufaʻatasia le sui sui i se isi faʻataʻitaʻiga. O le fausaga o le "lua-node" ua uma ona oʻo i le faʻamalolo i le tulaga o suʻega beta lautele. Ole taimi nei e mafai e se tasi ona sui i ai ma fesoasoani ia i matou e faʻaleleia atili le Habr feaveaʻi. Na pau lava lena mo le aso. O le a ou fiafia e tali uma au fesili i faʻamatalaga.

puna: www.habr.com

Faaopoopo i ai se faamatalaga