Mi az oka a hiba a vizsgálat feladat Yandex

Szia, a közelmúltban úgy döntött, hogy tesztelje magát egy nyári gyakorlaton Yandex, csak egy nyaralás lesz. Tanulok Moszkva, 2. évben, ez nem tűnt buta. nem túl okos, de úgy tűnik, hogy próbálják ki, hogy az elmélet a tudás, csak a gyakorlat nem elég, egy másik kérdés. Számítás alapján, hogy a gyakorlat meg fogja tenni a anyámasszony katonája katona, számítási és hidegvérű, akit jelenleg nincs a birtokában. Tehát, kérelmet küld, azt elküldte a feladatot:

Megkérdezhetem részleteket e-mailben, hogy pontosan tudja megoldani a problémát, nem válaszolt. Nos, ha jól értem a problémát, és megoldani azt kezdte. Küldött jelentést:

Egy héttel később, azt mondta:


Ismét azt mondták ismerősök, hogy nem fogják magyarázni, hogy hogyan lehet megoldani a problémát, és mit csináltál rosszul, a feladat az, „egy sor hús Yandex”.

Kérdés, hogy a közönség: Mit csináltam rosszul, ami fel rám? Talán csak én bydlokodingom mivel korrigálni, hogy tanulni, és hogyan kellett megoldani ezeket a problémákat? Milyen élmény lehet levonni? Hogy érdemes-e a mászás a szakmai nagyvállalatok, akkor is, ha nincs harci tapasztalata, és hogy a harci tapasztalat, hogy ha nem veszi igazán sehol?

Nos, hadd bírálni:

1) még nem alakított ki, hogyan állapítsa módszerek a prototípus az új jelölés `class`:

2) nem tudja, hogyan kell használni kivételek.


3) a használata, amely hagyja, hogy ott használható const

4) elvben változók használata, ahol nem kellene

5) ha valamilyen oknál fogva már végre egy leválogatás funkció, nem láttam a követelmények hiánya arra, hogy használja a jó öreg Array.prototype.sort

6) Általános megjegyzések a kódolási stílus. snake_case hol kellene CamelCase, írj nagybetűvel, hogy legyen egy kis, stb

8) Ha a helyes hetedik lényeg az, hogy az osztály alakul ki a funkciót.

Következő. hogy a következő fájlt, amelynek neve végei

2) Miért kell tenned a sorban, hogy álljon a prototípusobjektumai funkciók elemzéséhez CSS. Így vagyunk megsØrtØse egyetlen felelősséget. És általában bővíteni anélkül, hogy a prototípus tárgyak valahogy nincs rendben.

Egy kicsit tovább proskrolil - próbál terjeszkedni a vonalak a prototípus mi tenné API jquery? uh, barátom.

3) a sok párhuzamos.

4) nagyon rosszul védett változatban.

1) Ez az, amit szerettem volna csinálni az első, de nem működnek a magántulajdont, miért?

osztály Travelsort hagyja listán; // rossz, de a szempontból C ++ magántulajdon
kivitelező () <>
sortTickets (jegyek) <>
>

Nos, rendben, akkor, ha a kivitelező állapítsa hagyja listán. Miért sortTickets () nem látja ezt a változót, mert nem globális, hanem globális csinálni?

2) Nagyon ritka kivételtől eltekintve élvezte, mindig egyéni átalakító írta, még a C ++ hallottam, hogy megpróbálja<> catch () <> Ez nem mindig elvesztése miatt a termelékenység.

ValueError - ha jól értem, a kivétel osztály?

3) const, ha valami nem változik, van ott minden tömb változót változhatnak a jövőben, hacsak len - egy sor változó méretű, de ez is egy speciális eset, a szokás az írás maradt var. Ezen felül, a jövőben, akkor is használhatja ugyanazt a változót len ​​tárolni egy másik tömb méretét.

4) És ha nem kell megváltoztatni?

5) Szóval rendezve kizárólag neki találták az algoritmus, vagy a szokásos válogatás felvenni? Hmm, akkor én osztály lenne gyakorlatilag üres

6) printError. és sort_ticket?

7) Nos, ő csak írni a saját privát útvonalak jegyzékét, kivéve, hogy nem lehet egy kimeneti felület? Furcsa ..

8) Ezen a ponton, míg a szükséges volt, hogy megoldja a problémát?

de úgy döntöttem, hogy potetstit ezen a ponton, de nagyon kényelmes nélkül az objektum neve csak zárójelben (dom), és alkalmazzák a módszereket, kényelmes és dolgozik az esetben az én megoldása lineáris és blokk ciklusok

Nos, mi a baj pontosan, de a épségének megsértése a mögöttes adatok struktúrája? Mi vagyunk a húrok még működik ..

3) A párhuzamos sokat, de tettem, és így az összes kihúzott külön funkciót tartalmaz minden, az új módszer

4) védett változata létezik, de mi ez? és hogyan kell vele dolgozni?

2) Igen, kivétel kedvezőtlenül befolyásolhatja a teljesítményt, de Prodakshen kódot egyáltalán nem kivétel (ideális esetben). Amennyiben a kivételek kezdik befolyásolja a teljesítményét js kód - ezért van egy hiba valahol.

3) Az első megváltoztatta magát a tömböt, és a tömbök vannak tárolva js linket, hogy van, nyugodtan használja const. Másodszor, ahelyett, hogy mutációs státusz (mellesleg elfelejtettem megemlíteni, hogy a hontalan mindig jobb állapotmegőrző) Lehet, hogy csak egy új tömb. És ismét visszatérünk az 1. lépéshez - nem tudjuk, hogyan kell dolgozni a tárgyak (tulajdonságok, módszerek, objektum prototípus)

4) a tulajdonságait a változók.

5) „standard válogatás” Átadhat rendezési funkció, amely megvalósítja ezeket a szabályokat.

6) a nevét, a funkciók és módszerek - teveEsetnek, tárgy konstruktőrök (vagy osztály nevét, ha mi körülbelül cukorral Object.create) - CamelCase.

7) kell biztosítani, hogy az állam és dolgozni document.write kell senkinek. Ha ez külön funkciók - jó lenne (és ez lehet, hogy csak bizonyos funkciók). És így hagyjuk egy tárgy elvének megsértésével egyetlen felelősséget.

Dave. Nos, beszéljünk. Junior kereslet a szükségességének megértése beágyazására, vagy nem? Vagy elég, hogy meghatározzák megjegyzett társadalombiztosítási?

Ne tévesszük össze a Junior és gyakornok. A különbség a Junior és sinerom valójában csak az a tény, hogy még a birtok a megértés SZILÁRD elvek először nem az első kísérlet ki fog derülni, hogy ne zavarják a lehetőséget ezeknek az elveknek, és gyakran alakítsa, és gyakran kísérletet.

Ez olyan, mint „Miért Junior képes írni teszteket.” Ez azért van, mert ez a megközelítés, a legtöbb fejlesztő annyira gyenge, és megtalálja több száz „sinerov”, aki soha nem tudja, mi a technikai adósság.

Másrészt, mivel a költségek Junior olyan alacsony, igen. Mivel a fele még csak nem is Junior.

És aki valaha próbálta megoldani ezt a problémát? Én most igazán érdekli, hogy a profik dönt ilyen kérdéseket.

Máximo progreso hemos alcanzado en minimo seso.

Tin. SIFCO Githabe nézett, ahol az egész folyamat jól látható, a kód nem is néz ki.

Nos, nézd, ez is nyilvánvaló, hogy az információkat az útvonalakat, így ezek tekstiki, mint például: „Stockholm Riga komp, 6a kabin ...”, ez a keletkezett adatok nem fogantyúk a textarea írni :)

Meg kellett szó gondolni, hogy API használatát, és milyen adatokat tőle származik - ezekből az adatokból, hogy hozzon létre az összes rekordot, és egészen.

Mivel a felfelé és egyéb adatok ... - és még a minden igényt lokalizációja (nem csak ugyanaz az orosz szövegek lesz), és mégis mindez szükséges is csökken, ha nem teszünk maximalista do - egyetértenek abban, hogy „a stockholmi Riga ...” szörnyen hangzik .

És csak a mi megvan írva a szövegmezőbe -, akkor meg kell csinálni egy szöveges mező helyett minden formáját és a gombok, és amennyiben az üzemeltető ír egy csomó szöveget is, egy csomó hibát, rendszertelenül :)

Most, hogy minden, amit tettek, és elképzelhető, hogy a járat száma megváltozott, vagy az ülés száma megváltozott (megváltoztatta valakivel, és megváltoztatta azt a helyet, és a másik személy) - ahogy kezeli? Menj be minden utat és kezeli szöveg szerkesztése egy textarea?

És mivel az adatok és a szűrés, elemi - adatokat a leggyakoribb, hétköznapi zhisonchik, egy sor tárgyakat. Rendezés balra és jobbra billentyűvel, beágyazott készletek, így létre útvonalakat bármilyen mélységű, például nem csak Riga → Stockholm között, valamint útvonalak Riga és Stockholm útvonalakon. Nos, mint egy fa, akkor nyissa meg egy útvonalat, és ott subroute.

1) „Nos, nézd, ez is nyilvánvaló, hogy az információkat az útvonalakat, így ezek tekstiki, mint például:” Stockholm komppal Riga, 6a kabin ... „ez a keletkezett adatok nem fogantyúk a textarea írni.”

Milyen értelemben? Mi magunk kell létrehozni ezeket a kártyákat. És hogyan csinálod, hogy múlik. Az interneten előtt volt egy csomó módon, én választottam neki ..

2) be, és egyéb adatok ... - és még a minden szükséges honosítás (nem csak ugyanaz az orosz szövegek lesz), és mégis mindez szükséges is csökken, ha nem teszünk maximalista csinálni - egyetért, „From Stockholm Riga ...” hangzik szörnyű.

Ezen a ponton, az már világos, NLP víz egy hétig anélkül anyák gyakorlatban egy ilyen feladat, gyorsan tönkrement, hogy megtegyem. Próbáltam megoldani a problémát a reguláris kifejezések:
Hogyan talál egy város egy sorban?

De hiába, mindenhol ott voltak zátonyok, mindez hallgatólagos létezését szigorú bemenet.

Ezért úgy döntöttem, hogy a szigorú bemeneti adatok csak INPUT hogyan és hol, nem számít, milyen nyelven írsz, mindig a alanyeset a várost, és a kártya adatait független lenne, így nem kell elemezni a szöveg a kártya, és ellenőrizze a csökkenés, és hogy sajnálom, merev feladat itt pontosan ez a probléma kezdetben az adott példában az angol.

Azt rendezési algoritmus ezzel INPUT útmutató.

3) Igen, voltam mindezt egy textarea, mi nem mondjuk az volt, hogy az egészet kellett létrehozni a rendszer üzemeltetője, lehet, hogy az utas maga írta magának egy darab papírra. Valószínűleg kellett volna leöblítve egy egyszerű felület szelektív, és így lenne API. De azt hittem, unalmas, ezért tettem egyfajta INPUT Útmutató, ismétlem, de tetszett az a fajta, hogy még tökéletesen működött, az algoritmus megtalálása módon egy irányított gráf. És ez volt az eredmény számomra. Úgy tűnik, ez bonyolult.

4) „Most, hogy minden, amit tettek, és elképzelhető, hogy a járat száma megváltozott, vagy az ülés száma megváltozott (megváltoztatta valakivel, és megváltoztatta azt a helyet, és a másik személy) - hogyan kezeli majd készletek? minden útvonalon, és kezeli a szöveg szerkesztése egy textarea? "

Nos, én nem TK írt egy hivatalos nyilatkozatot a kitűzött célok a tényleges munka, mindez lenne vitatni a csapat vezetője, és ő volna, hogy egy formális keretet és hogy kiemelje a buktatókat, hogy biztosítsa, hogy a projekt tökéletes állapotban.

5) Az én esetemben ez volt a szokásos js-tömb, a JSON-nyissz a gyakorlatot.

wkololo_4ever. így, mint írtam, van egy része, vannak válogatás. Nem zsinórok - hozzon létre egy új láncot. Miután csatlakozott a kártya a láncra - ellenőrizze a start-végén az összes többi egység, ha van egy csomó - csatlakozzon egy húr a másikra. És veszünk egy új kártyát a bejövő sorból. És így addig, amíg a végén az egészben.
A végső osztályozó lesz az egyik (ha az összes kártya keresztül kapcsolódik egymáshoz, a kezdő- és végpontja), vagy több lánc (ha nem kapcsolt kártyák, például - „elveszett”).