የበይነገጽ ልማት ትምህርት ቤት ለሚኒስክ ተግባራት ትንተና እና በሞስኮ ውስጥ አዲስ ስብስብ

ዛሬ አዲስ ምዝገባ ተከፈተ የ Yandex በይነገጽ ልማት ትምህርት ቤት በሞስኮ. የመጀመሪያው የስልጠና ደረጃ ከሴፕቴምበር 7 እስከ ጥቅምት 25 ይካሄዳል. ከሌሎች ከተሞች የመጡ ተማሪዎች በርቀት ወይም በአካል መሳተፍ ይችላሉ - ኩባንያው በሆስቴል ውስጥ ለጉዞ እና ለመጠለያ ክፍያ ይከፍላል ። ሁለተኛው, እንዲሁም የመጨረሻው ደረጃ, እስከ ታህሳስ 3 ድረስ ይቆያል, በአካል ብቻ ሊጠናቀቅ ይችላል.

ስሜ ዩሊያ ሴሬዲች እባላለሁ ፣ ይህንን ጽሑፍ ከሰርጌይ ካዛኮቭ ጋር ጻፍን። ሁለታችንም በሚንስክ የ Yandex ቢሮ የበይነገጽ ገንቢዎች እና ከቀደምት አመታት የSRI ተመራቂዎች ነን።

የበይነገጽ ልማት ትምህርት ቤት ለሚኒስክ ተግባራት ትንተና እና በሞስኮ ውስጥ አዲስ ስብስብ

በሞስኮ ውስጥ የምዝገባ መክፈቻ በሚከፈትበት ወቅት, ለቀድሞው ትምህርት ቤት የመግቢያ ተግባራት ትንተና እያተምን ነው - እዚህ ሚንስክ ውስጥ.

የSRI ስራዎችን ታሪክ ከተከታተልን፣ ከአመት አመት ለአንድ ፕሮግራም አውጪ ሶስት ጠቃሚ ክህሎቶችን ፈትነን ነበር።

  • አቀማመጥ እያንዳንዱ ገንቢ አቀማመጥ መስራት መቻል አለበት። ለመላው ቡድን ዲዛይን የሚያደርግ አጎቴ Seryozha እንዳለህ አይከሰትም እና ስክሪፕቶችን ብቻ ነው የምትጽፈው። ስለዚህ, እያንዳንዱ ተማሪ እንዴት እንደሚፃፍ እንዴት እንደሚያውቅ ማሳየት አለበት.
  • ጃቫስክሪፕት ጉዳዩ በአቀማመጥ ላይ የተገደበ ቢሆን ኖሮ የአቀማመጥ ንድፍ አውጪዎች ትምህርት ቤት እንጂ የበይነገጽ ልማት ትምህርት ቤት አይኖረንም ነበር። በሚያምር ሁኔታ የተነደፈው በይነገጽ እንደገና መታደስ አለበት። ስለዚህ, ለ JS ሁልጊዜ አንድ ተግባር አለ, ነገር ግን አንዳንድ ጊዜ ለአልጎሪዝም ተግባር ነው - እኛ በጣም እንወዳቸዋለን.
  • ችግር መፍታት ምናልባት የገንቢው በጣም አስፈላጊው ችሎታ ነው። በይነገጾች ሲፈጠሩ ነገሮች በፍጥነት እየተለዋወጡ ነው። ልክ እንደ ሉዊስ ካሮል ነው፡ "በተመሳሳይ ቦታ ለመቆየት በምትችለው ፍጥነት መሮጥ አለብህ፣ እና ሌላ ቦታ ለመድረስ ሁለት ጊዜ በፍጥነት መሮጥ አለብህ።" በየቀኑ አዳዲስ ቴክኖሎጂዎችን እናገኛለን - እነሱን ከግምት ውስጥ ማስገባት እና እነሱን መረዳት መቻል አለብን። ስለዚህ, በሦስተኛው ተግባር ውስጥ, አንድ ጀማሪ ገንቢ ብዙውን ጊዜ የማያውቀውን ቴክኖሎጂዎች ለመረዳት ሐሳብ አቅርበናል.

