adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

34
КАК ЛЕНИВЫЕ ФРОНТЕНДЫ СЕБЕ ЖИЗНЬ УПРОЩАЮТ adn.agency

Upload: adn-digital-studio

Post on 11-Apr-2017

89 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

КАК ЛЕНИВЫЕ ФРОНТЕНДЫ СЕБЕ ЖИЗНЬ УПРОЩАЮТ

adn.agency

Page 2: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

2Боль

1. Огромные CSS файлы

2. Невозможно переиспользовать код

3. Сложности поддержки проектов

4. Склеивание и минификация файлов

5. Префиксы для css3

6. Работа со спрайтами

7. Невозможность использовать новые фичи javasccript

Page 3: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

3

Препроцессоры. Зачем эти сложности?

Page 4: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

4Переменные

Page 5: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

5Вложенность

Page 6: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

6Миксины

Page 7: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

7Миксины с правилами

Результат выполнения

Page 8: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

8Импорты

Page 9: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

9Проблемы, о которых мы уже забыли

1. Огромные CSS файлы

2. Невозможно переиспользовать код

3. Сложности поддержки проектов

Page 10: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

10Немного о PostCSS

1. Это не препроцессор

2. Это не пост процессор

3. Это новый подход к работе с css

Page 11: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

11Autoprefixer

https://github.com/postcss/autoprefixer

Автоматически добавляет префиксы

Результат выполнения

Page 12: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

12Short

https://github.com/jonathantneal/postcss-short

Мощный PostCSS плагин, позволяющий сокращать написание CSS кода.

Результат выполнения

Page 13: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

13CSS Next

http://cssnext.io/

Позволяет использовать возможности CSS-4 уже сегодня.

Кастомные селекторы

Улучшенный синтаксис медиа-запрос

Page 14: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

14CSS Next

http://cssnext.io/

Позволяет использовать 10 различных CSS фильтров:

‣ grayscale

‣ sepia

‣ saturate

‣ hue-rotate

‣ invert

‣ opacity

‣ brightness

‣ contrast

‣ blur

‣ drop-shadow

.blur {

filter: blur(4px);

}

Page 15: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

15Tusk Runner’ы

http://gruntjs.com/ http://gulpjs.com/

Page 16: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

16package.json

Список зависимостей, которые нужно установить

Page 17: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

17Gruntfile

Файл конфигурации

http://gruntjs.com/

Подключение плагинов

Конфигурация каждойзадачи

Page 18: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

18grunt-contrib-less

Компилирует LESS файлы в CSS

http://gruntjs.com/

Page 19: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

19grunt-contrib-cssmin

Минифицирует CSS файлы

http://gruntjs.com/

Page 20: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

20grunt-contrib-concat

Объединяют несколько JS файлов

http://gruntjs.com/

Page 21: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

21grunt-contrib-uglify

Минифицирует JS файл

http://gruntjs.com/

Page 22: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

22grunt-contrib-watch

Отслеживает изменения файлов и запускает нужные задачи

https://github.com/gruntjs/grunt-contrib-watch

Определяем отслеживание изменения LESS файлов и запускаем необходимые задачи

Page 23: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

23grunt-svg-sprite

Генерирует SVG спрайт

https://www.npmjs.com/package/grunt-svg-sprite

Page 24: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

24grunt-spritesmith

Генерирует PNG спрайт

https://github.com/Ensighten/grunt-spritesmith

Page 25: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

25Результат сборки спрайта

http://gruntjs.com/

Page 26: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

26grunt-babel

Позволяет использовать ES6

https://github.com/babel/grunt-babel

Page 27: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

27Еще раз вспомним для чего это все нужно

1. Огромные CSS файлы

2. Невозможно переиспользовать код

3. Сложности поддержки проектов

4. Склеивание и минификация файлов

5. Префиксы для css3

6. Работа со спрайтами

7. Невозможность использовать новые фичи javasccript

Page 28: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

28

БЭМ - что это и зачем?

Page 29: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

29БЭМ - что это и зачем?

1. Разработчик должен понимать свой код и код любого программиста в команде БЭМ-проекта.

2. Любой блок кода может быть использован повторно

3. Работая в одной команде, разработчики, менеджеры, дизайнеры и верстальщики должны называть одни и те же вещи одинаково.

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

5. Порог входа при переходе на новый проект должен быть снижен за счет одинаковой структуры организации всех БЭМ-проектов и одинаковых правил именования всех сущностей.

Page 30: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

30Структура элемента

Самый высокий уровень абстракции компонента..block

Дочерний элемент .block помогающий поддерживать его целостность..block__element

Другое состояние или версия .block..block--modifier

Page 31: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

31БЭМ vs Каскадирование

Специфичность данного селектора очень велика.

Как обрабатывает «машина» код в этом случае: сначала все <a>, потом <a>, вложенные в <li> и так далее.

«Выравниваем» специфичность между элементами DOM.

Обработка <a class="top-menu-item__link">. То есть браузер сразу же нашел ссылку по селектору .top-menu-item__link.

Page 32: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

32

Не заморачивайтесь,упрощайте процесс разработки

Page 33: Adn@it'summer - Как ленивые фронтенды себе жизнь упрощают

Технический директор ADN digital studio

Михаил Полев [email protected]

Спасибо за внимание!

goo.gl/948xcb

Ссылка на презентацию: