+ All Categories
Home > Technology > JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для...

JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для...

Date post: 06-Apr-2017
Category:
Upload: geekslab-odessa
View: 43 times
Download: 9 times
Share this document with a friend
21
Сбалансированное окружение для вашей продуктивности Алексей Зеленюк, Application Architect eleks.com Big blue heading
Transcript
Page 1: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Сбалансированное окружение для вашей продуктивностиАлексей Зеленюк, Application Architect

eleks.com

Big blue heading

Page 2: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

О чем доклад

● Почему в JS все так сложно?● Как выглядит современное JS окружение● Мой первый JS Энтерпрайз● Все это правда надо?● Мои менее продвинутые проекты● Начинаем новый проект

● Что с этим делать?● Что приводит к сложности?● Бройлерплейты против велосипедов● Рельсово-Сиэлайная магия● Гибридный подход

● Lean Environment● К чему нужно стремиться?● С чего нужно начать?● Что можно отложить?● Чего бояться?● Полезные мелочи

● О команде

Сбалансированное окружениедля вашей продуктивности,

Алексей Зеленюк

Page 3: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Современное JS окружение

1. Package Management

2. Bundling

3. Transpiling

4. Minification

5. Sourcemaps

6. Mocked API

7. Dev Webserver

8. Component Libraries

9. Build automation

10.Production deploy

11.Code Style validation

12.Unit/E2E tests

Page 4: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

В придачу

1. Continuous Integration

2. Build automation

3. Production deployment

4. Code-review инструменты и конвенции

5. Tests coverage

6. SDLC специфика, и прочий Agile

Page 5: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Мой первый JS ЭнтерпрайзPython (древней версии)

Ruby gems для компаса и еще какой-то фигни

Bash скрипты (много)

Backbone забытой версии, модифицированный

Юнит тесты

E2E тесты

Время сборки ~ 10 минут

Деплой – ~ 1 час

Page 6: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Как-то так…

Page 7: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Когда попадаешь в менее продвинутый проект

Page 8: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Когда начинаешь проект с нуля

Page 9: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Что в итоге?

● Программа обросла библиотеками

● Билд обрастает скриптами

● Проект новыми требованиями

● И новыми костылями

● Много тяжелых тестов

● Сложность растет

● Рефакторить нет времени

● Лепим сверху, сзади и по бокам

● Производительность упала

● А давайте перепишем с нуля?

Page 10: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Начать с чистого листа нетрудно.Трудно изменить почерк.

П. Коэльо

Page 11: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Избыточная сложность.Что к ней приводит?

1. Лень/нет времени разбираться

2. Лень/нет времени следить за прогрессом

3. Хайп, погоня за новым

4. Новые требования не вкладываются в архитектуру

5. Неправильные решения и лишние абстракции

6. Пренебрегание рефакторингом

Page 12: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Бройлерплейты

• Экономит время (вначале)

• Фокусируемся на задаче

• Поддерживается

• Full-featured

• Стандартный стек

• Много лишнего

• Меньше понимания

• Трудно расширить

Page 13: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Велосипеды

• Выбираем только нужное

• Больше понимания

• Меньше лишней сложности

• Проще изменить

• Долгий старт

• Нужно поддерживать

• Свое не всегда лучшее

Page 14: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Теплый рельсовый CLI

• Стандартный подход

• Меньше рутины

• Ускоряет вход в проект

• Ускоряет разработку

• Само-документируемость

• Много лишнего кода

• Жесткие рамки

• Постоянная доработка

шаблонов

Page 15: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Гибридный подход

1. Изучить лучшие решения

2. Выбрать наиболее подходящее

3. Пересобрать с оглядкой на него, с нуля

4. Создать шаблоны для CLI

5. Мотивировать коллег (и себя) их использовать

Page 16: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Lean Environment

Less-is-Better

Page 17: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

К чему нужно стремиться?

1. Быстрый фидбек

2. Авто-конвенции

3. Масштабируемость

4. [TO BE CONTINUED]

Page 18: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

С чего начать?

1. Осмысление требований и 3-party интеграций

2. Понимание потоков данных и интерфейсов

3. Быстрый прототип на бойлерплейте и фидбек

4. EditorConfig и линтеры

5. Юнит-тесты

6. WIP Demo (localtunnel, Surge, etc)

7. Спецификация (Swagger, etc.)

8. Переосмысление и переписывание

Page 19: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Что можно отложить?

1. Твердый выбор фреймворка и утилит

2. Выбор и настройка БД

3. Глубокую декомпозицию

4. Внедрение абстракций

5. DRY принцип

6. Все что можно отложить

YAGNIYou Ain’t Gonna Need It!

Page 20: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

Fake it until you make it!

1. [TO BE CONTINUED]

Page 21: JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности

О Команде

1. [TO BE CONTINUED]


Recommended