Jaké další kritéria byste mohli uvést pro dobrý knihovní komponent?
Frontend
Začal jsi se učit React, a React je populárnější a je na něj více pracovních míst. Proč jsi nakonec přešel na Angular?
Pověz mi o psaní jednotkových testů: kdy by podle tebe měl test selhat? Co přesně by měl jednotkový test pro třídu testovanou podle londýnské školy (se všemi mockovanými závislostmi) ověřovat?
Analyzujte tento přístup z pohledu míchání odpovědností: co je zde špatně a jak byste to vysvětlili z hlediska architektonických principů (zejména Principu jediné odpovědnosti a oddělení prezentace a modelu)?
Porovnejte vkládání závislostí přes parametry konstruktoru a přes funkci inject: jaké jsou výhody a nevýhody každého přístupu?
Můžete vyjmenovat všechna technická řešení tohoto problému (kromě výměny pole za signál)?
Povězte nám více o používání async pipe a ručního přihlášení: co přesně je třeba udělat, aby se hodnota správně zobrazila v šabloně (včetně práce s přihlášením a odhlášením přes takeUntilDestroy nebo ngOnDestroy)?
Můžete uvést konkrétní příklad knihovny, která při aktualizaci Angular (například na verzi 16) nedovolila dokončení sestavení? V čem přesně spočívala podstata problému a jak jste ho vyřešili?
Ve svém životopise uvádíte, že jste aktualizovali Angular od verze 14 do 20. Vyprávějte o nějakém problému, který se objevil při aktualizaci Angular v projektu - příběh z praxe.
Proč je v objektově orientovaném programování vůbec potřeba dědičnost? Uveďte odůvodnění, proč se používá, pokud lze úlohu opětovného využití logiky řešit i jinými způsoby (například přes DI).
Máte na základě praxe nějaká kritéria, kdy je vhodné dědičnost používat a kdy ne?
Na předchozím místě práce jste řekl, že část frontendu je poměrně malá, ale přitom se jí věnovalo 6 frontendových vývojářů. Odkud pochází právě tým složený ze 6 lidí a jak souvisí s celkovým týmem frontendů ve společnosti?
Proč je při použití signálu a volání metody set hodnota aktualizována v šabloně, ale při jednoduchém přiřazení jako this.token = řetězec nikoliv? Vysvětlete to na úrovni detekce změn.
Řekl jste, že jste testy psali pomocí neuronové sítě. Pokud neuronová síť vygenerovala testy, které selhávají při jakékoli změně kódu třídy, dosahují tyto testy svého cíle? Jsou užitečné?
Znáte UML diagramy tříd? Zabývali jste se typy vztahů jako asociace, kompozice, agregace, generalizace?
Proč jste si vybral právě vývoj webu a Angular, například místo vývoje mobilních aplikací?
Představte si scénář: zkušenější vývojář přijme juniora s úkolem vytvořit Angular komponentu s polem pro zobrazení tokenu a tlačítkem 'vytvořit token'. Po kliknutí na tlačítko je odeslána žádost na server, přijde token, a junior napíše this.token = řetězec, který přišel, ale hodnota se nezobrazuje a stránka se nepřekreslí. Co byste doporučili k řešení tohoto problému a jaké jsou obecně přístupy k jeho opravě?
Pokud šablona neví, že se hodnota změnila, proč řešení přidání async pipe do šablony řeší problém reaktivity? Jak to funguje na pozadí?
Povězte nám, jak jste se dostali do odvětví vývoje: jak jste se vzdělávali, jak jste našli své první zaměstnání, s ohledem na to, že ve vašem životopise je uvedena netechnická specializace?
Pokud byste museli spočítat počet řádků kódu v projektu, jak byste k této úloze přistoupili? Jak byste formulovali dotaz pro hledání řešení nebo pro neuronovou síť?