Jakie inne kryteria mógłbyś wymienić dla dobrego komponentu bibliotecznego?
Frontend
Zacząłeś uczyć się React, a React jest bardziej popularny i jest więcej ofert pracy. Dlaczego ostatecznie przeszedłeś na Angular?
Przeanalizuj to podejście z punktu widzenia mieszania odpowiedzialności: co tutaj zostało zrobione nie tak i jak byś to wyjaśnił z punktu widzenia zasad architektonicznych (w szczególności zasady pojedynczej odpowiedzialności i rozdzielenia prezentacji i modelu)?
Opowiedz o pisaniu testów jednostkowych: kiedy, Twoim zdaniem, test powinien zawieść? Co dokładnie powinien sprawdzać test jednostkowy dla klasy testowanej według szkoły londyńskiej (ze wszystkimi zależnościami zamockowanymi)?
Czy możesz wymienić wszystkie techniczne sposoby rozwiązania tego problemu (z wyjątkiem zamiany pola na sygnał)?
Porównaj wstrzykiwanie zależności przez parametry konstruktora i przez funkcję inject: jakie są zalety i wady każdego podejścia?
Opowiedz więcej o używaniu pipe async i ręcznym subskrybowaniu: co dokładnie trzeba zrobić, aby wartość poprawnie wyświetliła się w szablonie (w tym obsługa subskrypcji i jej odsubskrybowanie za pomocą takeUntilDestroy lub ngOnDestroy)?
Czy możesz podać konkretny przykład biblioteki, która uniemożliwiała ukończenie kompilacji podczas aktualizacji Angulara (np. do wersji 16)? Na czym dokładnie polegał problem i jak go rozwiązałeś?
W swoim CV wskazujesz, że zaktualizowałeś Angular z wersji 14 do 20. Opowiedz o jakimś problemie, który wystąpił podczas aktualizacji Angular w projekcie - historię z praktyki.
Po co w programowaniu obiektowym potrzebne jest dziedziczenie? Podaj uzasadnienie, dlaczego jest ono używane, jeśli zadanie ponownego użycia logiki można rozwiązać innymi sposobami (np. przez DI).
Czy masz kryteria oparte na praktyce, które określają, gdzie dziedziczenie jest odpowiednie, a gdzie nie?
W poprzedniej pracy powiedziałeś, że część frontendowa jest stosunkowo mała, ale zajmowało się nią 6 programistów frontend. Skąd wzięła się dokładnie ta 6-osobowa drużyna i jak odnosi się ona do ogólnego zespołu frontendowego firmy?
Dlaczego przy użyciu sygnału i wywołaniu metody set wartość jest aktualizowana w szablonie, a przy zwykłym przypisaniu jak this.token = ciąg, nie? Wyjaśnij to na poziomie wykrywania zmian.
Powiedziałeś, że napisałeś testy za pomocą sieci neuronowej. Jeśli sieć neuronowa wygenerowała testy, które zawalają się przy każdej zmianie kodu klasy, czy takie testy osiągają swój cel? Czy są one przydatne?
Dlaczego wybrałeś właśnie rozwój webowy i Angular, a nie na przykład rozwój mobilny?
Czy znasz diagramy klas UML? Czy miałeś do czynienia z takimi typami relacji jak asocjacja, kompozycja, agregacja, generalizacja?
Opowiedz, jak trafiłeś do branży rozwoju: jak się szkoliłeś, jak znalazłeś pierwszą pracę, biorąc pod uwagę, że w CV wskazano specjalność nietechniczną?
Wyobraź sobie scenariusz: bardziej doświadczony programista otrzymuje juniora z zadaniem stworzenia komponentu Angular z polem do wyświetlania tokena i przyciskiem 'utwórz token'. Po kliknięciu przycisku wysyłane jest zapytanie do serwera, otrzymywany jest token, a junior zapisuje this.token = otrzymany ciąg, ale wartość nie jest wyświetlana i strona nie jest ponownie renderowana. Co byś zalecił, aby rozwiązać ten problem i jakie są ogólnie podejścia do jego naprawy?
Czy zgadzasz się z tezą, że uniwersalny komponent współdzielony, powtarzający się w różnych miejscach aplikacji, oraz komponent biblioteczny przeznaczony do importu do innych aplikacji, nie są tym samym, i że do nich należy podchodzić inaczej? Jakie wymagania byś postawił wobec komponentu bibliotecznego w porównaniu do komponentu współdzielonego?
Gdybyś musiał policzyć liczbę linii kodu w projekcie, jak byś się do tego zabrał? Jak sformułowałbyś zapytanie, aby znaleźć rozwiązanie lub dla sieci neuronowej?