Dibistana pêşkeftina navberê: analîzkirina peywiran ji bo Minsk û komek nû li Moskowê

Îro navendek nû vebû Dibistana Pêşveçûna Navbera Yandex li Moskowê. Qonaxa yekemîn a perwerdeyê wê ji 7'ê Îlonê heta 25'ê Cotmehê pêk were. Xwendekarên ji bajarên din dê karibin ji dûr ve an bi kesane beşdarî wê bibin - pargîdanî dê heqê rêwîtiyê û rûniştinê li mêvanxaneyekê bide. Qonaxa duyemîn, di heman demê de qonaxa dawî, dê heya 3ê Kanûnê bidome, ew tenê dikare bi kesane were qedandin.

Navê min Yulia Seredich e, me bi Sergey Kazakov re ev nivîs nivîsî. Em hem pêşdebirên navbeynkar in li ofîsa Minsk ya Yandex û hem jî mezûnên SRI yên salên berê ne.

Dibistana pêşkeftina navberê: analîzkirina peywiran ji bo Minsk û komek nû li Moskowê

Bi munasebeta vekirina qeydkirinê li Moskowê, em analîzek karên destpêkê yên Dibistana berê - li vir li Mînskê diweşînin.

Ger hûn dîroka peywirên SRI bişopînin, sal bi sal me ji bo bernamenûsek sê jêhatîbûnên girîng ceriband:

  • Rêz. Divê her pêşdebirkar karibe layoutê bike. Ne diqewime ku we Apê Seryozha heye ku ji bo tevahiya tîmê sêwiran dike, û hûn tenê senaryoyan dinivîsin. Ji ber vê yekê, her xwendekarek divê nîşan bide ku ew çawa dizane ku çawa tîpan dike.
  • JavaScript. Ger mijar bi sêwiranê ve sînordar bûya, wê hingê me dê ne Xwendegehek Pêşkeftina Navberê, lê Dibistanek Sêwiranên Layout-ê hebûya. Pêdivî ye ku navbeynkariya xweşik a sêwirandî were vejandin. Ji ber vê yekê, ji bo JS-ê her gav peywirek heye, lê carinan ew ji bo algorîtmayan jî peywirek e - em ji wan pir hez dikin.
  • Çareserkirina pirsgirêkê belkî jêhatiya herî girîng a pêşdebiran e. Dema ku dor tê çêkirina navberan, tişt pir zû diguhezin. Ew mîna Lewis Carroll e: "Divê hûn bi qasî ku hûn dikarin bilez birevin tenê ji bo ku hûn li heman cîhî bimînin, û ji bo ku hûn biçin cîhek din divê hûn du caran zûtir birevin." Her roj em rastî teknolojiyên nû tên - divê em wan li ber çavan bigirin û karibin wan fêm bikin. Ji ber vê yekê, di peywira sêyemîn de, me pêşniyar kir ku em teknolojiyên ku pêşdebirek nûjen bi gelemperî pê nas nakin fam bikin.

Di analîzkirina her peywirê de, em ê ne tenê li ser pêvajoya rast, lê di heman demê de li ser xeletiyên hevpar jî ji we re vebêjin.

Kar 1: Portfolio

Karê yekem ji hêla sêwiranerê Yandex.Collections Alexey Cherenkevich, ku dizane meriv çawa layoutê dike, û hevkarê wî yê karûbarê, pêşdebirê navrû Sergey Samsonov, li ser xebitî.

Rewş

Malperek portfolio biafirînin: ji me re behsa xwe, xebata xwe û hêviyên xwe ji Dibistanê bikin. Pêdivî ye ku malper bi qasî ku gengaz be bi sêwirana pêşniyarkirî re têkildar be (girêdanên sêwiranan: 1000px, 600px, 320px, specification). Em tenê bi sêwiranê re eleqedar in, ji ber vê yekê ji kerema xwe JavaScript-ê bikar neynin.

Dema ku em kontrol dikin, em ê hesab bikin:

  • mezinahiyên dendikê, rastbûna rengan, şêwaza tîpan, mezinahiya tîpan;
  • layout semantîk;
  • hebûna rewşên cihêreng ên hêmanan: nîşankirina bişkok û lînkan dema ku li ser kursorê radiweste, ronîkirina zeviyên têketina çalak, hwd.;
  • lihevhatina cross-browser (di guhertoyên herî paşîn ên gerokên populer de ceribandin).

Avantaj dê bibe:

  • bikaranîna çareseriyên nûjen ên CSS: flexbox, grid, hwd.;
  • Plansaziya Adaptive;
  • bikaranîna pêş-û (an) paş-pêvajoker, civandin, kêmkirin, xweşbînkirina koda derketinê;
  • Rastkirina forma HTML, bişkojka barkirina pelê ya stylized.

Karûbar pir mezin e, ji ber vê yekê hûn dikarin tiştê ku dê nexebite berdin. Ev ê puana we hinekî kêm bike, lê hûn ê dîsa jî karibin zanîna xwe nîşan bidin. Dema ku we qediya, du lînkan ji me re bişînin - portfoliyoya xwe û koda çavkaniyê li ser GitHub.

Sêwiranên ku di peywirê de hatine pêşniyar kirin ne tenê bi ekranên ji bo cîhazên mobîl, tablet û sermaseyan, lê di heman demê de bi taybetmendiyên rastîn jî bûn.

Ji bo ku di encama kontrolkirina peywira yekem de bi qasî ku pêkan objektîf were gihandin, ji bo vê kontrolê gelek pîvan hebûn.

krîterên

Malpera sêwirandî. Ev eşkere xuya dike, lê hin xortan hin blokan bi tevahî derbas kirin - an wan dixwest ku wextê xwe xilas bikin, an jî wan nekarî wan bikin. Plansaz dikare bi qasî çar ekranên sereke were dabeş kirin: ekrana sereke ya bi avatar, blokek bi navnîşek hêviyên ji SRI, blokek bi portfolio û blokek bi agahdariya têkiliyê. Ew dikarin di beşan de bêne çêkirin an jî bi tenê div bikar bînin, ya sereke ev e ku her çar blokan peyda bûn.

Lihevhatina layout bi layout. Sêwiran taybetmendiyek cihêreng çêkir (di nav de reng, tîpografî, dewletên bişkok, hwd.) da ku ji berendaman re hêsantir bike. Di binî de îşaretek li ser xêz û taybetmendiyên ekrana yekem hebû. Ez ji xortên ku hemî daxwazên sêwiraner hesibandine pir kêfxweş bûm: Mînakî, ekrana yekem divê ji bilindahiya dîmenderê ne kêmtir be.

layout Adaptive - ev gava ku navbeynkar ne tenê tête danîn da ku di sê biryaran de her tişt di sêwiranê de pixel-pixel be. Di dewletên navîn de, pêdivî ye ku layout jî ji hev nekeve. Hinekan ji bîr kir ku firehiya herî zêde ya konteynerê sînordar bike û her tiştî li 1920 pixel danîne, hinan jî paşperdeyan tevlihev kirin, lê bi tevahî berendaman bi vî karî re baş derbas bûn.

Plansaziya semantîk. "Çend caran wan ji cîhanê re got" ku girêdan divê wekî , bişkojk - wekî . Xweşbextane, piraniya berendaman ev daxwaz jî bi cih anîn. Ne her kes navnîşa veşartî ya di hêviyên SRI de nas kir, ew bi karanîna tagên div-ê çêkir, lê ew ne ew qas xirab e. Namzetek hebû ku hemî etîketên semantîkî yên ku wî dizanibû - li ku hewce bû û li ku ne hewce bû - xist. Mînakî, li şûna navnîşek - û . Beriya her tiştî, semantîk - ew di derbarê têgihîştina pêkhateya rûpela we û armanca her blokê de ye (piraniya wê li vir rêvebirin), û her weha karanîna pêş- û / an paş-pêvajokeran (hinek ew li vir rêvebirin, her çend ev di xalan de jî bû - pir caran ew kêm û scss bikar tînin) .

Slider kar. Di peywirê de me nivîsand ku JS nayê bikar anîn. Li vir şiyana çareserkirina pirsgirêkan hate ceribandin - sliderek dikare bi karanîna komek were çêkirin Û . Hemî sêrbaz di asta hilbijêrê de çêdibe #button-N:checked ~ .slider-inner .slider-slides. Dema ku em li yek ji qutikên kontrolê yên têketinê bikirtînin, ew diçe rewşa kontrolkirî. Em dikarin ji vê yekê sûd werbigirin û wergera ku ji me re lazim e li konteynerê bi slaytan veqetînin: transform: translate(-33%). Hûn dikarin pêkanîna sliderê bibînin vir.

Lîsteyên dakêşanê. Li vir jî her tişt hat û hilbijêrek wekhev: .accordion-item input:checked ~ .accordion-item__content. Hûn dikarin pêkanînê bibînin vir.

Hebûna rewşên :hover, :çalak û :focu*. Xaleke pir girîng. Rehetiya di dema danûstendina bi navberê re bi wê ve girêdayî bû. Pêdivî ye ku bikarhêner her gav li ser kiryarên xwe bertek werbigire. Ev tişt di tevaya pêwendiya bi pirsnameyê re hate kontrol kirin. Ger min pêl bişkoka "Gelî min bike" û bi dîtbarî tiştek çênebû (her çend daxwaz hat şandin), ev xirab e, ji ber ku wê hingê ez ê dîsa û dîsa bikirtînim. Di encamê de, dê deh daxwaz bêne şandin û dê deh caran gazî min bikin. Divê em ji bîr nekin ku cîhazên mobîl mişk tune ne, ku tê vê wateyê ku divê hover tune be. Û xalek din ku bandor li kesên ku xala semantîkê pêk anîne nekir. Ger kontrola we ne hêmanek înteraktîf be, wê hingê gava ku hûn li ser wê bizivirin, dê kursor standard bimîne. Ew pir bêkêmasî xuya dike, her çend we reaksiyonek li ser hover nivîsandiye. Kursor kêm nebînin: nîşanker.

Animations. Girîng e ku hemî reaksiyonên ku bi hêmanan re çêdibin xweş bin. Tiştek di jiyanê de tavilê nîn e, ji ber vê yekê veguheztinên li ser hover û çalak bes bû ku pêwendiyê xweştir bike. Welê, yên ku slider û navnîşan anîmasyon kirin bi gelemperî mezin in.

Bikaranîna teknolojiya herî dawî. Gelek kesan flex bikar anîn, lê tu kes bi karanîna grid peywirê temam nekir. Ger flex rast were bikar anîn xal hate jimartin. Ger li deverek sêwirana ji ber van pir nerman ji hev veqetiya, mixabin, we xalên zêde wernegirt.

Validation Form. Tiştê ku hewce bû ev bû ku taybetmendiya pêwîst li her têketina formê zêde bikin. Me xalan li kesên ku qada e-nameyê wekî e-name pejirandibûn zêde kirin.

Bişkojka barkirina pelê şêwaz bikin. Me hêvî dikir ku kombînasyona mîna: û pelê hilbijêre . Dûv re hewce bû ku em têketinê veşêrin û labelê şêwaz bikin. Rêbazek din a hevpar heye - çêkirina têketinek zelal û danîna wê li ser bişkojê. Lê ne hemî gerok destûr nadin şêwazê , û çareseriyek wusa bi tevahî cross-browser nayê gotin. Û ji hêla semantîkî ve rasttir e ku meriv etîketek çêbike.

Lihevhatina cross-browser. Me kontrol kir ku her tişt di du guhertoyên herî paşîn ên gerokên nûjen de (bêyî IE - beşdar bi şens bûn), û her weha di Safari de li ser iPhones û Chrome-ê li ser Android-ê de her tişt baş e.

Berevajî vê, ger kesek JS an Bootstrap bikar bîne, me xal jê derxist: her du jî dê armanca tevahiya peywirê têk bibin. Wekî din, beşdarên bi Bootstrap ne tenê kêmek werdigirin, lê di heman demê de ji bo semantîk û hêmanên bicîhkirî jî gelek xal winda kirin.

Kesên ku malpera xwe li cîhek li ser Înternetê mêvandar kirin, tu feydeyek taybetî wernegirtin - lê vekoler pir kêfxweş bûn dema ku neçar bûn ku depoyan dakêşin û wan li ser komputera xwe herêmî bimeşînin. Ji ber vê yekê ev ji bo karma wekî plusek xizmet kir.

Karê yekem di serî de ji bo xwendekar pir bikêr bû. Yên ku me qebûl nekirin naha xwedan rezûyek amadekirî ne - hûn dikarin wê bi serbilindî bi hemî bersivan ve girêbidin an li ser rûpelên gh-ya xwe bişînin.

Kar 2: Rêya veguhastinê

Nivîskarê peywirê serokê koma navgînên lêgerînê Denis Balyko ye.

Rewş

Nexşeya te ya stêrk heye? Navê her stêrkekê û herwiha dûrbûna ji stêrkên din di saniyeyên sivik de nîşan dide. Fonksiyona çareseriyê bicîh bikin, ku divê sê argumanan bigire: tiştek ku tê de kilît navên stêrkan in, û nirx dûrahiya stêrkan in (trafîka yekalî ya li fezayê), û her weha navên xalên destpêk û dawiya rê - bi rêzê, destpêk û qedandin. Fonksiyon divê dûrahiya herî kurt a ji stêrka destpêkê heya stêra qedandinê û riya ku tê şopandin vegerîne.

Îmzeya fonksiyonê:

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

Mînak daneya têketinê:

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

Nimûne encam:

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

Nîşe: Skeletona çareseriyê di peldanka src/ de ye, çareseriya xwe têxe solution.js.

Verastkirina peywira duyemîn ya herî otomatîk û objektîf bû. Piraniya xortan texmîn kirin ku pêdivî ye ku algorîtmaya Dijkstra bicîh bikin. Yên ku danasîna wê dîtin û algorîtmaya di JS de bicîh kirin, baş têne kirin. Lêbelê, dema ku peywirê kontrol kir, em rastî gelek kaxezên ku heman xeletî hene hatin. Me li Înternetê li perçeyên kodê geriya û gotarek dît ku beşdaran algorîtma jê kopî kirin. Kêfxweş e ku gelek kesan koda ji gotarê digel şîroveyên nivîskar kopî kirin. Xebatên bi vî rengî puanek kêm girtin. Em bikaranîna tu çavkaniyekê qedexe nakin, lê em dixwazin ku mirov li tiştên ku dinivîse kûr bike.

krîterên

Ji bo testan xalên sereke hatin dayîn. Carinan eşkere bû ku xortan bi depoyê re tevlihev dikirin, navên peldankan vediguhezînin, û ceribandin dê tenê têk biçin ji ber ku wan nikarîbûn pelên pêwîst bibînin. Îsal me hewl da ku em alîkariya xortên weha bikin û her tişt ji wan re vegerandin cihê xwe. Lê sala bê em plan dikin ku derbasî pergalek pêşbaziyê bibin, û ev ê êdî neyê efû kirin.

Pîvanên “mirovî”, destanî jî hebûn. Mînakî, hebûna şêwazek kodek yekane. Ji bo bikaranîna tabloyan li şûna valahiyan an berevajî vê yekê, kesî pûan nebir. Tiştek din e ku hûn li gorî qaîdeyek ku ji we re tê zanîn, çîtokên yekane bi binavkên ducarî biguhezînin, û nîvkolonan bi tesadufî bi cîh bikin.

Zelalbûn û xwendina çareseriyê ji hev cuda hate girtin. Di hemî konferansên cîhanê de ew dibêjin ku 80% ji karê bernamenûsek ji xwendina koda kesên din pêk tê. Tewra zarokên dibistanê jî di bin nirxandinên kodê de - ji çavdêrên xwe û ji hevûdu. Ji ber vê yekê ev pîvan giraniyek girîng girt. Xebatên ku tê de ji karakterekê dirêjtir guherbar nîn bûn - ji kerema xwe vê yekê nekin. Şîroveyên beşdaran pir teşwîqkar bûn - ji bilî yên ku bi şîroveyên Stella Chang re wekhev bûn.

Pîvana dawî hebûna ototestan e. Tenê çend kesan ew lê zêde kirin, lê ji bo her kesî ew di karmaya wan de bû plusek mezin.

Çareseriya rast:

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

Kar 3: Salnameya Bûyeran

Ew ji hêla pêşdebirên navberê Sergey Kazakov û Alexander Podskrebkin ve hatî amadekirin.

Rewş

Mînî-salname binivîsin da ku nexşeya xwe nîşan bidin. Hûn dikarin her bernameya ku hûn dixwazin bistînin. Mînakî, nexşeya konferansên pêşîn ên sala 2019-an.

Salname divê wekî lîsteyek xuya bike. Pêdiviyên sêwiranê yên din tune. Vê gengaz bikin ku bîranînên bûyerê 3, 7 û 14 roj berê werin danîn. Piştî dakêşana yekem ji Înternetê, divê salname vebe û negirêdayî bixebite.

Çavkaniyên bikarhêner

Bernameya konferansa Frontend:
confs.tech/javascript?topics=javascript%2Bcss%2Bux

Karkerên xizmetê:
developer.mozilla.org/ru/docs/Web/API/Service_Worker_API/Using_Service_Workers
developers.google.com/web/fundamentals/primers/service-workers

Notifications API:
developer.mozilla.org/ru/docs/Web/API/Notifications_API

Karê sêyemîn ceribandina herî balkêş bû, ji ber ku gelek çareseriyên mimkun hebûn, her yek bi ya xwe. Me kontrol kir ka berendam çawa teknolojiyên nenas bi rê ve dibe - gelo ew dizane ka meriv çawa lêkolîn dike, gelo ew çareseriyên xwe diceribîne.

krîterên

Salnameya qatkirî. Erê, hîn jî hewce bû ku were danîn. Di heman demê de yên ku şert pir bi wate digirtin û yek rêzek koda CSS-ê têxin nav xwe jî hebûn. Ew pir balkêş xuya nedikir, lê ger her tişt bikira, xal kêm nedibûn.

Ji çavkaniyekê navnîşek bûyeran digirin. Ev ne peywirek sêwiranê ye, ji ber vê yekê navnîşa bûyerên ku tê de hene nehat hesibandin. Hûn dikarin her gav konferansek betal bikin, wê ji nû ve plansaz bikin, an yek nû lê zêde bikin. Ji ber vê yekê pêdivî bû ku meriv daneyan ji derve werbigire û li ser bingeha JSON-ya wergirtî sêwiranê bide çêkirin. Girîng bû ku daneyan bi her awayî bi dest bixin (bikaranîna rêbaza hilanînê an bi karanîna XMLHttpRequest). Ger kesek ji bo hilanînê polyfillek lê zêde bike û bijartina xwe di readme de nîşan bide, ev yek wekî plusek tê hesibandin.

Tomarkirina xebatkarê karûbarê bêyî xeletî û piştî dakêşana yekem offline bixebitin. Li vir nimûne ye. xebatkarê karûbarê bi cachkirina bernameyê di boota yekem de. Agahiyên li ser xebatkarên karûbarê, kapasîteyên wan û awayên xebata bi wan re (stratejiyên ji bo xebata bi cache, xebata offline) li vir têne dîtin.

Kapasîteya danîna bîranînekda ku ew bi rastî piştî 3, 7, 14 rojan dixebite. Pêwîst bû ku API-ya Notifications fêm bikin, girêdana ku li ser erkê rast bû. Em li bendê nebûn ku pêkanînek taybetî hebe da ku kontrol bikin ka ew dem e ku meriv pê bixebite. Her vebijarkek xebatê hate pejirandin: hilanîn li herêmîStorage, IndexDB an anketek demkî ji hêla xebatkarek karûbarê ve. Tewra gengaz bû ku meriv serverek push çêbike (li vir nimûne), lê ew ê negirêdayî nexebite. Bi heman rengî girîng bû ku meriv piştî ku rûpel hate girtin - û piştî demek vekir, pêvek werbigire. Ger bîranîn di heman demê de ku rûpel girtî bû bimire, çareserî nehatiye hesibandin. Dema ku xort li ser nirxdêran difikirîn xweş e û ev gengaz kir ku aniha destek werbigirin - da ku 3 rojan li bendê nemînin.

Qabiliyeta danîna îkonekê li ser sermaseyê (PWA). Me hebûna dosyayê kontrol kir eşkere.json bi îkonên rast. Hin kesan ev pel çêkir (an jî ew di CreateReactApp de hilberandin) - lê îkonên rast lê zêde nekir. Dûv re, dema ku hewl didin saz bikin, xeletiyek mîna "îkonek cûda hewce ye" derket.

Codestyle û avahiya projeyê. Mîna di peywira duyemîn de, me li şêwazek kodek yekane mêze kir (tevî ku ew bi ya me re ne li hev be). Hin xortên ku li ser lîberan dişewitînin - ew pir baş e.

Çewtiyên konsolê. Ger di konsolê de nîşanek rast hebû ku tiştek xelet bû, û beşdar guh neda wê, wê hingê me xalan jê derxist.

Encam

Di derbarê biryarên beşdaran de çi balkêş e:

  • Di pirsnameyê de ev nivîsa jêrîn hebû: “Hevalek bernamesaz alîkariya min kir ku serîlêdanek React berhev bikim. Min ew bi pirsên li ser çawa û çima bombebaran kir, û wî ji min re got. Min pir jê hez kir, ez dixwazim bêtir li ser wê bizanim." Me bi dil û can li ser vê sepanê rawestiya, lê mixabin hevalê namzed ji bo pêkanîna serlêdanê zêde alîkar nebû.
  • Yek berendamek girêdanek ji GitHub re şand, ku li wir arşîva RAR lê bû - şîrovekirina vê yekê dijwar e. 🙂
  • Namzedek din, di şîroveya rêza yekem a pelê solution.js de, bi dilpakî qebûl kir ku wî algorîtmayê kopî kiriye.

Me ji 76 namzetan serlêdan girt û 23 kesan hilbijart. Ne tenê ji Mînskê, ji Moskova, St. Hin ji wan xortan bi pîşeyên xwe yên niha em şaş kirin: yek ji wan pisporê dadrêsî ye, û yê din jî xwendekarê bijîşkiyê ye.

Encam di temamkirina karan de dabeşek balkêş a rêjeyên serkeftinê bû. Beşdaran karê yekem bi navînî %60, ya duyemîn %50, û ya sêyem ya herî dijwar derket û bi navînî %40 bi dawî bû.

Di nihêrîna pêşîn de, peywir tevlihev û demdirêj xuya dikin. Sedem ne ew e ku em dixwazin bi qasî ku dibe bila bibe gelek berendaman ji holê rakin. Di dema xwendina xwe de, xwendekar bi peywirên jiyanî re rû bi rû dimînin - çêkirina sohbetê, Yandex.Music ji bo zarokan an Yandex.Weather ji bo mirovên girêdayî hewayê. Ji bo vê yekê hûn hewceyê bingehek destpêkê.

Tê bîra min ku du sal berê peywira xweya têketina SRI dît û fikirî ku ez ê çu carî wê çareser nekim. Ya sereke di vê gavê de ev e ku meriv rûnin, şertan bi baldarî bixwînin û dest bi kirina wê bikin. Derket holê ku şert û merc hema hema 80% ji çareseriyê vedihewîne. Mînakî, di şerta peywira sêyemîn de (ya herî dijwar), me li ser MDN-ê lînkên xebatkarên karûbarê û API-ya Notifications zêde kir. Xwendekarên ku naveroka lînkan dixwendin bê zehmetî temam kirin.

Ez bi rastî dixwazim ku ev gotar ji hêla berendamên ku plan dikin ku di pêşerojê de têkevin SRI, yên ku nekarin bikevin Dibistana Minsk, an ên ku dest bi karê ceribandinek din dikin ve were xwendin. Wekî ku hûn dikarin bibînin, ew pir gengaz e ku meriv wiya bike. Hûn tenê hewce ne ku ji xwe bawer bikin û guh bidin hemî serişteyên nivîskaran.

Source: www.habr.com

Add a comment