Skip to content

Instantly share code, notes, and snippets.

@zogreptile
Created March 20, 2019 14:50
Show Gist options
  • Save zogreptile/7981b151e23627d47879f73153f3ad6b to your computer and use it in GitHub Desktop.
Save zogreptile/7981b151e23627d47879f73153f3ad6b to your computer and use it in GitHub Desktop.

1. Расскажите, чем, на ваш взгляд, отличается хорошее клиентское приложение от плохого с точки зрения

Пользователя:
  • интуитивно-понятное
  • отзывчивое
  • быстрое
  • приятно выглядящее
Менеджера проекта:
  • не вызывает лишних вопросов со стороны заказчика/начальства
  • сделано в заявленные сроки
Дизайнера:
  • учтены и реализованы его идеи
Верстальщика:
  • грамотно продумано дизайнером
  • не требует написания костылей
Серверного программиста:
  • просто интегрируется с имеющимся API

2. Опишите основные особенности разработки крупных многостраничных сайтов, функциональность которых может меняться в процессе реализации и поддержки.

  • использование методологии БЭМ (или другой) в вёрстке
  • применение лучших практик при использовании жс-фреймворков: единое состояние, хоки, грамотная структура проекта и пр.
  • использование готовых open-source решений
  • покрытие кода тестами

Расскажите о своем опыте работы над подобными сайтами: какие подходы, инструменты и технологии вы применяли на практике, с какими проблемами сталкивались и как их решали.

На данный момент написал два средних приложения на react + redux. Иногда сталкивался с дублированием кода – выносил в отдельный модуль. Также выносил в отдельные функции/модули код, в котором потенциально легко было допустить ошибку.

3. При разработке интерфейсов с использованием компонентной архитектуры часто используются термины Presentational Сomponents и Сontainer Сomponents. Что означают данные термины? Зачем нужно такое разделение, какие у него есть плюсы и минусы?

Сontainer Сomponents – получают данные извне (сервер/стор), обрабатывают и передают в presentational components.

Presentational Сomponents – получают готовые данные и отрисовывают на экране.

Подобное разделение помогает переиспользовать presentational components, передавая данные из разных контейнер-компонентов.

4. Как устроено наследование в JS? Расскажите о своем опыте реализации JSнаследования без использования фреймворков.

В джаваскрипте механизм наследования реализован с помощью прототипов, то есть каждый дочерний объект хранит ссылку на своего родителя и родителей родителя (вверх по цепочке). Начиная со стандарта ES6 в языке появилась возможность писать классы минуя работу с prototype напрямую.

Мне же, помимо class MyClass extends React.Component не приходилось работать с наследованием.

5. Какие библиотеки можно использовать для написания тестов end-to-end во фронтенде? Расскажите о своем опыте тестирования веб-приложений.

У меня есть опыт только с юнит тестами с помощью Jest. Для написания е2е подойдет тот же Jest, Mocha, Cypress.

6. Вам нужно реализовать форму для отправки данных на сервер, состоящую из нескольких шагов. В вашем распоряжении дизайн формы и статичная верстка, в которой не показано, как форма должна работать в динамике. Подробного описания, как должны вести себя различные поля в зависимости от действий пользователя, в требованиях к проекту нет. Ваши действия?

Для начала поинтересуюсь у дизайнера и верстальщика как оно должно быть. Возможно кто-то из них забыл это учесть. В результате я либо получу исправленную вёрстку либо макет. Если ни того ни другого, сделаю на свое усмотрение в соответствии с дизайном остального сайта.

7. Расскажите, какие инструменты помогают вам экономить время в процессе написания, проверки и отладки кода.

Emmet, линтеры, debugger/console.log, react-devtools, redux-devtools.

8. Какие ресурсы вы используете для развития в профессиональной сфере? Приведите несколько конкретных примеров (сайты, блоги и так далее).

Несколько месяцев назад прошел курс "js фронтенд-программист" от Хекслет. Смотрю их канал на youtube. Также смотрю стримы Юрия Артюха по анимациям в вебе. Подписан на forweb – удобная лента о новостях и инструментах фронтенда.

Какие ещё области знаний, кроме тех, что непосредственно относятся к работе, вам интересны?

Интересуюсь музыкой – как прослушиванием так и игрой.

9. Расскажите нам немного о себе и предоставьте несколько ссылок на последние работы, выполненные вами.

На данный момент я ищу удаленную работу фронтенд-разработчиком на React стеке. Продакшен опыта на нём пока не имею, но есть несколько своих проектов + теория и практика полученные на курсах Хекслет: современный js, основы функционального программирования, работа с React как раз.
Помимо этого два года работал верстальщиком в веб-студии.

Примеры работ:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment