- Репозиторий https://github.com/mapuaptu/react-map
- Работающий пример - https://maptu-react-map.herokuapp.com/
-
Клонируем репозиторий.
git clone https://github.com/mapuaptu/react-map.git -
Переходим в проект.
cd react-map -
Устанавливаем клиентские зависимости (для локального просмотра).
npm i --prefix client -
Запускаем
dev server.npm start --prefix client
Приложение работает на heroku, поэтому присутствует server.mjs.
- Приложение состоит из двух частей. Панель добавления точек и карта.
- Вводим адрес, идет ображение к
API Yandex geocoder, геокодер возвращает подходящий результат. - Приложение берет координаты и адрес из ответа геокодера (даже если мы ввели название неверно).
- Приложение добавляет точку.
- При добавлении второй точки, между точками рисуется прямая линия, если точек больше, то линии между точками рисуются в том порядке, в котором они расположены на левой панели.
- Точки можно перемещать перетаскиванием, как на карте так и на панели. Соотвественно линии перерисовываются.
- Если добавлено 2 и более точек, то появляется кнопка удалить все, которая удаляет все точки с панели и карты.
Q1.
Пользователь
- Приложение иммет интуитивно понятный интерфейс
- Современный внешний вид, приятная анимация
- Быстро работатет
- Выполняет нужные пользователю функции
Менеджер
- Соответствует тз
- Быстрая интеграция новых функциональных возможностей
- Быстрое внесение изменений и правка багов
Дизайнер
- Современный внешний вид, приятная анимация
Верстальщик
- Современный внешний вид, приятная анимация
- Хорошо написанный, поддерживаемый код
- Быстрая интеграция новых функциональных возможностей
- Быстрое внесение изменений и правка багов
Бекенд
- Хорошо написанный, поддерживаемый код
- Минимазация API запросов
- Быстрая интеграция новых функциональных возможностей
- Быстрое внесение изменений и правка багов
Q2.
На последнем месте работы, не было многостраничных сайтов.
Работа велась над анимированными SPA, написанными на собственных наработках компании. jQuery, vanilla JS
Если менялась функциональность, то просто переписывалась старая. Проекты после их релиза, практически не поддерживались в дальнейшем (промо).
В разработке использовались - vanilla JS, ES6, jQuery, scss, pug, gsap, gulp, webpack, git (bitbucked), Abobe Photoshop, Figma, Avacode, Adobe Illustrator, Slack, canvas, videojs, browserstack и тд.
Q3.
Презентационный компонент:
- Основая идея - как должен выглядеть компонент.
- Может содержать как презентационный компонент так и контейнер, и обычно имеет разметку и собственные стили.
- Получает данные через
props. - Очень редко имеет свой
state. - Написан как функциональный компонент.
Контейнер
- Основная идея - как должен работать.
- Может содержать как презентационный компонент так и контейнер, но обыно не иммет разметки и собсвенные стили.
- Передает данные и поведение другим компонентам.
- Часто имеет
state, и служит источником данных. - Написан как классовый компонент.
Преимущества:
- Лучшее разбитие и понимание кода.
- Переиспользоваемость кода.
- Стилизация и функциональность отделены друг от друга.
Q4.
Прототипное наследование(ES6 - обертка на классах). По работе не приходилось заниматься реализацией наследования.
Q5.
Mocha, Chai, Jest. Нет опыта тестирования веб-приложений.
Q6.
Свяжусь с менеджером проетка, объясню ситуацию, после в крайнем случае - реализую сам, глядя на какой либо пример известного сайта.
Q7.
VSCODE, стартовая заготовка проекта, git, emmet, shortcuts, eslint, stylelint, prettier, chrome dev tools.
Q8.
IOT
Q9.
Последние работы: