Какви още критерии бихте могли да посочите за добър библиотечен компонент?
Frontend
Започнахте да учите React, а React е по-популярен и има повече работни места за него. Защо в крайна сметка преминахте към Angular?
Разкажи ми за писането на юнит тестове: кога, по твое мнение, тестът трябва да се провали? Какво точно трябва да проверява един юнит тест за клас, тестван по лондонската школа (с всички мокнати зависимости)?
Сравнете внедряването на зависимости чрез параметри на конструктора и чрез функцията inject: какви са плюсовете и минусите на всеки подход?
Анализирайте този подход от гледна точка на смесването на отговорности: какво е направено неправилно тук и как бихте го обяснили от гледна точка на архитектурните принципи (по-специално, Принципа на единствената отговорност и разделянето на представяне и модел)?
Можете ли да изброите всички технически решения на този проблем (освен замяната на полето със сигнал)?
Разкажете повече за използването на async pipe и ръчното абониране: какво точно трябва да направите, за да се покаже правилно стойността в шаблона (включително работата с абонамента и неговото отписване чрез takeUntilDestroy или ngOnDestroy)?
Имате ли практически критерии за това къде е подходящо да се прилага наследяването и къде не?
Ако шаблонът не знае, че стойността е променена, защо добавянето на async pipe в шаблона решава проблема с реактивността? Как работи това под капака?
Можете да дадете конкретен пример за библиотека, която не позволяваше завършването на сборката при актуализиране на Angular (например до версия 16)? В какво точно се състоише проблемът и как го решихте?
Във вашето резюме посочвате, че сте актуализирали Angular от версия 14 до 20. Разкажете за някакъв проблем, който е възникнал при актуализирането на Angular в проект - история от практиката.
Защо изобщо е необходима наследяването в ООП? Дайте обосновка защо се използва, ако задачата за повторно използване на логиката може да бъде решена и по други начини (например чрез DI).
Защо при използване на сигнал и извикване на метода set стойността се актуализира в шаблона, а при простото присвояване this.token = стринг - не? Обяснете това на ниво концепция за откриване на промени.
Запознат ли сте с UML диаграми на класове? Имали ли сте опит с типове връзки като асоциация, композиция, агрегиране, обобщение?
Казахте, че сте писали тестовете с помощта на невронна мрежа. Ако невронната мрежа е генерирала тестове, които се провалят при всяка промяна в кода на класа, достигат ли тези тестове целта си? Полезни ли са?
Ако трябваше да преброите броя на редовете код в проект, как бихте подходили към тази задача? Как бихте формулирали заявка за намиране на решение или за невронна мрежа?
Защо избрахте точно уеб разработка и Angular, а не например мобилна разработка?
На предишното ви работно място казахте, че фронтенд частта е относително малка, но при това се занимаваха 6 фронтенд разработчици. От къде е взела се точно тази 6-членна екип и как се свързва с общия фронтенд екип на компанията?
Представете си сценарий: по-опитен разработчик получава младши с задачата да създаде Angular компонент с поле за показване на токен и бутон 'създай токен'. При натискане на бутона се изпраща заявка към сървъра, получава се токен, и младшият пише this.token = полученият низ, но стойността не се показва и страницата не се прерисува. Какво бихте препоръчали за решаване на този проблем и какви подходи съществуват за коригирането му?
Разкажете ни как попаднахте в индустрията за разработка: как се обучавахте, как намерихте първото си място за работа, като имате предвид, че в резюмето е посочена нетехническа специалност?