Мактаби рушди интерфейс: таҳлили вазифаҳо барои Минск ва маҷмӯи нав дар Маскав

Имрӯз бақайдгирии нав кушода шуд Мактаби рушди интерфейси Yandex дар Москва. Давраи якуми омузиш аз 7 сентябрь то 25 октябрь давом мекунад. Донишҷӯён аз шаҳрҳои дигар метавонанд дар он ба таври фосилавӣ ё шахсан ширкат кунанд - ширкат маблағи сафар ва хобгоҳро пардохт мекунад. Марҳилаи дуюм, инчунин марҳилаи ниҳоӣ, то 3 декабр давом мекунад, онро танҳо шахсан анҷом додан мумкин аст.

Номи ман Юлия Середич, мо ин навиштаро ҳамроҳ бо Сергей Казаков навиштем. Мо ҳам таҳиягарони интерфейси офиси Яндекс дар Минск ва ҳам хатмкунандагони SRI аз солҳои қаблӣ ҳастем.

Мактаби рушди интерфейс: таҳлили вазифаҳо барои Минск ва маҷмӯи нав дар Маскав

Ба муносибати кушода шудани бақайдгирӣ дар Маскав, мо таҳлили вазифаҳои муқаддимавиро ба Мактаби қаблӣ - дар ин ҷо дар Минск нашр мекунем.

Агар шумо таърихи супоришҳои SRI-ро пайгирӣ кунед, мо сол то сол се маҳорати муҳимро барои барномасоз санҷидаем:

  • Тарҳ. Ҳар як таҳиякунанда бояд қодир ба тарҳрезӣ кунад. Чунин намешавад, ки шумо Серёжа-амак доред, ки барои тамоми даста тарроҳӣ мекунад ва шумо танҳо сенария менависед. Аз ин рӯ, ҳар як донишҷӯ бояд нишон диҳад, ки чӣ гуна чоп карданро медонад.
  • JavaScript. Агар масъала танҳо бо тарҳбандӣ маҳдуд мебуд, пас мо на Мактаби таҳияи интерфейс, балки Мактаби тарроҳони тарҳрезӣ медоштем. Интерфейси зебо тарҳрезишуда бояд дубора эҳё карда шавад. Аз ин рӯ, барои JS ҳамеша вазифа вуҷуд дорад, аммо баъзан он барои алгоритмҳо низ як вазифа аст - мо онҳоро хеле дӯст медорем.
  • Ҳалли мушкилот шояд муҳимтарин маҳорати таҳиягар бошад. Вақте ки сухан дар бораи эҷоди интерфейс меравад, чизҳо хеле зуд тағйир меёбанд. Ин мисли Люис Кэррол аст: "Шумо бояд ҳарчи зудтар давед, то дар ҳамон ҷо бимонед ва барои расидан ба ҷои дигар шумо бояд ду маротиба тезтар давед." Ҳар рӯз мо ба технологияҳои нав дучор мешавем - мо бояд онҳоро ба назар гирем ва онҳоро дарк карда тавонем. Аз ин рӯ, дар вазифаи сеюм мо пешниҳод кардем, ки технологияҳоеро фаҳмем, ки таҳиягари навкор одатан бо онҳо шинос нест.

Ҳангоми таҳлили ҳар як вазифа мо ба шумо на танҳо дар бораи тартиби дуруст, балки дар бораи хатогиҳои умумӣ низ нақл мекунем.

Вазифаи 1: Портфолио

Вазифаи аввалро тарроҳи Yandex.Collections Алексей Черенкевич, ки чӣ тавр сохтани макетро медонад ва ҳамкори хидматрасонии ӯ, таҳиягари интерфейс Сергей Самсонов кор кардааст.

Ҳолати

Вебсайти портфолио эҷод кунед: дар бораи худ, кор ва интизориҳои худ аз Мактаб ба мо нақл кунед. Сайт бояд то ҳадди имкон ба тарҳбандии пешниҳодшуда мувофиқат кунад (пайвандҳо ба тарҳҳо: 1000px, 600px, 320px, мушаххасот). Мо танҳо ба тарҳ таваҷҷӯҳ дорем, аз ин рӯ лутфан JavaScript-ро истифода набаред.

Ҳангоми санҷиш мо ба назар мегирем:

  • андозаи абзор, дурустии ранг, услуби шрифт, андозаи ҳуруф;
  • тарҳбандии семантикӣ;
  • мављудияти њолатњои гуногуни элементњо: намоиш додани тугмањо ва истинодњо њангоми гузоштани курсор, нишон додани майдонњои дохилкунии фаъол ва ѓайра;
  • мутобиқати байни браузерҳо (дар версияҳои охирини браузерҳои маъмул санҷида шудааст).

Афзалият инҳоянд:

  • истифодаи ҳалли муосири CSS: flexbox, grid ва ғайра;
  • Тарҳбандии мутобиқшавӣ;
  • истифодаи протсессорҳои пеш ва (ё) баъди коркард, васлкунӣ, минификатсия, оптимизатсияи коди баромад;
  • Санҷиши формати HTML, тугмаи боркунии файли услубӣ.

Вазифа хеле ҳаҷм аст, бинобар ин шумо метавонед он чизеро, ки кор намекунад, гузаред. Ин холҳои шуморо каме паст мекунад, аммо шумо ба ҳар ҳол метавонед дониши худро нишон диҳед. Вақте ки шумо анҷом додед, ба мо ду истинод фиристед - ба портфели худ ва рамзи сарчашма дар GitHub.

Тарҳҳои дар супориш пешниҳодшуда на танҳо бо экранҳои дастгоҳҳои мобилӣ, планшетҳо ва мизи корӣ, балки бо мушаххасоти воқеӣ низ буданд.

Барои он ки дар натичаи тафтиши супориши якум харчи бештар объективона ба амал ояд, барои ин тафтиш меъёрхои зиёде мавчуд буданд.

меъёрњо

Вебсайти тарҳрезишуда. Ин ба назар равшан ба назар мерасад, аммо баъзе бачаҳо баъзе блокҳоро тамоман партофта рафтанд - ё онҳо мехостанд вақтро сарфа кунанд, ё ин корро карда натавонистанд. Тарҳро тақрибан ба чаҳор экрани асосӣ тақсим кардан мумкин аст: экрани асосӣ бо аватар, блок бо рӯйхати интизориҳо аз SRI, блок бо портфел ва блок бо маълумоти тамос. Онҳоро метавон дар қисмҳо ё танҳо бо истифода аз divs сохтан мумкин аст, чизи асосӣ ин аст, ки ҳамаи чаҳор блок дастрас буданд.

Мутобиқати тарҳ ба тарҳ. Дизайнер як мушаххасоти алоҳида (аз ҷумла рангҳо, чопкунӣ, ҳолати тугмаҳо ва ғайра) сохтааст, то барои номзадҳо осонтар шавад. Дар поёни он як ишора оид ба абзорҳо ва хусусиятҳои экрани аввал мавҷуд буд. Ман аз он бачаҳо, ки тамоми хоҳишҳои конструкторро ба инобат гирифтанд, хеле хушҳол шудам: масалан, экрани аввал бояд аз баландии намоишгоҳ кам набуд.

Тарҳбандии мутобиқшавӣ - ин вақтест, ки интерфейс на танҳо гузошта шудааст, то дар се қарор ҳама чиз аз пиксел ба пиксел дар тарҳбандӣ бошад. Дар давлатҳои мобайнӣ, тарҳ набояд аз ҳам ҷудо шавад. Баъзеҳо маҳдуд кардани паҳнои максималии контейнерро фаромӯш карданд ва ҳама чизро ба 1920 пиксел муқаррар карданд, баъзеҳо заминаҳоро вайрон карданд, аммо дар маҷмӯъ номзадҳо аз ӯҳдаи ин вазифа хуб баромаданд.

Тарҳбандии семантикӣ. "Чанд маротиба онҳо ба ҷаҳон гуфтанд", ки пайванд бояд ҳамчун тарҳрезӣ карда шавад , тугмаи - ҳамчун . Хушбахтона, аксари номзадҳо ин талаботро низ иҷро карданд. На ҳама рӯйхати пинҳониро дар интизориҳои SRI эътироф карданд, ки онро бо истифода аз тегҳои div табдил медиҳанд, аммо ин он қадар бад нест. Як номзаде буд, ки тамоми тегҳои семантикии худаш - дар куҷо лозим буд ва дар куҷо лозим набуд, ворид кард. Масалан, ба ҷои рӯйхат - ва . Баъд аз ҳама, семантика - ин дар бораи фаҳмидани таркиби саҳифаи шумо ва ҳадафи ҳар як блок (аксарият онро дар ин ҷо идора карданд), инчунин истифодаи протсессори пешакӣ ва / ё пас аз он (якчанд онҳо онро дар ин ҷо идора карданд, гарчанде ки ин низ дар нуқтаҳо буд - аксар вақт онҳо камтар ва scss истифода мебурданд) .

Слайдер кор. Дар супориш мо навиштем, ки JS-ро истифода бурдан мумкин нест. Дар ин ҷо қобилияти ҳалли мушкилот санҷида шуд - слайдерро бо истифода аз як даста сохтан мумкин аст Ва . Ҳама ҷодугарӣ дар сатҳи селектор рӯй медиҳад #button-N:checked ~ .slider-inner .slider-slides. Вақте ки мо яке аз қуттиҳои вурудро пахш мекунем, он ба ҳолати тафтишшуда мегузарад. Мо метавонем аз ин истифода барем ва тарҷумаи лозимаро ба контейнер бо слайдҳо таъин кунем: transform: translate (-33%). Шумо метавонед татбиқи слайдерро бинед дар ин ҷо.

Рӯйхати афтанда. Дар ин ҷо ҳам ҳамааш ба поён расид ва як селектори шабеҳ: .accordion-element input:checked ~ .accordion-item__content. Шумо метавонед татбиқи онро бубинед дар ин ҷо.

Мавҷудияти ҳолатҳои :hover, :active ва :focu*. Як нуктаи хеле муҳим. Бароҳатӣ ҳангоми ҳамкорӣ бо интерфейс аз он вобаста буд. Истифодабаранда бояд ҳамеша дар бораи амалҳои худ фикру мулоҳизаҳо гирад. Ин банд дар давоми муомила бо саволнома тафтиш карда шуд. Агар ман тугмаи "Ба ман занг занед" -ро пахш карда бошам ва ба таври визуалӣ ҳеҷ чиз рӯй надода бошад (гарчанде ки дархост фиристода шуда бошад), ин бад аст, зеро ман онро такроран пахш мекунам. Дар натиҷа даҳ дархост фиристода мешавад ва ба ман даҳ маротиба занг мезананд. Мо набояд фаромӯш кунем, ки дастгоҳҳои мобилӣ муш надоранд, ин маънои онро дорад, ки ҳовер набояд вуҷуд дошта бошад. Ва як нуктаи дигар, ки ба онхое, ки нуктаро дар бораи семантика ичро кардаанд, бетаъсир намондааст. Агар назорати шумо унсури интерактивӣ набошад, пас вақте ки шумо ба болои он меравед, курсор стандартӣ боқӣ мемонад. Он хеле нобасомон ба назар мерасад, ҳатто агар шумо вокуниш ба hover навиштаед. Курсорро нодида нагиред: нишондиҳанда.

Аниматсияҳо. Муҳим аст, ки ҳама реаксияҳо бо элементҳо ҳамвор бошанд. Ҳеҷ чиз дар ҳаёт фаврӣ нест, аз ин рӯ, барои беҳтар кардани интерфейси гузариш дар боло ва фаъол кофӣ буд. Хуб, онҳое, ки слайдер ва рӯйхатҳоро аниматсия кардаанд, умуман олӣ ҳастанд.

Истифодаи технологияи навтарин. Бисёр одамон flex-ро истифода мебурданд, аммо ҳеҷ кас ин вазифаро бо истифода аз шабака иҷро накард. Агар flex дуруст истифода шавад, нуқта ҳисоб карда шуд. Агар дар ҷое тарҳ аз сабаби ин чандирӣ ҷудо шуда бошад, мутаассифона, шумо ягон холҳои иловагӣ нагирифтед.

Санҷиши шакл. Ҳама чизе, ки лозим буд, илова кардани атрибути зарурӣ ба ҳар як вуруди форма буд. Мо ба онҳое, ки майдони почтаи электрониро ҳамчун почтаи электронӣ тасдиқ кардаанд, нуқтаҳои илова кардем.

Тартиб додани тугмаи боркунии файл. Мо интизор будем, ки комбинатсияи монанди: ва Интихоби файл . Баъдан ба мо лозим омад, ки вурудро пинҳон кунем ва тамғаро услуб кунем. Боз як роҳи маъмул вуҷуд дорад - ворид кардани шаффоф ва гузоштани он дар болои тугма. Аммо на ҳама браузерҳо услубро иҷозат медиҳанд , ва чунин ҳалли пурраи браузери кросс-браузер номидан мумкин нест. Ва сохтани тамға аз ҷиҳати маъно дурусттар аст.

Мутобиқати кросс-браузер. Мо тафтиш кардем, ки дар ду версияи охирини браузерҳои муосир (бе IE - иштирокчиён хушбахт буданд), инчунин дар Safari дар iPhones ва Chrome дар Androids ҳама чиз хуб аст.

Баръакс, агар касе JS ё Bootstrap-ро истифода барад, мо холҳоро тарҳ кардем: ҳардуи онҳо ҳадафи тамоми вазифаро мағлуб мекунанд. Гузашта аз ин, иштирокчиён бо Bootstrap на танҳо минус гирифтанд, балки барои семантика ва унсурҳои амалӣ бисёр холҳоро аз даст доданд.

Онҳое, ки сайти худро дар ҷое дар Интернет ҷойгир кардаанд, ҳеҷ гуна бартарии махсус ба даст наоварданд - аммо баррасикунандагон хеле шод буданд, вақте ки ба онҳо лозим набуд, ки анборҳоро зеркашӣ кунанд ва онҳоро дар компютери худ иҷро кунанд. Ҳамин тавр, ин ҳамчун плюс барои карма хизмат мекард.

Супориши аввал пеш аз ҳама барои донишҷӯ хеле муфид буд. Онҳое, ки мо қабул накардаем, ҳоло резюмеи омодашуда доранд - шумо метавонед онро бо ифтихор ба ҳама посухҳо замима кунед ё дар саҳифаҳои худ ҷойгир кунед.

Вазифаи 2: Роҳи нақлиёт

Муаллифи супориш роҳбари гурӯҳи интерфейсҳои ҷустуҷӯ Денис Балыко мебошад.

Ҳолати

Оё шумо харитаи ситора доред? Он номи ҳар як ситора ва инчунин масофаи аз он то дигар ситораҳоро дар сонияҳои равшан нишон медиҳад. Функсияи ҳалли онро амалӣ кунед, ки бояд се аргумент дошта бошад: объекте, ки дар он калидҳо номи ситораҳо ва арзишҳо масофа то ситораҳо мебошанд (трафики яктарафа дар фазо), инчунин номҳои нуктаҳои ибтидоӣ ва анҷоми роҳ - мутаносибан оғоз ва анҷом. Функсия бояд масофаи кӯтоҳтаринро аз ситораи оғоз то ситораи марра ва роҳи пайгирӣ баргардонад.

Имзои функсия:

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

Намунаи маълумоти воридотӣ:

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'; 

Намунаи баромад:

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

Эзоҳ: Скелети ҳалли он дар папкаи src/ ҷойгир аст, ҳалли худро дар solution.js ҷойгир кунед.

Санҷиши вазифаи дуюм автоматӣ ва объективӣ буд. Аксарияти бачаҳо тахмин карданд, ки алгоритми Дийкстраро амалӣ кардан лозим аст. Онҳое, ки тавсифи онро ёфтаанд ва алгоритмро дар JS амалӣ кардаанд, хуб кор кардаанд. Вале хангоми тафтиши супориш мо ба бисьёр когазхо дучор шудем, ки бо якхела хатохо доштанд. Мо дар Интернет пораҳои кодро ҷустуҷӯ кардем ва мақолаеро ёфтем, ки аз он иштирокчиён алгоритмро нусхабардорӣ карданд. Аҷиб аст, ки бисёриҳо коди мақоларо дар баробари шарҳҳои муаллиф нусхабардорӣ кардаанд. Чунин асархо бахои паст гирифтанд. Мо истифодаи ягон манбаъро манъ намекунем, аммо мехоҳем, ки шахс ба он чизе ки менависад, ғарқ шавад.

меъёрњо

Нуқтаҳои асосӣ барои санҷишҳо дода шуданд. Баъзан маълум буд, ки бачаҳо бо анборҳо машғуланд, номи ҷузвдонҳоро иваз мекунанд ва санҷишҳо танҳо аз сабаби пайдо кардани файлҳои зарурӣ ноком мешаванд. Имсол мо кӯшиш кардем, ки ба чунин бачаҳо кумак кунем ва ҳама чизро барои онҳо ба ҷои худ баргардондем. Аммо соли оянда мо ният дорем, ки ба системаи озмун гузарем ва ин дигар бахшида намешавад.

Меъёрҳои «инсонӣ», дастӣ низ вуҷуд доштанд. Масалан, мавҷудияти услуби ягонаи код. Ҳеҷ кас барои истифодаи ҷадвалҳо ба ҷои фосила ё баръакс холҳоро тарҳ накардааст. Ин масъалаи дигар аст, агар шумо иқтибосҳои ягонаро бо нохунакҳои дукарата мувофиқи як қоидае, ки ба шумо маълум аст, иваз кунед ва нуқтаи вергулро ба таври тасодуфӣ ҷойгир кунед.

Возехият ва хониши карор алохида ба назар гирифта шуд. Дар ҳама конфронсҳои ҷаҳон мегӯянд, ки 80% кори барномасоз аз хондани рамзи дигарон иборат аст. Хатто мактаббачагон хам аз муоинаи коди-рахо мегузаранд - аз кураторхои худ ва аз якдигар. Ҳамин тавр, ин меъёр вазни назаррас дошт. Корҳое буданд, ки дар онҳо тағирёбандаҳо аз як аломат дарозтар набуданд - лутфан ин корро накунед. Шарҳҳои иштирокчиён хеле рӯҳбаландкунанда буданд - ба истиснои онҳое, ки ба шарҳҳои Стелла Чанг шабеҳ буданд.

Меъёри охирин мавҷудияти автотестҳо мебошад. Танҳо чанд нафар онҳоро илова карданд, аммо барои ҳама он дар кармаи онҳо як плюс бузург шуд.

Қарори дуруст:

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);
    };
};

Вазифаи 3: Тақвими рӯйдодҳо

Он аз ҷониби таҳиягарони интерфейс Сергей Казаков ва Александр Подскребкин таҳия шудааст.

Ҳолати

Барои намоиш додани ҷадвали худ як тақвими хурд нависед. Шумо метавонед ҳар гуна ҷадвали дилхоҳатонро гиред. Масалан, ҷадвали конфронсҳои frontend дар соли 2019.

Тақвим бояд ба рӯйхат монанд бошад. Талаботи дигари тарҳрезӣ вуҷуд надорад. Имкон диҳед, ки ёдраскуниҳои рӯйдодҳоро 3, 7 ва 14 рӯз пештар таъин кунед. Пас аз зеркашии аввалин аз Интернет, тақвим бояд кушода ва офлайн кор кунад.

Сарчашмаҳои фоиданок

Ҷадвали конфронси Frontend:
confs.tech/javascript?topics=javascript%2Bcss%2Bux

Кормандони хизматрасонӣ:
developer.mozilla.org/ru/docs/Web/API/Service_Worker_API/Using_Service_Workers
developers.google.com/web/fundamentals/primers/service-workers

API-и огоҳиҳо:
developer.mozilla.org/ru/docs/Web/API/Notifications_API

Вазифаи сеюм аз ҳама ҷолибтарин барои санҷиш буд, зеро роҳҳои ҳалли имконпазир хеле зиёд буданд, ки ҳар яки онҳо бо худ буданд. Мо санҷидем, ки номзад бо технологияҳои ношинос чӣ гуна кор мекунад - оё ӯ чӣ гуна таҳқиқ карданро медонад, оё ҳалли худро месанҷад.

меъёрњо

Тақвими пӯшида. Бале, онро хануз ба тартиб андохтан лозим буд. Онҳое низ буданд, ки шартро хеле айнан қабул карданд ва як сатри рамзи CSS-ро ворид накарданд. Он хеле ҷолиб ба назар намерасид, аммо агар ҳама чиз кор кунад, холҳо кам намешаванд.

Гирифтани рӯйхати рӯйдодҳо аз манбаъ. Ин вазифаи тарҳрезӣ нест, бинобар ин рӯйхати рӯйдодҳои ба он дохилшуда ҳисоб карда нашудааст. Шумо ҳамеша метавонед конфронсро лағв кунед, онро аз нав таъин кунед ё конфронси нав илова кунед. Аз ин рӯ, зарур буд, ки маълумотро аз берун қабул кунед ва тарҳро дар асоси JSON-и қабулшуда пешниҳод кунед. Бо ҳар роҳ ба даст овардани маълумот муҳим буд (бо истифода аз усули гирифтан ё бо истифода аз XMLHttpRequest). Агар шахс барои гирифтани пуркунии полифилл илова карда, интихоби худро дар readme қайд карда бошад, ин ҳамчун плюс ҳисобида мешуд.

Бақайдгирии кормандони хидматрасонӣ бидуни хатогӣ ва пас аз зеркашии аввал офлайн кор кунед. Ин намунаи мисол аст корманди хидматрасонӣ бо кэшкунии ҷадвал дар бори аввал. Тафсилотро дар бораи кормандони хидматрасонӣ, қобилиятҳои онҳо ва роҳҳои кор бо онҳо (стратегияҳои кор бо кэш, кор дар офлайн) дар ин ҷо пайдо кардан мумкин аст.

Қобилияти муқаррар кардани ёдраскунӣто ки он воқеан пас аз 3, 7, 14 рӯз кор кунад. Барои фаҳмидани API Notifications лозим буд, пайванд ба он дар вазифааш дуруст буд. Мо интизор набудем, ки ягон амали мушаххасро тафтиш кунем, ки оё вақти тела додан расидааст. Ҳар як варианти корӣ қабул карда шуд: нигоҳдорӣ дар localStorage, IndexDB ё назарсанҷии даврии корманди хадамот. Ҳатто имкони сохтани сервери push (дар ин ҷо намуна), аммо он офлайн кор намекунад. Пас аз баста шудани саҳифа ва пас аз чанд вақт кушода шудан, гирифтани такони якхела муҳим буд. Агар ёдраскунӣ дар як лаҳзаи баста шудани саҳифа фавтида бошад, ҳалли он ҳисоб карда намешавад. Ин хеле хуб аст, вақте ки бачаҳо дар бораи баррасигарон фикр мекарданд ва имкон доданд, ки худи ҳозир такони худро ба даст оранд - то 3 рӯз интизор нашаванд.

Имконияти ҷойгир кардани нишона дар мизи корӣ (PWA). Мо мавҷудияти файлро тафтиш кардем Садо Меҳмони "Озодӣ" бо нишонаҳои дуруст. Баъзе бачаҳо ин файлро сохтанд (ё онро дар CreateReactApp гузоштаанд) - аммо нишонаҳои дурустро илова накарданд. Пас аз он, ҳангоми кӯшиши насб, хатогӣ ба монанди "нишони дигар лозим аст" рух дод.

Тартиби код ва сохтори лоиҳа. Мисли вазифаи дуюм, мо ба як кодиста назар кардем (ҳатто агар он бо кори мо мувофиқат накунад). Баъзе бачаҳо ба линтерҳо печида буданд - ин хеле хуб аст.

Хатогиҳои консолӣ. Агар дар консол нишондиҳанда мавҷуд бошад, ки чизе нодуруст аст ва иштирокчӣ ба он аҳамият надиҳад, мо холҳоро тарҳ кардем.

Натиҷаҳо

Дар бораи қарорҳои иштирокчиён чӣ хандовар аст:

  • Як саволнома матни зеринро дар бар мегирифт: “Дӯсти барномасоз ба ман кӯмак кард, ки замимаи React-ро ҷамъ кунам. Ман ӯро бо саволҳо дар бораи чӣ гуна ва чаро бомбаборон кардам ва ӯ ба ман гуфт. Ин ба ман хеле писанд омад, ман мехоҳам дар ин бора бештар маълумот гирам». Мо бо тамоми дил ба ин ариза шитоб мекардем, вале мутаассифона, рафики номзад дар кори кор кардани ариза чандон мададгор набуд.
  • Як номзад ба GitHub, ки дар он бойгонии RAR ҷойгир буд, истинод фиристод - шарҳ додан дар ин бора душвор аст. 🙂
  • Номзади дигар, дар шарҳи сатри аввали файли solution.js, ростқавлона иқрор шуд, ки алгоритмро нусхабардорӣ кардааст.

Мо аз 76 номзад ариза кабул карда, 23 касро интихоб кардем. Ба мо на танҳо аз Минск, балки аз Маскав, Санкт-Петербург ва ҳатто Тотористон ҳам саволнома фиристоданд. Баъзе бачахо бо касби имрузаи худ моро ба хайрат меоварданд: яке коршиноси судию тиббй, дигаре студенти тиб.

Дар натиҷа тақсимоти ҷолиби сатҳи муваффақият дар иҷрои вазифаҳо буд. Иштирокчиён супориши якумро ба хисоби миёна 60 фоиз, дуюмро 50 фоиз ва сейум аз хама душвортарин баромад карда, ба хисоби миёна 40 фоиз ичро карданд.

Дар назари аввал, вазифаҳо мураккаб ва вақтталаб ба назар мерасанд. Сабаб дар он нест, ки мо мехоҳем ҳарчи бештари номзадҳоро аз худ кунем. Дар давоми таҳсил донишҷӯён бо вазифаҳои воқеии ҳаёт рӯбарӯ мешаванд - сохтани чат, Яндекс.Мусиқӣ барои кӯдакон ё Яндекс.Оба барои одамони вобаста ба об. Барои ин ба шумо заминаи ибтидоӣ лозим аст.

Ман дар ёд дорам, ки ду сол пеш вазифаи дохилшавӣ ба SRI-ро дидам ва фикр мекардам, ки ман онро ҳеҷ гоҳ ҳал намекунам. Дар ин лахза чизи асосй он аст, ки нишинед, шартхоро бодиккат хонед ва ба ичрои он шуруъ намоед. Маълум мешавад, ки шароит кариб 80 фоизи махлулро дар бар мегирад. Масалан, дар ҳолати вазифаи сеюм (мушкилтарин), мо истинодҳоро ба кормандони хидматрасонӣ ва API Notifications дар MDN илова кардем. Донишҷӯёне, ки мундариҷаи пайвандҳоро омӯхтаанд, онро бе душворӣ анҷом доданд.

Ман хеле мехостам, ки ин мақоларо довталабоне бихонанд, ки дар оянда ба СРИ дохил шудан мехоҳанд ва ба мактаби Минск дохил шуда натавонистанд ва ё ба иҷрои ягон вазифаи дигари тестӣ шурӯъ мекунанд. Тавре ки шумо мебинед, ин корро кардан комилан имконпазир аст. Шумо танҳо бояд ба худ бовар кунед ва ба ҳама маслиҳатҳои муаллифон гӯш диҳед.

Манбаъ: will.com

Илова Эзоҳ