በእያንዳንዱ ተግባር ትንተና ውስጥ ስለ ትክክለኛው አሰራር ብቻ ሳይሆን ስለ የተለመዱ ስህተቶችም እንነግርዎታለን.

ተግባር 1፡ ፖርትፎሊዮ

የመጀመሪያው ተግባር በ Yandex.Collections ዲዛይነር አሌክሲ ቼሬንኬቪች አቀማመጥን እንዴት እንደሚሰራ የሚያውቅ እና የአገልግሎት ባልደረባው የበይነገጽ ገንቢ ሰርጌ ሳምሶኖቭ ሰርቷል።

ሁኔታ

የፖርትፎሊዮ ድር ጣቢያ ይፍጠሩ፡ ስለራስዎ፣ ስራዎ እና ከትምህርት ቤቱ ስለሚጠብቁት ነገር ይንገሩን። ጣቢያው ከታቀደው አቀማመጥ ጋር በተቻለ መጠን መዛመድ አለበት (ወደ አቀማመጦች አገናኞች፡- 1000px, 600px, 320px, ዝርዝር መግለጫ). እኛ የምንፈልገው በአቀማመጥ ላይ ብቻ ነው፣ ስለዚህ እባክዎ ጃቫ ስክሪፕትን አይጠቀሙ።

ስንፈተሽ ግምት ውስጥ እናስገባለን-

  • የመግቢያ መጠኖች, የቀለም ትክክለኛነት, የቅርጸ ቁምፊ ዘይቤ, የቅርጸ ቁምፊ መጠን;
  • የትርጉም አቀማመጥ;
  • የተለያዩ የንጥረ ነገሮች ሁኔታ መኖር: ጠቋሚውን ሲያንዣብቡ አዝራሮችን እና አገናኞችን ማሳየት, ንቁ የግቤት መስኮችን ማድመቅ, ወዘተ.
  • የአሳሽ ተኳኋኝነት (በቅርብ ጊዜ የታዋቂ አሳሾች ስሪቶች ውስጥ ተፈትኗል)።

ጥቅሙ የሚከተለው ይሆናል-

  • ዘመናዊ የሲኤስኤስ መፍትሄዎችን መጠቀም-flexbox, grid, ወዘተ.
  • የሚለምደዉ አቀማመጥ;
  • ቅድመ እና (ወይም) ድህረ-ፕሮሰሰሮችን መጠቀም, መሰብሰብ, መቀነስ, የውጤት ኮድ ማመቻቸት;
  • የኤችቲኤምኤል ቅጽ ማረጋገጫ፣ በቅጥ የተሰራ የፋይል ሰቀላ አዝራር።

ስራው በጣም ሰፊ ነው, ስለዚህ የማይሰራውን መዝለል ይችላሉ. ይህ ነጥብዎን በትንሹ ይቀንሳል፣ ግን አሁንም እውቀትዎን ማሳየት ይችላሉ። ሲጨርሱ ሁለት አገናኞችን ይላኩልን - ወደ ፖርትፎሊዮዎ እና በ GitHub ላይ ያለውን የምንጭ ኮድ።

በምደባው ውስጥ የታቀዱት አቀማመጦች ለሞባይል መሳሪያዎች, ታብሌቶች እና ዴስክቶፖች ስክሪን ብቻ ሳይሆን ከእውነተኛ ዝርዝሮች ጋርም ነበሩ.

የመጀመሪያውን ተግባር በማጣራት ውጤት ውስጥ በተቻለ መጠን ተጨባጭነት ለማምጣት, ለዚህ ቼክ ብዙ መመዘኛዎች ነበሩ.

መስፈርቶች

የተነደፈ ድር ጣቢያ. ይህ ግልጽ ይመስላል፣ ነገር ግን አንዳንድ ወንዶች አንዳንድ ብሎኮችን ሙሉ በሙሉ ዘለሉ - ወይ ጊዜ መቆጠብ ፈልገው ወይም ሊያደርጉት አልቻሉም። አቀማመጡ በግምት በአራት ዋና ዋና ስክሪኖች ሊከፈል ይችላል፡ ዋናው ስክሪን ከአቫታር፣ ከSRI የሚጠበቁ ዝርዝር ያለው ብሎክ፣ ፖርትፎሊዮ ያለው ብሎክ እና የእውቂያ መረጃ ያለው ብሎክ። እነሱ በክፍሎች ወይም በቀላሉ ዲቪዎችን በመጠቀም ሊሠሩ ይችላሉ, ዋናው ነገር አራቱም ብሎኮች ይገኙ ነበር.

አቀማመጥን ከአቀማመጥ ጋር ማክበር. ንድፍ አውጪው እጩዎችን ለማቅለል የተለየ ዝርዝር መግለጫ (ቀለሞችን፣ የፊደል አጻጻፍን፣ የአዝራር ሁኔታዎችን ወዘተ ጨምሮ) አድርጓል። ከታች በኩል በመጀመሪያው ስክሪን ገባዎች እና ገፅታዎች ላይ ፍንጭ ነበር። ሁሉንም የዲዛይነር ምኞቶች ግምት ውስጥ በገቡት ወንዶች በጣም ተደስቻለሁ: ለምሳሌ, የመጀመሪያው ማያ ገጽ ከእይታ ቁመቱ ያነሰ መሆን አለበት.

የሚለምደዉ አቀማመጥ - ይህ በይነገጹ ብቻ ያልተዘረጋበት ሲሆን ይህም በሶስት ጥራቶች ሁሉም ነገር በአቀማመጥ ከፒክሰል እስከ ፒክስል ይሆናል። በመካከለኛ ግዛቶች ውስጥ, አቀማመጡም መበታተን የለበትም. አንዳንዶች የእቃውን ከፍተኛውን ስፋት ለመገደብ ረስተዋል እና ሁሉንም ነገር ወደ 1920 ፒክሰሎች አቀናጅተዋል, አንዳንዶች ዳራውን አበላሹት, ነገር ግን በአጠቃላይ እጩዎቹ ይህንን ተግባር በደንብ ተቋቁመዋል.

የትርጉም አቀማመጥ. "ስንት ጊዜ ለአለም ነግረውታል" አገናኙ እንደ , አዝራሩ - እንደ . እንደ እድል ሆኖ፣ አብዛኛዎቹ እጩዎች ይህንን መስፈርት አሟልተዋል። ሁሉም ሰው የተደበቀውን ዝርዝር በ SRI ጥበቃዎች ውስጥ አላወቀም ነበር፣ ይህም የዲቪ መለያዎችን በመጠቀም ያደርገዋል፣ ነገር ግን ያን ያህል መጥፎ አይደለም። እሱ የሚያውቀውን ሁሉንም የትርጉም መለያዎች - አስፈላጊ በሆነበት እና አስፈላጊ በማይሆንበት ቦታ የገባ እጩ ነበር። ለምሳሌ ከዝርዝር ይልቅ - እና . ከሁሉም በላይ የትርጓሜ ትርጉም - የገጽዎን ስብጥር እና የእያንዳንዱ ብሎክ ዓላማ (ብዙዎቹ እዚህ ያስተዳድሩታል) ፣ እንዲሁም የቅድመ እና / ወይም ድህረ-ፕሮሰሰሮችን አጠቃቀም (ጥቂቶች እዚህ አስተዳድረዋል ፣ ምንም እንኳን ይህ) በነጥቦች ውስጥም ነበር - ብዙ ጊዜ የሚጠቀሙት ያነሰ እና scss) .

የሚሰራ ተንሸራታች. በተሰጠን ስራ ላይ JS መጠቀም እንደማይቻል ጽፈናል። እዚህ ችግሮችን የመፍታት ችሎታ ተፈትኗል - ተንሸራታች ጥቅል በመጠቀም ሊሠራ ይችላል። እና . ሁሉም አስማት በመራጭ ደረጃ #አዝራር-N፡የተፈተሸ ~ .slider-inner .slider-slides. አንዱን የግቤት አመልካች ሳጥኑ ላይ ጠቅ ስናደርግ ወደ ተመረጠው ሁኔታ ይገባል. በዚህ ጥቅም ልንጠቀምበት እና የሚያስፈልገንን ትርጉም ከስላይድ ጋር ወደ መያዣው እንመድባለን: ቀይር: መተርጎም (-33%). የተንሸራታቹን አተገባበር ማየት ይችላሉ እዚህ.

ተቆልቋይ ዝርዝሮች. እዚህ ሁሉም ወደ ታች መጣ እና ተመሳሳይ መራጭ፡.accordion-item input:የተረጋገጠ ~ .አኮርዲዮን-ንጥል__ይዘት. አተገባበሩን ማየት ይችላሉ። እዚህ.

የ: ማንዣበብ፣ ንቁ እና :focu* ግዛቶች መኖር. በጣም አስፈላጊ ነጥብ. ከበይነገጽ ጋር በሚደረግ መስተጋብር ወቅት ምቾት በእሱ ላይ የተመሰረተ ነው. ተጠቃሚው ሁልጊዜ በድርጊታቸው ላይ ግብረመልስ መቀበል አለበት. ይህ ንጥል ከመጠይቁ ጋር በነበረው ግንኙነት በሙሉ ተረጋግጧል። "ደውልልኝ" የሚለውን ቁልፍ ከተጫንኩ እና በምስላዊ ምንም ነገር አልተከሰተም (ምንም እንኳን ጥያቄው የተላከ ቢሆንም) ይህ መጥፎ ነው, ምክንያቱም ከዚያ ደጋግሜ እጠቅሳለሁ. በዚህ ምክንያት አሥር ጥያቄዎች ይላካሉ እና አሥር ጊዜ እደውላለሁ. ተንቀሳቃሽ መሳሪያዎች አይጥ እንደሌላቸው መዘንጋት የለብንም, ይህም ማለት ማንዣበብ የለበትም. እና ስለ የትርጉም ትምህርት ነጥቡን ያሟሉ ሰዎችን ያልነካ አንድ ተጨማሪ ነጥብ። መቆጣጠሪያዎ በይነተገናኝ አካል ካልሆነ፣ በላዩ ላይ ሲያንዣብቡ ጠቋሚው መደበኛ እንደሆነ ይቆያል። ለማንዣበብ ምላሽ ቢጽፉም በጣም ያልተስተካከለ ይመስላል። ጠቋሚ፡ ጠቋሚን አቅልለህ አትመልከት።

እነማዎች. ከኤለመንቶች ጋር የሚከሰቱ ሁሉም ምላሾች ለስላሳዎች መሆናቸው አስፈላጊ ነው. በህይወት ውስጥ ምንም አይነት ቅጽበታዊ አይደለም፣ ስለዚህ በማንዣበብ እና በንቃት መንቀሳቀስ በይነገጹን የበለጠ አስደሳች ለማድረግ በቂ ነበር። ደህና፣ ተንሸራታቹን እና ዝርዝሮችን ያነሙት በአጠቃላይ ጥሩ ናቸው።

የቅርብ ጊዜውን ቴክኖሎጂ በመጠቀም. ብዙ ሰዎች flexን ተጠቅመዋል፣ ነገር ግን ማንም ሰው ፍርግርግ በመጠቀም ስራውን አላጠናቀቀም። ተጣጣፊው በትክክል ጥቅም ላይ ከዋለ ነጥቡ ተቆጥሯል. በእነዚህ በጣም ተጣጣፊዎች ምክንያት አቀማመጡ አንድ ቦታ ቢለያይ፣ ወዮ፣ ምንም ተጨማሪ ነጥብ አልተቀበሉም።

የቅጽ ማረጋገጫ. የሚፈለገው በእያንዳንዱ የቅጹ ግቤት ላይ አስፈላጊውን ባህሪ ማከል ብቻ ነበር። የኢሜል መስኩን እንደ ኢሜል ላረጋገጡ ሰዎች ነጥቦችን ጨምረናል።

የፋይል ሰቀላ አዝራሩን ቅጥ. እንዲህ ያለውን ጥምረት ለማየት ጠብቀን ነበር፡- እና ፋይል ይምረጡ ። በመቀጠል መግቢያውን መደበቅ እና መለያውን ቅጥ ማድረግ ያስፈልገናል. ሌላ የተለመደ መንገድ አለ - ግልጽ የሆነ ግቤት ለመስራት እና በአዝራሩ አናት ላይ ያስቀምጡት. ግን ሁሉም አሳሾች ቅጥን አይፈቅዱም። , እና እንደዚህ አይነት መፍትሄ ሙሉ ለሙሉ አሳሽ ተብሎ ሊጠራ አይችልም. እና መለያ መስራት በፍቺ የበለጠ ትክክል ነው።

የአሳሽ ተሻጋሪ ተኳኋኝነት. በዘመናዊ አሳሾች ሁለት የቅርብ ጊዜ ስሪቶች (ያለ IE - ተሳታፊዎች እድለኞች ነበሩ) ፣ እንዲሁም በ Safari በ iPhones እና በ Chrome Androids ላይ ሁሉም ነገር ጥሩ መሆኑን አረጋግጠናል ።

በተቃራኒው፣ አንድ ሰው JS ወይም Bootstrapን ከተጠቀመ ነጥቦችን እንቀንሳለን፡ ሁለቱም የሙሉ ተግባሩን ዓላማ ያሸንፋሉ። ከዚህም በላይ የ Bootstrap ተሳታፊዎች ተቀንሶ ብቻ ሳይሆን ለትርጉም እና ለተተገበሩ አካላት ብዙ ነጥቦችን አጥተዋል።

በበይነመረቡ ላይ የሆነ ቦታ ላይ ጣቢያቸውን ያስተናገዱ ሰዎች ምንም የተለየ ጥቅም አላገኙም - ነገር ግን ገምጋሚዎቹ ማከማቻዎችን ማውረድ እና በኮምፒውተራቸው ላይ በአካባቢያቸው ማስኬድ ባለመቻላቸው በጣም ተደስተው ነበር። ስለዚህ ይህ ለካርማ ተጨማሪ ሆኖ አገልግሏል.

የመጀመሪያው ተግባር በዋናነት ለተማሪው በጣም ጠቃሚ ነበር. አሁን ያልተቀበልናቸው ሰዎች የተዘጋጀ ከቆመበት ቀጥል አላቸው - ከሁሉም ምላሾች ጋር በኩራት ማያያዝ ወይም በ gh-ገጾችዎ ላይ መለጠፍ ይችላሉ።

ተግባር 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 ውስጥ ያስቀምጡ።

የሁለተኛው ተግባር ማረጋገጫ በጣም አውቶማቲክ እና ተጨባጭ ነበር. አብዛኞቹ ወጣቶች የዲጅክስታራ አልጎሪዝምን መተግበር አስፈላጊ እንደሆነ ገምተዋል። መግለጫውን ያገኙ እና አልጎሪዝምን በጄኤስ ውስጥ ተግባራዊ ያደረጉ ሰዎች በጥሩ ሁኔታ ተከናውነዋል። ሆኖም፣ ምደባውን ስንፈትሽ፣ ተመሳሳይ ስህተቶች ያሏቸው ብዙ ወረቀቶች አጋጥመውናል። በይነመረቡን የኮድ ቁርጥራጮችን ፈልገን እና ተሳታፊዎች አልጎሪዝምን የገለበጡበት ጽሑፍ አግኝተናል። ብዙ ሰዎች ኮዱን ከጽሑፉ ላይ ከጸሐፊው አስተያየት ጋር መገልበጣቸው በጣም የሚያስቅ ነው። እንደነዚህ ያሉ ሥራዎች ዝቅተኛ ውጤት አግኝተዋል. ምንም አይነት ምንጮችን መጠቀም አንከለከልም, ነገር ግን አንድ ሰው የሚጽፈውን በጥልቀት እንዲመረምር እንፈልጋለን.

መስፈርቶች

ዋና ዋና ነጥቦች ለፈተናዎች ተሰጥተዋል. አንዳንድ ጊዜ ወንዶቹ በማጠራቀሚያው ውስጥ እየተዘበራረቁ ፣የአቃፊዎችን ስም እየሰየሙ እና አስፈላጊዎቹን ፋይሎች ማግኘት ባለመቻላቸው ብቻ ሙከራዎች እንደሚሳኩ ግልፅ ነበር። በዚህ አመት እንደነዚህ ያሉትን ሰዎች ለመርዳት ሞከርን እና ሁሉንም ነገር ወደ ቦታው መልሰንላቸዋል. ግን በሚቀጥለው ዓመት ወደ ውድድር ስርዓት ለመቀየር እቅድ አለን, እና ይህ ከአሁን በኋላ ይቅር አይባልም.

እንዲሁም "ሰው", በእጅ መመዘኛዎች ነበሩ. ለምሳሌ, የአንድ ነጠላ ኮድ ዘይቤ መኖር. ማንም ሰው ከቦታ ፋንታ ትሮችን ለመጠቀም ወይም በተቃራኒው ነጥብ የተቀነሰ የለም። እርስዎ በሚያውቁት አንድ ደንብ መሰረት ነጠላ ጥቅሶችን በእጥፍ ጥቅሶች ቢቀይሩ እና ሴሚኮሎንዎችን በዘፈቀደ ካስቀመጡ ሌላ ጉዳይ ነው።

የመፍትሄው ግልጽነት እና ተነባቢነት በተናጠል ተወስዷል. በአለም ላይ ባሉ ሁሉም ኮንፈረንሶች 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፡ የክስተቶች የቀን መቁጠሪያ

የበይነገጽ ገንቢዎች Sergey Kazakov እና Alexander Podskrebkin ተዘጋጅቷል።

ሁኔታ

የጊዜ ሰሌዳዎን ለማሳየት ትንሽ የቀን መቁጠሪያ ይፃፉ። የሚወዱትን ማንኛውንም መርሐግብር መውሰድ ይችላሉ. ለምሳሌ፣ እ.ኤ.አ. በ2019 የፊት ለፊት ኮንፈረንስ መርሃ ግብር።

የቀን መቁጠሪያው እንደ ዝርዝር መምሰል አለበት. ሌሎች የንድፍ መስፈርቶች የሉም. የክስተት አስታዋሾችን ከ 3፣ 7 እና 14 ቀናት በፊት ማዘጋጀት ይቻል። ከመጀመሪያው ከበይነመረቡ ማውረድ በኋላ የቀን መቁጠሪያው ከመስመር ውጭ መክፈት እና መስራት አለበት።

ጠቃሚ ሀብቶች

የፊት ለፊት ኮንፈረንስ መርሃ ግብር፡-
confs.tech/javascript? topics=javascript%2Bcss%2Bux

የአገልግሎት ሰራተኞች;
developer.mozilla.org/ru/docs/Web/API/Service_Worker_API/Service_Workersን በመጠቀም
developers.google.com/web/fundamentals/primers/service-workers

የማሳወቂያዎች ኤፒአይ፡
developer.mozilla.org/ru/docs/Web/API/Notifications_API

ሦስተኛው ተግባር ለመፈተሽ በጣም አስደሳች ነበር, ምክንያቱም ብዙ ሊሆኑ የሚችሉ መፍትሄዎች ነበሩ, እያንዳንዳቸው የራሳቸው አሏቸው. እጩው ያልተለመዱ ቴክኖሎጂዎችን እንዴት እንደሚይዝ - እንዴት እንደሚመረምር እንደሚያውቅ ፣ መፍትሄዎቹን እንደሚሞክር አረጋግጠናል ።

መስፈርቶች

የታጠፈ የቀን መቁጠሪያ. አዎ፣ አሁንም መዘርጋት ነበረበት። ሁኔታውን በትክክል የወሰዱ እና አንድ የሲኤስኤስ ኮድ ያላስገቡም ነበሩ። በጣም ማራኪ አይመስልም, ነገር ግን ሁሉም ነገር ከሰራ, ነጥቦቹ አልቀነሱም.

የክስተቶችን ዝርዝር ከምንጩ በማግኘት ላይ. ይህ የአቀማመጥ ተግባር አይደለም፣ ስለዚህ በውስጡ የተካተቱት የክስተቶች ዝርዝር አልተቆጠረም። በማንኛውም ጊዜ ጉባኤን መሰረዝ፣ መርሐግብር ማስያዝ ወይም አዲስ ማከል ትችላለህ። ስለዚህ መረጃን ከውጭ መቀበል እና በተቀበለው JSON መሰረት አቀማመጡን መስጠት አስፈላጊ ነበር. ውሂቡን በማንኛውም መንገድ ማግኘት አስፈላጊ ነበር (የማውጫ ዘዴን በመጠቀም ወይም XMLHttpRequest በመጠቀም)። አንድ ሰው ፖሊፊልን ለማምጣት ከጨመረ እና ምርጫውን በreadme ላይ ምልክት ካደረገ፣ ይህ እንደ ተጨማሪ ይቆጠራል።

ያለምንም ስህተቶች የአገልግሎት ሰራተኛ ምዝገባ እና ከመጀመሪያው ማውረድ በኋላ ከመስመር ውጭ ይስሩ። አንድ ምሳሌ እዚህ አለ። የመጀመሪያ ቡት ላይ መሸጎጫ ጋር አገልግሎት ሠራተኛ. ስለ አገልግሎት ሰራተኞች፣ አቅማቸው እና አብረዋቸው የሚሰሩባቸው መንገዶች (ከካሼዎች ጋር ለመስራት ስልቶች፣ ከመስመር ውጪ የሚሰሩ) ዝርዝሮች እዚህ ይገኛሉ።

አስታዋሽ የማዘጋጀት ችሎታበትክክል ከ 3 ፣ 7 ፣ 14 ቀናት በኋላ እንዲሰራ። የማሳወቂያዎች ኤፒአይን ለመረዳት አስፈላጊ ነበር፣ ወደ የትኛው አገናኝ ሥራ ላይ ትክክል ነበር. ለመግፋት ጊዜው አሁን መሆኑን ለማረጋገጥ የተለየ ትግበራ አልጠበቅንም ነበር። ማንኛውም የስራ አማራጭ ተቀባይነት አግኝቷል፡ ማከማቻ በአከባቢ ማከማቻ፣ IndexDB ወይም በአገልግሎት ሰራተኛ ወቅታዊ ምርጫ። የግፋ አገልጋይ (እዚህ ምሳሌ) ግን ከመስመር ውጭ አይሰራም። ገጹ ከተዘጋ በኋላ ግፋ መቀበልም አስፈላጊ ነበር - እና ከተወሰነ ጊዜ በኋላ ይከፈታል። ማሳሰቢያው በተመሳሳይ ጊዜ ገጹ ከተዘጋ, መፍትሄው አልተቆጠረም. ሰዎቹ ስለ ገምጋሚዎቹ ሲያስቡ እና አሁኑኑ ግፊት ለማድረግ ሲያስችሉ በጣም ጥሩ ነው - 3 ቀናት እንዳይቆዩ።

አዶን በዴስክቶፕ ላይ የማስቀመጥ ችሎታ (PWA) የፋይሉን መኖር አረጋገጥን። አን. ጃክሰን ከትክክለኛዎቹ አዶዎች ጋር. አንዳንድ ወንዶች ይህን ፋይል ሠርተውታል (ወይንም የተፈጠረውን በ CreateReactApp ውስጥ ትተውታል) - ግን ትክክለኛ አዶዎችን አልጨመሩም። ከዚያ ለመጫን በሚሞከርበት ጊዜ እንደ "የተለየ አዶ ያስፈልጋል" ያለ ስህተት ተከስቷል.

Codestyle እና የፕሮጀክት መዋቅር. እንደ ሁለተኛው ተግባር፣ አንድ ነጠላ ኮድ ስታይል (ከእኛ ጋር ባይመሳሰልም) ተመልክተናል። አንዳንድ ወንዶች በሊንደር ላይ ተበላሹ - በጣም ጥሩ ነው።

የኮንሶል ስህተቶች. በኮንሶሉ ውስጥ አንድ ነገር ስህተት እንደነበረ የሚያሳይ አመልካች ካለ እና ተሳታፊው ለእሱ ትኩረት ካልሰጠ ፣ ከዚያ ነጥቦችን ቀንስን።

ውጤቶች

በተሳታፊዎቹ ውሳኔዎች ውስጥ ምን አስቂኝ ነገር አለ?

  • አንድ መጠይቅ የሚከተለውን ጽሑፍ ይዟል፡- “አንድ ፕሮግራም አውጪ ጓደኛዬ React መተግበሪያ እንዳዘጋጅ ረድቶኛል። እንዴት እና ለምን በሚለው ጥያቄ ወረወርኩት እና ነገረኝ። በጣም ወድጄዋለሁ፣ ሾለሹ የበለጠ ማወቅ እፈልጋለሁ። ይህን አፕሊኬሽን በሙሉ ልባችን ሾር እየሰቀልን ነበር፣ ግን በሚያሳዝን ሁኔታ፣ የእጩ ጓደኛው ማመልከቻው እንዲሰራ ብዙ አልረዳም።
  • አንድ እጩ የRAR ማህደር ወደሚገኝበት GitHub አገናኝ ልኳል - በዚህ ላይ አስተያየት መስጠት ከባድ ነው። 🙂
  • ሌላ እጩ, የመፍትሄው.js ፋይል የመጀመሪያ መሾመር ላይ ባለው አስተያየት, ስልተ ቀመሩን እንደገለበጠ በሐቀኝነት አምኗል.

ከ76 እጩዎች ማመልከቻ ተቀብለን 23 ሰዎችን መርጠናል። መጠይቆችን ከሚንስክ ብቻ ሳይሆን ከሞስኮ፣ ከሴንት ፒተርስበርግ እና ከታታርስታን ጭምር ተልከናል። አንዳንድ ወጣቶች አሁን ባለው ሙያቸው አስገርመውናል፡ አንደኛው የፎረንሲክ ኤክስፐርት ሲሆን ሁለተኛው የህክምና ተማሪ ነው።

ውጤቱ ተግባራትን በማጠናቀቅ ላይ የስኬት ደረጃዎች አስደሳች ስርጭት ነበር። ተሳታፊዎቹ የመጀመሪያውን ስራ በአማካኝ 60% ፣ ሁለተኛው በ 50% ያጠናቀቁ ሲሆን ሶስተኛው በጣም ከባድ ሆኖ በአማካኝ 40% ተጠናቅቋል።

በመጀመሪያ ሲታይ, ተግባሮቹ ውስብስብ እና ጊዜ የሚወስድ ይመስላሉ. ምክንያቱ በተቻለ መጠን ብዙ እጩዎችን ማጥፋት ስለፈለግን አይደለም። በትምህርታቸው ወቅት, ተማሪዎች ከእውነተኛ ህይወት ተግባራት ጋር ይጋፈጣሉ - ውይይት ማድረግ, Yandex.Music ለልጆች ወይም Yandex.Weather በአየር ሁኔታ ላይ ጥገኛ ለሆኑ ሰዎች. ለዚህ መነሻ መሰረት ያስፈልግዎታል.

ከሁለት አመት በፊት የSRI መግቢያ ስራዬን አይቼ መቼም እንደማልፈታው በማሰብ አስታውሳለሁ። በዚህ ጊዜ ዋናው ነገር መቀመጥ, ሁኔታዎቹን በጥንቃቄ ማንበብ እና ማድረግ መጀመር ነው. ሁኔታዎቹ የመፍትሄውን 80% ያህል ይይዛሉ። ለምሳሌ፣ በሶስተኛው ተግባር ሁኔታ (በጣም አስቸጋሪው)፣ በኤምዲኤን ላይ ወደ አገልግሎት ሰራተኞች እና የማሳወቂያዎች ኤፒአይ አገናኞችን ጨምረናል። የሊንኩን ይዘት ያጠኑ ተማሪዎች ያለምንም ችግር አጠናቀዋል።

ይህ ጽሑፍ ወደፊት ወደ SRI ለመግባት ባሰቡ፣ ወደ ሚንስክ ትምህርት ቤት መግባት ያልቻሉ፣ ወይም ሌላ ማንኛውንም የፈተና ተግባር በሚጀምሩ እጩዎች እንዲነበብ እወዳለሁ። እንደምታየው, ይህን ማድረግ በጣም ይቻላል. በራስዎ ማመን እና ሁሉንም የጸሐፊዎቹን ምክሮች ማዳመጥ ብቻ ያስፈልግዎታል።

ምንጭ: hab.com

አስተያየት ያክሉ