55
Евгений Жарков Juno Как быть хорошим фронтенд-разработчиком

Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

  • Upload
    fwdays

  • View
    290

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Евгений ЖарковJuno

Как быть хорошим фронтенд-разработчиком

Page 2: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Не завязывать свой опыт на одном фреймворке

Page 3: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Думать о решении, а не как заставить это работать в %название_фреймворка%

Page 4: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Иногда Single Page Application лишний

Page 5: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Он слишком большой

Page 6: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

to make smart decisions

Page 7: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Page 8: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Он слишком мал

Page 9: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Как насчет CMS?

Page 10: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Ой, вы наверное забыли, что это также задачи frontend-разработчика?

Page 11: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Нет ничего вменяемого на “модных” технологиях

Page 12: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Uber, судя по исходному коду, написал свое решение

Page 13: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Но сколько для этого нужно ресурсов?

Page 14: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Wordpress, Django CMS…прочее

Page 15: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Да, не все проблемы можно решить с помощью SPA

Page 16: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Статические генераторы, например Hugo.

Без нормального UI для пользователя.

Page 17: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

А иногда желание бизнеса и возможности браузера совсем не пересекаются

Page 18: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

История со сканером водительских прав

Page 19: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

•Браузер не умеет контролировать камеру, стандарт есть - реализации нет •Решений для качественного сканирования PDF417 нет •Насильственный опыт для пользователя •Нужно что-то делать

Page 20: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

• Изучаем платформу, где используют веб-приложение • iOS, отлично • Находим качественную библиотеку сканирования штрих-кодов

Page 21: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Но я не умею разрабатывать под iOS, это же сложно

Page 22: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

- Apache Cordoba - ReactNative - NativeScript - Native Proxy

Page 23: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Замечательно, это JS! Но решать задачу, забивая гвоздь трактором, мы не

будем

Page 24: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Берем 1-2 дня на реализацию “прокси” между WebView и вашим JS кодом на Swift

Page 25: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Как изолировать и упростить жизнь с backend?

Page 26: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Написать свой mock-сервер и забыть обо всем зоопарке для старта приложения

Page 27: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

"id": faker.random.uuid(), "customer": { "id": faker.random.uuid(), "first_name": faker.name.firstName(), "last_name": faker.name.lastName() }, "phone": faker.phone.phoneNumber(), "active": faker.random.boolean(), "created_at": faker.date.past().toISOString(), "expire_at": faker.random.arrayElement([

faker.date.past().toISOString(), faker.date.future().toISOString(), null])

faker.js

Page 28: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Все очень плохо? Нет времени внедрять в существующий проект? Отгородись от зоопарка.

Docker

Page 29: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Но я же, я же JS-разработчик

Page 30: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Несколько дней на разбор Docker и больше ничего, кроме frontend’а, на твоей машине

Page 31: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

FROM python:3.4

ENV PIP_REQUIRE_VIRTUALENV false

RUN mkdir -p /cms/requirements/

ADD requirements/base.txt /cms/requirements/base.txt

RUN pip install -r /cms/requirements/base.txt --trusted-host pypi.customhost

EXPOSE 8090

CMD python /cms/src/manage.py runserver

--settings=config.settings.docker 0.0.0.0:8090

Page 32: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

.PHONY: init clean start stop

current_dir = $(shell pwd)

init:

docker build . -f python.dockerfile -t cms-python

docker run --name cms-mysql -e MYSQL_ROOT_PASSWORD=secretpassword

-d mysql/mysql-server:5.7

docker exec cms-mysql bash -c "mysql -u'root' -p'secretpassword'

-e 'CREATE DATABASE __cms’" || :

docker run --name cms-web --link cms-mysql:mysql -v "${current_dir}/src:/cms/src/"

-p 0.0.0.0:8090:8090 -d cms-python

docker exec cms-web bash -c "python manage.py migrate --settings=config.settings.docker"

docker exec -it cms-web bash -c "python manage.py createsuperuser —settings=config.settings.docker"

Page 33: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

start:

docker stop cms-mysql

docker stop cms-web

stop:

docker start cms-mysql

docker start cms-web

Page 34: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Немного о лицензионных соглашениях

Page 35: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Читайте лицензионные соглашения, чтобы не подставить компанию

Page 36: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Помните историю с лицензией React.js?

Page 37: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

LICENSE > PATENT

The license granted hereunder will terminate, automatically and without notice,

if you (or any of your subsidiaries, corporate affiliates or agents) initiate

directly or indirectly, or take a direct financial interest in, any Patent

Assertion: (i) against Facebook or any of its subsidiaries or corporate

affiliates, (ii) against any party if such Patent Assertion arises in whole or

Page 38: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Google Analytics User ID Policy

Page 39: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

• You will not upload any data that allows Google to personally identify an individual (such as certain names, Social Security Numbers, email addresses, or any similar data), or data that permanently identifies a particular device (such as a unique device identifier if such an identifier cannot be reset).

• If you upload any data that allows Google to personally identify an individual, your Google Analytics account can be terminated, and you may lose your Google Analytics data.

Page 40: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Вернемся к ежедневным проблемам

Page 41: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Мониторинг package.json

Page 42: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

или через год ваш проект утонет в поддержке всего этого г*вна

Page 43: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Page 44: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Использовать Alpha/Beta/RC ветки - это круто. Глаза светятся от счастья, пока на версии N17 все

перестает работать

Page 45: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Окей, сел, исправил

Page 46: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Выходит N18

Page 47: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

“Мы пофиксили 1 баг, который нарушал общий механизм работы”

Page 48: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

А у тебя этот баг был фичей

Page 49: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

10-20% именно столько нового

стоит использовать на продакшене

Page 50: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Принесите домой больное растение и оно заразит все остальные, аналогично с кодом.

Page 51: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Не все хорошие вещи становятся публичными и получают поддержку комьюнити.

Page 52: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Не все публичные проекты являются качественно спроектированными и готовыми к реальной жизни, которая начинается за пределами ToDo списков и

Counter’ов

Page 53: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

Еще раз о главном

Page 54: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

- Как хакатон прошёл?- Вообще отлично! Настроили Webpack и Babel

Page 55: Евгений Жарков "Как быть хорошим фронтенд-разработчиком"

[email protected]@2j2e