Ke kula hoʻomohala interface: ka nānā ʻana i nā hana no Minsk a me kahi hoʻonohonoho hou ma Moscow

I kēia lā ua wehe ʻia kahi papa inoa hou ʻO ke kula hoʻomohala ʻo Yandex Interface ma Moscow. E mālama ʻia ka pae mua o ka hoʻomaʻamaʻa ʻana mai Kepakemapa 7 a ʻOkakopa 25. Hiki i nā haumāna mai nā kūlanakauhale ʻē aʻe ke komo i loko o ia wahi ma kahi mamao a i ʻole - e uku ka hui no ka huakaʻi a me ka noho ʻana ma kahi hale hoʻokipa. ʻO ka lua, ʻo ka pae hope hoʻi, e mau ana a hiki i ka lā 3 o Dekemaba, hiki ke hoʻopau i ke kino wale nō.

ʻO Yulia Seredich koʻu inoa, ua kākau mākou i kēia pou me Sergei Kazakov. ʻO mākou nā mea hoʻomohala ma ke keʻena Minsk o Yandex a me nā haumāna puka o SRI mai nā makahiki i hala.

Ke kula hoʻomohala interface: ka nānā ʻana i nā hana no Minsk a me kahi hoʻonohonoho hou ma Moscow

I ka manawa o ka wehe ʻana o ka hoʻopaʻa inoa ma Moscow, ke hoʻopuka nei mākou i kahi loiloi o nā hana hoʻomaka i ke kula mua - ma Minsk.

Inā ʻoe e ʻimi i ka mōʻaukala o nā haʻawina SRI, mai kēlā makahiki a i kēia makahiki ua hoʻāʻo mākou i ʻekolu mau mākau koʻikoʻi no ka mea polokalamu:

  • Hoʻolālā. Hiki i kēlā me kēia mea hoʻomohala ke hana i ka hoʻolālā. ʻAʻole hiki ke loaʻa iā ʻAnakala Seryozha nāna i hoʻolālā no ka hui holoʻokoʻa, a kākau wale ʻoe i nā palapala. No laila, pono i kēlā me kēia haumāna ke hōʻike i kona ʻike i ke kākau ʻana.
  • JavaScript. Inā i kaupalena ʻia ka mea i ka hoʻolālā, a laila ʻaʻole loaʻa iā mākou kahi Kula o ka Hoʻomohala Interface, akā he Kula o nā mea hoʻolālā hoʻolālā. Pono e ho'āla hou ʻia ke kikowaena nani i hoʻolālā ʻia. No laila, aia mau kahi hana no JS, akā i kekahi manawa he hana no nā algorithms - aloha mākou iā lākou.
  • ʻO ka hoʻoponopono pilikia paha ka mākau nui loa o ka mea hoʻomohala. I ka hana ʻana i nā interface, ke loli wikiwiki nei nā mea. Ua like ia me Lewis Carroll: "Pono ʻoe e holo wikiwiki e like me kou hiki ke noho ma kahi hoʻokahi, a no ka hele ʻana i kahi ʻē aʻe pono ʻoe e holo wikiwiki ʻelua." I kēlā me kēia lā e ʻike mākou i nā ʻenehana hou - pono mākou e noʻonoʻo a hiki ke hoʻomaopopo iā lākou. No laila, i ka hana ʻekolu, ua manaʻo mākou e hoʻomaopopo i nā ʻenehana i ʻike ʻole ʻia e ka mea hoʻomohala novice.

I ka nānā ʻana i kēlā me kēia hana, e haʻi mākou iā ʻoe ʻaʻole wale e pili ana i ke kaʻina hana kūpono, akā no nā hewa maʻamau.

Hana 1: Palapala

ʻO ka hana mua i hana ʻia e Yandex.Collections mea hoʻolālā Alexey Cherenkevich, ka mea i ʻike pehea e hana ai i ka hoʻolālā, a me kāna hoa lawelawe lawelawe, ka mea hoʻomohala interface Sergey Samsonov.

Kūlana

E hana i kahi punaewele punaewele: e haʻi mai iā mākou e pili ana iā ʻoe iho, kāu hana a me kāu mau manaʻo mai ke Kula. Pono ka pūnaewele e like me ka mea hiki i ka hoʻolālā i manaʻo ʻia (nā loulou i nā hoʻonohonoho: 1000px, 600px, 320px, kikoʻī). Makemake wale mākou i ka hoʻolālā, no laila, mai hoʻohana i ka JavaScript.

I ka nānā ʻana, e noʻonoʻo mākou:

  • ka nui o ka indentation, ka pololei o ka waihoʻoluʻu, ke ʻano kikokikona, ka nui o ka font;
  • hoʻolālā semantic;
  • ka hiki ʻana mai o nā ʻano mea like ʻole: e hōʻike ana i nā pihi a me nā loulou i ka wā e kau ana i ka cursor, e hōʻike ana i nā kahua hoʻokomo ikaika, etc.;
  • ka hoʻohālikelike ʻana i ka cross-browser (i hoʻāʻo ʻia i nā mana hou o nā polokalamu kele kaulana).

ʻO ka pōmaikaʻi:

  • hoʻohana i nā hoʻonā CSS hou: flexbox, grid, etc.;
  • Hoʻolālā kūpono;
  • ka hoʻohana ʻana i nā mea hana ma mua a (a) post-processors, hui ʻana, minification, optimization o nā code output;
  • ʻO ka hōʻoia ʻana o ka palapala HTML, ke pihi hoʻouka faila i hoʻolima ʻia.

Nui loa ka hana, no laila hiki iā ʻoe ke hoʻokuʻu i ka mea e hana ʻole. E hoʻohaʻahaʻa iki kēia i kāu helu, akā hiki nō iā ʻoe ke hōʻike i kou ʻike. Ke pau ʻoe, e hoʻouna mai iā mākou i ʻelua loulou - i kāu kōpili a me ke kumu kumu ma GitHub.

ʻAʻole ʻo nā ʻōkuhi i manaʻo ʻia ma ka hana me nā pale no nā polokalamu kelepona, papa a me nā pākaukau, akā me nā kikoʻī maoli.

I mea e lawe mai ai i ka mea nui i ka hopena o ka nānā ʻana i ka hana mua, ua nui nā pae hoʻohālike no kēia nānā.

Nā Kūlana

Paena pūnaewele i hoʻolālā ʻia. ʻIke ʻia kēia, akā ua hoʻokuʻu wale kekahi poʻe i kekahi mau poloka - makemake lākou e mālama i ka manawa, a i ʻole hiki iā lākou ke hana. Hiki ke hoʻokaʻawale ʻia ka hoʻolālā i ʻehā mau pale nui: ʻo ka pale nui me kahi avatar, kahi poloka me kahi papa inoa o nā mea i manaʻo ʻia mai SRI, kahi poloka me kahi portfolio a me kahi poloka me ka ʻike pili. Hiki iā lākou ke hana i nā ʻāpana a i ʻole ka hoʻohana ʻana i nā divs, ʻo ka mea nui i loaʻa nā poloka ʻehā.

Hoʻokō i ka hoʻolālā me ka hoʻolālā. Ua hana ka mea hoʻolālā i kahi kikoʻī ʻokoʻa (me nā kala, typography, button states, etc.) i mea e maʻalahi ai nā moho. Aia ma ka lalo he hōʻailona ma nā indents a me nā hiʻohiʻona o ka pale mua. Ua hauʻoli nui wau i nā poʻe i noʻonoʻo i nā makemake a pau o ka mea hoʻolālā: no ka laʻana, ʻaʻole i emi ka pale mua ma mua o ke kiʻekiʻe o ka viewport.

Hoʻolālā hoʻololi - ʻo kēia ka manawa ʻaʻole i waiho wale ʻia ka interface i ʻekolu mau hoʻonā ʻana i nā mea a pau i ka pixel i ka pixel i ka hoʻolālā. Ma nā mokuʻāina waena, ʻaʻole pono e hāʻule ka hoʻolālā. Ua poina kekahi i ka palena ʻana i ka laula kiʻekiʻe o ka ipu a hoʻonoho i nā mea āpau i 1920 pixels, ua hoʻopololei kekahi i nā ʻaoʻao, akā ʻo ka mea holoʻokoʻa ua hoʻokō pono nā moho i kēia hana.

Hoʻolālā Semantic. "Ehia mau manawa a lākou i haʻi ai i ka honua" e hoʻolālā ʻia ka loulou e like me , ke pihi - e like me . ʻO ka mea pōmaikaʻi, ua hoʻokō ka hapa nui o nā moho i kēia koi. ʻAʻole i ʻike ka poʻe a pau i ka papa inoa huna i nā manaʻolana o ka SRI, e hana ana me ka hoʻohana ʻana i nā inoa div, akā ʻaʻole ia he mea ʻino. Aia kekahi moho nāna i hoʻokomo i nā huaʻōlelo semantic a pau āna i ʻike ai - ma kahi e pono ai a ma kahi ʻaʻole pono. No ka laʻana, ma kahi o kahi papa inoa - a . Ma hope o nā mea a pau, semantics - e pili ana i ka hoʻomaopopo ʻana i ke ʻano o kāu ʻaoʻao a me ke kumu o kēlā me kēia poloka (ʻo ka hapa nui i hoʻokele iā ia ma aneʻi), a me ka hoʻohana ʻana i nā pre- a / a i ʻole nā ​​​​mea hana hope (ua mālama ʻia kekahi ma ʻaneʻi, ʻoiai ʻo kēia. aia nō hoʻi i loko o nā helu - ʻoi aku ka nui o ka hoʻohana liʻiliʻi a me ka scss) .

Mea pahee hana. Ma ka hana a mākou i kākau ai ʻaʻole hiki ke hoʻohana ʻia ʻo JS. Maanei ua hoʻāʻo ʻia ka hiki ke hoʻoponopono i nā pilikia - hiki ke hana ʻia kahi slider me ka hoʻohana ʻana i kahi pūpū a . Loaʻa nā mea kilokilo a pau ma ka pae koho #button-N:checked ~ .slider-inner .slider-slides. Ke kaomi nei mākou i kekahi o nā pahu helu komo, hele ia i loko o ka mokuʻāina i hoʻopaʻa ʻia. Hiki iā mākou ke hoʻohana i kēia a hāʻawi i ka unuhi e pono ai mākou i ka pahu me nā kiʻi paheʻe: hoʻololi: unuhi (-33%). Hiki iā ʻoe ke ʻike i ka hoʻokō ʻana o ka slider maanei.

Nā papa inoa hāʻule iho. Eia no hoi na mea a pau a me ka mea koho like: .accordion-item input:checked ~ .accordion-item__content. Hiki iā ʻoe ke ʻike i ka hoʻokō maanei.

Loaʻa i nā mokuʻāina :hover, :active a :focu*. He mea nui loa. ʻO ka hōʻoluʻolu i ka wā e launa pū me ka interface i hilinaʻi ʻia ma luna o ia. Pono ka mea hoʻohana e loaʻa i nā manaʻo no kā lākou hana. Ua nānā ʻia kēia mea i ka wā o ka launa pū ʻana me ka nīnau nīnau. Inā pā wau i ka pihi "Call me" a ʻike ʻia ʻaʻohe mea i loaʻa (ʻoiai ua hoʻouna ʻia ka noi), hewa kēia, no ka mea a laila e kaomi hou wau iā ia. ʻO ka hopena, e hoʻouna ʻia nā noi he ʻumi a e kāhea hou ʻia au i ʻumi manawa. ʻAʻole pono mākou e poina ʻaʻohe ʻiole nā ​​polokalamu kelepona, ʻo ia hoʻi, ʻaʻole pono kahi hover. A ʻo kekahi mea ʻē aʻe i pili ʻole i ka poʻe i hoʻokō i ka manaʻo e pili ana i ka semantics. Inā ʻaʻole he mea pāʻani kāu mana, a laila ke kau ʻoe ma luna o ia mea, e noho maʻamau ka cursor. ʻAʻole pono ke nānā aku, ʻoiai inā ua kākau ʻoe i kahi pane i ka hover. Mai hoʻohaʻahaʻa i ka cursor: pointer.

Nā mea hoʻolalelale. He mea nui e maʻalahi nā hopena a pau me nā mea. ʻAʻohe mea i ke ola koke, no laila ua lawa ka hoʻololi ʻana i ka hover a me ka hana i mea e ʻoluʻolu ai ka interface. ʻAe, ʻoi aku ka maikaʻi o ka poʻe i animated i ka slider a me nā papa inoa.

Ke hoʻohana nei i ka ʻenehana hou loa. Nui ka poʻe i hoʻohana i ka flex, akā ʻaʻohe mea i hoʻopau i ka hana me ka hoʻohana ʻana i ka grid. Ua helu ʻia ke kiko inā hoʻohana pono ʻia ka flex. Inā ʻokoʻa ka hoʻolālā ma muli o kēia mau flexes loa, auwe, ʻaʻole i loaʻa iā ʻoe nā helu hou.

Hōʻoia palapala. ʻO nā mea a pau i koi ʻia ʻo ka hoʻohui ʻana i ke ʻano i koi ʻia i kēlā me kēia hoʻokomo o ka palapala. Ua hoʻohui mākou i nā helu i ka poʻe i hōʻoia i ka leka uila e like me ka leka uila.

Hoʻolima i ke pihi hoʻoili faila. Ua manaʻo mākou e ʻike i kahi hui like: a koho i ka faila . A laila pono mākou e hūnā i ka hoʻokomo a me ke ʻano o ka lepili. Aia kekahi ala maʻamau - e hana i kahi hoʻokomo akaka a kau ma luna o ke pihi. Akā ʻaʻole ʻae nā mea hoʻokele a pau i ke ʻano , a ʻaʻole hiki ke kapa ʻia kēlā ʻano hoʻonā holoʻokoʻa holoʻokoʻa. A ʻoi aku ka pololei o ka hana ʻana i kahi lepili.

ʻO ka hoʻolike like ʻana o ka polokalamu kele pūnaewele. Ua nānā mākou ua maikaʻi nā mea āpau i nā mana hou ʻelua o nā polokalamu kele hou (me ka ʻole o IE - laki nā mea komo), a me Safari ma iPhones a me Chrome ma Androids.

Ma kahi ʻē aʻe, ua unuhi mākou i nā helu inā hoʻohana kekahi iā JS a i ʻole Bootstrap: e lanakila lāua ʻelua i ke kumu o ka hana holoʻokoʻa. Eia kekahi, ʻaʻole i loaʻa wale i nā mea komo me Bootstrap kahi minus, akā ua nalowale nā ​​helu he nui no nā semantics a me nā mea hoʻokō.

ʻAʻole i loaʻa i ka poʻe nāna i mālama i kā lākou pūnaewele ma kahi o ka Pūnaewele - akā hauʻoli nui ka poʻe loiloi i ka wā ʻaʻole pono lākou e hoʻoiho i nā waihona a holo iā lākou ma kā lākou kamepiula. No laila ua lilo kēia i mea hoʻohui no ka karma.

He mea pono loa ka hana mua no ka haumana. ʻO ka poʻe a mākou i ʻae ʻole i kēia manawa ua mākaukau ka hoʻomaka - hiki iā ʻoe ke hoʻopili haʻaheo iā ia i nā pane āpau a i ʻole e kau ma kāu mau ʻaoʻao gh.

Hana 2: Ala kaʻa

ʻO ka mea kākau o ka hana ke poʻo o ka hui hulina ʻo Denis Balyko.

Kūlana

He palapala ʻāina hōkū kāu? Hōʻike ia i ka inoa o kēlā me kēia hōkū, a me ka mamao mai ia wahi a i nā hōkū ʻē aʻe i nā kekona māmā. E hoʻokō i ka hana hoʻonā, pono e lawe i ʻekolu mau hoʻopaʻapaʻa: kahi mea i loaʻa i nā kī nā inoa o nā hōkū, a ʻo nā waiwai ka mamao o nā hōkū (hoʻokahi ala kaʻa i ka lewa), a me nā inoa o nā hōkū. nā wahi hoʻomaka a me ka hopena o ke ala - hoʻomaka a hoʻopau, kēlā me kēia. Pono e hoʻihoʻi ka hana i ka mamao pōkole loa mai ka hōkū hoʻomaka a i ka hōkū hoʻopau a me ke ala e hahai ai.

Kalima hana:

const solution = function(graph, start, finish)  {
    // Ваше решение
} 

Laʻana hoʻokomo ʻikepili:

const graph = {
  start: { A: 50, B: 20 },
  A: { C: 40, D: 20 },
  B: { A: 90, D: 90 },
  C: { D: 160, finish: 50 },
  D: { finish: 20 },
  finish: {}
};
const start = 'start';
const finish = 'finish'; 

Laʻana hoʻopuka:

{
    distance: 90,
    path: ['start', 'A', 'D', 'finish']
} 

'Ōlelo Aʻo: Aia ka iwi i loko o ka waihona src/, e hoʻokomo i kāu hoʻonā i solution.js.

ʻO ka hōʻoia ʻana o ka hana ʻelua ka mea maʻalahi a me ka pahuhopu. Manaʻo ka hapa nui o nā kāne he pono e hoʻokō i ka algorithm a Dijkstra. ʻO ka poʻe i loaʻa i kāna wehewehe a hoʻokō i ka algorithm ma JS ua hana maikaʻi ʻia. Eia naʻe, i ka nānā ʻana i ka hana, ua ʻike mākou i nā pepa he nui me nā hewa like. Ua ʻimi mākou i ka Pūnaewele no nā ʻāpana code a loaʻa kahi ʻatikala kahi i kope ai nā mea komo i ka algorithm. He mea ʻakaʻaka ka nui o ka poʻe i kope i ke code mai ka ʻatikala me nā ʻōlelo a ka mea kākau. Loaʻa ia mau hana i ka helu haʻahaʻa. ʻAʻole mākou e pāpā i ka hoʻohana ʻana i kekahi kumu, akā makemake mākou i ke kanaka e ʻimi i kāna mea i kākau ai.

Nā Kūlana

Hāʻawi ʻia nā helu nui no nā hoʻokolohua. I kekahi manawa ua maopopo ka hana ʻino ʻana o nā kāne me ka waihona, hoʻololi i ka inoa o nā faila, a ʻaʻole pau nā hoʻokolohua no ka mea ʻaʻole hiki iā lākou ke loaʻa nā faila pono. I kēia makahiki ua hoʻāʻo mākou e kōkua i kēlā mau kāne a hoʻihoʻi i nā mea āpau i kona wahi no lākou. Akā i kēia makahiki aʻe, hoʻolālā mākou e hoʻololi i kahi ʻōnaehana hoʻokūkū, a ʻaʻole e kala ʻia kēia.

Aia pū kekahi "kanaka", nā papa kuhikuhi manual. ʻO kahi laʻana, ke kū ʻana o kahi ʻano code hoʻokahi. ʻAʻohe mea i unuhi i nā helu no ka hoʻohana ʻana i nā tab ma kahi o nā hakahaka a i ʻole. He mea ʻē aʻe inā ʻoe e hoʻololi i nā huaʻōlelo hoʻokahi me nā huaʻōlelo pālua e like me ke kānāwai hoʻokahi i ʻike ʻia e ʻoe, a kau i nā semicolons ma kahi ʻole.

ʻO ka maopopo a me ka heluhelu ʻana o ka hoʻonā i lawe ʻokoʻa ʻia. Ma nā ʻaha kūkā a pau o ka honua, ʻōlelo lākou he 80% o ka hana a ka mea papahana i ka heluhelu ʻana i nā code a nā poʻe ʻē aʻe. Hiki i nā keiki kula ke hana i nā loiloi code - mai kā lākou curators a mai kekahi i kekahi. No laila, ua lawe ʻia kēia koʻikoʻi i ke kaumaha nui. Aia kekahi mau hana i loaʻa ʻole nā ​​​​mea hoʻololi i ʻoi aku ma mua o hoʻokahi ʻano - e ʻoluʻolu mai hana i kēlā. ʻO nā manaʻo mai ka poʻe i komo mai he mea hoʻoikaika loa - koe naʻe nā mea i like me nā ʻōlelo a Stella Chang.

ʻO ka pae hope loa ka loaʻa ʻana o nā autotests. He liʻiliʻi wale nō ka poʻe i hoʻohui iā lākou, akā no kēlā me kēia mea ua lilo ia i mea hoʻohui nui i kā lākou karma.

Haʻina pololei:

const solution = function(graph, START, FINISH)  {
    // Всё не бесплатно в этом мире
    const costs = Object.assign({[FINISH]: Infinity}, graph[START]);

    // Первая волна родительских нод
    const parents = { [FINISH]: null };
    Object.keys(graph[START]).reduce((acc, child) => (acc[child] = START) && acc, parents)

    const visited = [];
    let node;

    // Ищем «дешёвого» родителя, отмечаем пройденные
    do {
        node = lowestCostNode(costs, visited);
        let children = graph[node];
        for (let n in children) {
            let newCost = costs[node] + children[n];

            // Ещё не оценена или нашёлся более дешёвый переход
            if (!costs[n] || costs[n] > newCost) {
                costs[n] = newCost;
                parents[n] = node;
            }
        }
        visited.push(node);
    } while (node)

    return {
        distance: costs[FINISH],
        path: optimalPath(parents)
    };

    // Возврат назад по самым «дешёвым» родителям
    function optimalPath(parents) {
        let optimalPath = [FINISH];
        let parent = parents[FINISH];
        while (parent && parent !== START) {
            optimalPath.push(parent);
            parent = parents[parent];
        }
        optimalPath.push(START);
        return optimalPath.reverse();
    }

    // Минимальная стоимость из текущей ноды среди непросмотренных
    function lowestCostNode(costs, visited) {
        return Object.keys(costs).reduce((lowest, node) => {
            if (lowest === null || costs[node] < costs[lowest]) {
                if (!visited.includes(node)) {
                    lowest = node;
                }
            }

            return lowest;
        }, null);
    };
};

Hana 3: Kalena Hana

Ua hoʻomākaukau ʻia e nā mea hoʻomohala interface ʻo Sergey Kazakov a me Alexander Podskrebkin.

Kūlana

E kākau i kahi kalena liʻiliʻi e hōʻike i kāu papahana. Hiki iā ʻoe ke lawe i kēlā me kēia papahana āu e makemake ai. No ka laʻana, ka papa kuhikuhi o nā hālāwai mua ma 2019.

Pono ke kalena me he papa inoa la. ʻAʻohe koi hoʻolālā ʻē aʻe. Hiki iā ʻoe ke hoʻonohonoho i nā hoʻomanaʻo hanana hanana 3, 7 a me 14 mau lā ma mua. Ma hope o ka hoʻoiho mua ʻana mai ka Pūnaewele, pono e wehe ka kalena a hana ma waho.

Nā Kumuwaiwai Pono

Ka papa manawa o ka hālāwai kūkā mua:
confs.tech/javascript?topics=javascript%2Bcss%2Bux

Nā limahana lawelawe:
developer.mozilla.org/ru/docs/Web/API/Service_Worker_API/Using_Service_Workers
developers.google.com/web/fundamentals/primers/service-workers

API no ka hoʻolaha:
developer.mozilla.org/ru/docs/Web/API/Notifications_API

ʻO ke kolu o ka hana ʻo ia ka mea hoihoi loa i ka hoʻāʻo ʻana, no ka mea, he nui nā hoʻonā hiki, kēlā me kēia me kā lākou iho. Ua nānā mākou i ka hana ʻana o ka moho i nā ʻenehana ʻike ʻole - inā ʻike ʻo ia i ka noiʻi ʻana, inā paha ʻo ia e hoʻāʻo i kāna mau hoʻonā.

Nā Kūlana

ʻAlemanaka peʻa. ʻAe, pono e waiho ʻia. Aia kekahi poʻe i lawe maoli i ke kūlana a ʻaʻole i hoʻokomo i hoʻokahi laina o ka code CSS. ʻAʻole ia he nani loa, akā inā hana nā mea a pau, ʻaʻole i emi nā helu.

Loaʻa i kahi papa inoa o nā hanana mai kahi kumu. ʻAʻole kēia he hana hoʻolālā, no laila ʻaʻole i helu ʻia ka papa inoa o nā hanana i loko. Hiki iā ʻoe ke hoʻopau i kahi hālāwai kūkā, hoʻonohonoho hou, a hoʻohui i kahi mea hou. No laila, pono e loaʻa ka ʻikepili mai waho a hāʻawi i ka hoʻolālā e pili ana i ka JSON i loaʻa. He mea nui ka loaʻa ʻana o ka ʻikepili ma kekahi ʻano (me ka hoʻohana ʻana i ke ala kiʻi a i ʻole XMLHttpRequest). Inā hoʻohui kekahi i kahi polyfill no ke kiʻi ʻana a hōʻailona i kāna koho ma ka readme, ua helu ʻia kēia he hoʻohui.

Hoʻopaʻa inoa limahana lawelawe me ka hewa ʻole a hana ma waho ma hope o ka hoʻoiho mua ʻana. Eia kekahi hiʻohiʻona mea lawelawe me ka hoʻopaʻa ʻana i ka manawa ma ka pahu mua. Hiki ke loaʻa nā kikoʻī e pili ana i nā limahana lawelawe, ko lākou hiki a me ke ʻano o ka hana pū ʻana me lākou (nā hoʻolālā no ka hana ʻana me nā caches, hana ma waho) hiki ke loaʻa ma aneʻi.

Hiki ke hoʻonohonoho i kahi hoʻomanaʻono laila e hana maoli ia ma hope o 3, 7, 14 mau lā. Pono e hoʻomaopopo i ka API Hoʻolaha, loulou i kahi pololei i ka hana. ʻAʻole mākou i manaʻo i kekahi hoʻokō kikoʻī e nānā inā ua hiki i ka manawa e pana. Ua ʻae ʻia kekahi koho hana: mālama ʻia i loko o localStorage, IndexDB a i ʻole ke koho balota ʻana e kekahi limahana lawelawe. Ua hiki nō ke hana i kahi kikowaena pana (eia hiʻohiʻona), akā ʻaʻole e hana ma waho. He mea nui nō hoʻi ka loaʻa ʻana o ka pana ma hope o ka pani ʻana o ka ʻaoʻao - a wehe ʻia ma hope o kekahi manawa. Inā make ka hoʻomanaʻo i ka manawa like i pani ʻia ai ka ʻaoʻao, ʻaʻole i helu ʻia ka hopena. He ʻoluʻolu i ka wā i noʻonoʻo ai nā kāne e pili ana i nā loiloi a hiki ke loaʻa i kahi pahu i kēia manawa - i ʻole e kali i 3 mau lā.

Hiki ke kau i kahi ikona ma ka papapihi (PWA). Ua nānā mākou i ka hele ʻana o ka faila ʻike me nā kiʻi kūpono. Ua hana kekahi mau kāne i kēia faila (a waiho ʻia i hana ʻia ma CreateReactApp) - akā ʻaʻole i hoʻohui i nā kiʻi kūpono. A laila, i ka wā e hoʻāʻo ai e hoʻokomo, ua loaʻa kahi hewa e like me "pono ​​ʻia kahi kiʻi ʻokoʻa".

Codestyle a me ka papahana papahana. E like me ka hana ʻelua, nānā mākou i kahi codestyle hoʻokahi (ʻoiai inā ʻaʻole i kūlike me kā mākou). Hoʻopili kekahi mau kāne i nā linters - maikaʻi kēlā.

Nā hewa console. Inā he hōʻailona pololei i loko o ka console i hewa kekahi mea, a ʻaʻole i hoʻolohe ka mea komo, a laila ua unuhi mākou i nā helu.

Nā hopena

He aha ka mea ʻakaʻaka e pili ana i nā hoʻoholo a nā mea komo:

  • Ua loaʻa i kekahi nīnau nīnau kēia kikokikona: “Ua kōkua mai kekahi hoa polokalamu polokalamu iaʻu e hoʻokomo i kahi palapala noi React. Ua hoʻopuka wau iā ia me nā nīnau e pili ana i ke kumu a me ke kumu, a haʻi mai ʻo ia iaʻu. Nui koʻu makemake, makemake au e ʻike hou aʻe e pili ana iā ia. Ke aʻa nei mākou i kēia noi me ko mākou naʻau a pau, akā naʻe, ʻaʻole kōkua nui ka hoaaloha o ka moho i ka hana ʻana i ka palapala noi.
  • Hoʻouna kekahi moho i kahi loulou i GitHub, kahi i loaʻa ai ka waihona RAR - paʻakikī ke ʻōlelo i kēia. 🙂
  • ʻO kekahi moho, ma ka ʻōlelo ma ka laina mua o ka solution.js file, ua ʻae ʻoiaʻiʻo ua kope ʻo ia i ka algorithm.

Ua loaʻa iā mākou nā palapala noi mai 76 mau moho a koho ʻia he 23 poʻe. Ua hoʻouna ʻia mākou i nā nīnau nīnau mai Minsk wale nō, akā mai Moscow, St. Petersburg a me Tatarstan. Ua kāhāhā kekahi o nā kāne iā mākou i kā lākou ʻoihana i kēia manawa: ʻo kekahi o lākou he loea forensic, a ʻo kekahi he haumāna lapaʻau.

ʻO ka hopena, he puʻunaue hoihoi o nā helu kūleʻa i ka hoʻopau ʻana i nā hana. Ua hoʻopau nā mea komo i ka hana mua ma ka awelika o 60%, ʻo ka lua ma ka 50%, a ʻo ke kolu i lilo i mea paʻakikī loa a ua hoʻopau ʻia e ka awelika o 40%.

I ka nānā mua ʻana, ʻano paʻakikī a paʻakikī nā hana. ʻO ke kumu, ʻaʻole makemake mākou e hoʻopau i nā moho he nui. I ka wā o kā lākou aʻo ʻana, ke alo nei nā haumāna i nā hana maoli - ke kamaʻilio ʻana, Yandex.Music no nā keiki a i ʻole Yandex.Weather no ka poʻe hilinaʻi i ka wā. No kēia pono ʻoe i kahi kumu hoʻomaka.

Ke hoʻomanaʻo nei au i koʻu ʻike ʻana i kaʻu hana komo SRI i ʻelua makahiki i hala aku nei a me ka manaʻo ʻaʻole loa wau e hoʻoponopono. ʻO ka mea nui i kēia manawa e noho i lalo, e heluhelu pono i nā kūlana a hoʻomaka e hana. ʻIke ʻia aia nā kūlana ma kahi o 80% o ka hopena. No ka laʻana, i ke kūlana o ke kolu o ka hana (ʻo ka paʻakikī loa), ua hoʻohui mākou i nā loulou i nā limahana lawelawe a me nā API Notifications ma MDN. Ua hoʻopau nā haumāna i aʻo i ka ʻike o nā loulou me ka pilikia ʻole.

Makemake au e heluhelu ʻia kēia ʻatikala e nā moho e hoʻolālā nei e komo i ka SRI i ka wā e hiki mai ana, ʻaʻole hiki ke komo i ke kula Minsk, a i ʻole e hoʻomaka ana e hana i kekahi hana hoʻokolohua ʻē aʻe. E like me kāu e ʻike ai, hiki ke hana pēlā. Pono ʻoe e manaʻoʻiʻo iā ʻoe iho a hoʻolohe i nā ʻōlelo aʻoaʻo a pau mai nā mea kākau.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka