SlideShare a Scribd company logo
Роман Дворнов
github.com/lahmatiy
Basis.js
• JavaScript фреймворк для создания SPA
• github.com/basisjs/basisjs
• Разрабатывается с 2006 года, на GitHub с 2011 года
• Вся необходимая инфраструктура (dev-сервер, сборка, линтеры etc)
Basis.js
• Документация
• Basis.js – «под капотом»
• Basis.js – почему я не бросил разрабатывать свой фреймворк

Слайды Видео
• Доклад: Инструменты разные нужны, инструменты разные важны

Слайды Видео
• Доклад: Basis.js - Production Ready SPA Framework

Слайды Видео
• Доклад: МРТ для данных

Слайды Видео
Материалы
Insight #1
Большие проекты очень сложно продвигать
CSSO
• Минификатор CSS
• github.com/css/csso
• Начал разрабатываться в 2011 году, с 2013 заморозился
• В октябре 2015 я стал контрибьютером, вернул к жизни, сделал лучше
CSSO
Вернул к жизни
ВремясжатияCSS(600Kb)
500 ms
1 000 ms
1 500 ms
2 000 ms
2 500 ms
3 000 ms
3 500 ms
4 000 ms
4 500 ms
5 000 ms
5 500 ms
6 000 ms
Версия CSSO
1.4.0 1.5.0 1.6.0 1.7.0 1.8.0 2.0
1 050 ms
clean-css
CSSO стал одним из самых быстрых
csso
500 ms
cssnano
23 250 ms
• CSSO — СЖИМАЕМ CSS

Слайды Видео
• CSSO — история ускорения

Слайды Видео
Материалы
Insight #2
Заброшенный проект можно подхватить и
сделать из него конфетку
Еще показательный пример с TJ Holowaychuk
CSSTree
• Инструменты для работы с CSS: парсинг, обход, генерация, валидация
• github.com/csstree/csstree
• Проект начался в результате рефакторинга парсера CSSO, в сентябре 2016
• Все еще в разработке, но все активнее используется в других проектах
• Быстрый детальный парсинг близко к спекам и поддержке браузерами
CSSTree
github.com/postcss/benchmark
17
csstree.github.io/docs/syntax.html
Документация синтаксиса
18
csstree.github.io/docs/validator.html
Валидатор синтаксиса CSS значений
Кое что еще
• csstree-validator – npm пакет + консольная команда
• stylelint-csstree-validator – плагин для stylelint
• gulp-csstree – плагин для gulp
• SublimeLinter-contrib-csstree – плагин для Sublime Text
• vscode-csstree – плагин для VS Code



…
19
• Парсим CSS

Слайды Видео
• Парсим CSS: performance tips & tricks

Слайды Видео
Материалы
Insight #3
Нормально делай – нормально будет
Самое крутое – делать 

веб-разработку лучше
mdn/data
general data for Web technologies
CSSTree задрайвил появление mdn/data и помог исправить множество ошибок
CSS свойств
•mdn/data – 367
•Alexa Top 250 – 483
•Известных свойств – 1150
Что нужно сделать:
• найти неописанное свойство
• нагуглить описание
• сделать PR с описанием в JSON
Отлично для Hacktoberfest!
Подобные проекты
• mdn/data

This repository contains general data for Web technologies
• browser-compat-data

This repository contains compatibility data for Web technologies
• caniuse

Raw browser/feature support data from caniuse.com
Insight #4
Большое начинается с малого
Component Inspector
• Инструмент для инспектирования интерфейсов (компонент)
• github.com/lahmatiy/component-inspector
• Проект вышел из basis.js + результат эксперимента
• Фасад для нового UX в разработке веб-интерфейсов
Component Inspector
Побочные проекты
• babel-plugin-source-wrapper 

Плагин для babel для мета информации о локации создания
объектов и функций
• open-in-editor (express-open-in-editor)

Node.js пакет для программного открытия файлов в редакторе
• source-fragment (express-source-fragment)

Извлечение фрагмента кода из файла + раскраска кода
• Инструментируй это

Слайды Видео
• Component Inspector – инструмент для инспектирования
компонент

Слайды
Материалы
Insight #5
Пока не попробуешь, не узнаешь что из этого
выйдет – не бойтесь экспериментировать
More things
My Open Source (Sept 2017)

More Related Content

What's hot

DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в DrupalDrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalSPB
 
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
Positive Hack Days
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
Ontico
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Ontico
 
Платформа для поставки счастья в команду QA
Платформа для поставки счастья в команду QAПлатформа для поставки счастья в команду QA
Платформа для поставки счастья в команду QA
Slava Kuznetsov
 
Drupal в облаке - Владимир Юнев
Drupal в облаке - Владимир ЮневDrupal в облаке - Владимир Юнев
Drupal в облаке - Владимир Юнев
DrupalCamp MSK
 
Разработка сложного мультимедийного приложения на JavaScript+HTML5 и PhoneGap...
Разработка сложного мультимедийного приложения на JavaScript+HTML5 и PhoneGap...Разработка сложного мультимедийного приложения на JavaScript+HTML5 и PhoneGap...
Разработка сложного мультимедийного приложения на JavaScript+HTML5 и PhoneGap...Ontico
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Ontico
 
Сборка Front-end’a
Сборка Front-end’aСборка Front-end’a
Сборка Front-end’a
DelphiCon
 
Александр Афенов
Александр АфеновАлександр Афенов
Александр Афенов
CodeFest
 
Сборка web проекта с использованием Grunt и Node.js
Сборка web проекта с использованием Grunt и Node.jsСборка web проекта с использованием Grunt и Node.js
Сборка web проекта с использованием Grunt и Node.jsGeeksLab Odessa
 
OpenStack: от enterprise к сервис-провайдеру / Сергей Пимков (Селектел)
OpenStack: от enterprise к сервис-провайдеру / Сергей Пимков (Селектел)OpenStack: от enterprise к сервис-провайдеру / Сергей Пимков (Селектел)
OpenStack: от enterprise к сервис-провайдеру / Сергей Пимков (Селектел)
Ontico
 
JS Lab2017_Redux: время двигаться дальше?_Екатерина Лизогубова
JS Lab2017_Redux: время двигаться дальше?_Екатерина ЛизогубоваJS Lab2017_Redux: время двигаться дальше?_Екатерина Лизогубова
JS Lab2017_Redux: время двигаться дальше?_Екатерина Лизогубова
GeeksLab Odessa
 
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Ontico
 
Специфика рендеринга vue.js-приложений на сервере, Алексей Клюев
Специфика рендеринга vue.js-приложений на сервере, Алексей КлюевСпецифика рендеринга vue.js-приложений на сервере, Алексей Клюев
Специфика рендеринга vue.js-приложений на сервере, Алексей Клюев
Mail.ru Group
 
Gennadiy Dubina - Android: Reverse engineering
Gennadiy Dubina - Android: Reverse engineeringGennadiy Dubina - Android: Reverse engineering
Gennadiy Dubina - Android: Reverse engineering
DataArt
 
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Badoo Development
 
Работа со статикой в Django
Работа со статикой в DjangoРабота со статикой в Django
Работа со статикой в DjangoMoscowDjango
 
Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014
Alexey Bokov
 
Nazapad 7. Оптимизация скорости загрузки и перелинковки
Nazapad 7. Оптимизация скорости загрузки и перелинковкиNazapad 7. Оптимизация скорости загрузки и перелинковки
Nazapad 7. Оптимизация скорости загрузки и перелинковки
Ihor Bankovskyi
 

What's hot (20)

DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в DrupalDrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
DrupalCafe #2: Константин Комелин - Быстрый старт для новичка в Drupal
 
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
 
Платформа для поставки счастья в команду QA
Платформа для поставки счастья в команду QAПлатформа для поставки счастья в команду QA
Платформа для поставки счастья в команду QA
 
Drupal в облаке - Владимир Юнев
Drupal в облаке - Владимир ЮневDrupal в облаке - Владимир Юнев
Drupal в облаке - Владимир Юнев
 
Разработка сложного мультимедийного приложения на JavaScript+HTML5 и PhoneGap...
Разработка сложного мультимедийного приложения на JavaScript+HTML5 и PhoneGap...Разработка сложного мультимедийного приложения на JavaScript+HTML5 и PhoneGap...
Разработка сложного мультимедийного приложения на JavaScript+HTML5 и PhoneGap...
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
Сборка Front-end’a
Сборка Front-end’aСборка Front-end’a
Сборка Front-end’a
 
Александр Афенов
Александр АфеновАлександр Афенов
Александр Афенов
 
Сборка web проекта с использованием Grunt и Node.js
Сборка web проекта с использованием Grunt и Node.jsСборка web проекта с использованием Grunt и Node.js
Сборка web проекта с использованием Grunt и Node.js
 
OpenStack: от enterprise к сервис-провайдеру / Сергей Пимков (Селектел)
OpenStack: от enterprise к сервис-провайдеру / Сергей Пимков (Селектел)OpenStack: от enterprise к сервис-провайдеру / Сергей Пимков (Селектел)
OpenStack: от enterprise к сервис-провайдеру / Сергей Пимков (Селектел)
 
JS Lab2017_Redux: время двигаться дальше?_Екатерина Лизогубова
JS Lab2017_Redux: время двигаться дальше?_Екатерина ЛизогубоваJS Lab2017_Redux: время двигаться дальше?_Екатерина Лизогубова
JS Lab2017_Redux: время двигаться дальше?_Екатерина Лизогубова
 
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)
 
Специфика рендеринга vue.js-приложений на сервере, Алексей Клюев
Специфика рендеринга vue.js-приложений на сервере, Алексей КлюевСпецифика рендеринга vue.js-приложений на сервере, Алексей Клюев
Специфика рендеринга vue.js-приложений на сервере, Алексей Клюев
 
Gennadiy Dubina - Android: Reverse engineering
Gennadiy Dubina - Android: Reverse engineeringGennadiy Dubina - Android: Reverse engineering
Gennadiy Dubina - Android: Reverse engineering
 
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
 
Работа со статикой в Django
Работа со статикой в DjangoРабота со статикой в Django
Работа со статикой в Django
 
Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014
 
Nazapad 7. Оптимизация скорости загрузки и перелинковки
Nazapad 7. Оптимизация скорости загрузки и перелинковкиNazapad 7. Оптимизация скорости загрузки и перелинковки
Nazapad 7. Оптимизация скорости загрузки и перелинковки
 

Similar to My Open Source (Sept 2017)

Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Ontico
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
Sergey Xek
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
Sergey Xek
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance Conference
EYevseyeva
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
Sergey Xek
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
Sergey Xek
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Badoo Development
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Pavel Tsukanov
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияYandex
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Ontico
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parser
yalegko
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Ontico
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
Yandex
 
Фронтенд разработка без боли
Фронтенд разработка без болиФронтенд разработка без боли
Фронтенд разработка без боли
Anton Piskunov
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TKConf
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012InTRUEdeR
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
SPb Jenkins Meetup #5. Jenkins in da Cloud. ВнутренностиSPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
Oleg Nenashev
 

Similar to My Open Source (Sept 2017) (20)

Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance Conference
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parser
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
 
Gitlab devconf
Gitlab devconfGitlab devconf
Gitlab devconf
 
Фронтенд разработка без боли
Фронтенд разработка без болиФронтенд разработка без боли
Фронтенд разработка без боли
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
SPb Jenkins Meetup #5. Jenkins in da Cloud. ВнутренностиSPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
 

More from Roman Dvornov

Unit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерUnit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьер
Roman Dvornov
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
Roman Dvornov
 
CSS глазами машин
CSS глазами машинCSS глазами машин
CSS глазами машин
Roman Dvornov
 
Rempl – крутая платформа для крутых инструментов
Rempl – крутая платформа для крутых инструментовRempl – крутая платформа для крутых инструментов
Rempl – крутая платформа для крутых инструментов
Roman Dvornov
 
Remote (dev)tools своими руками
Remote (dev)tools своими рукамиRemote (dev)tools своими руками
Remote (dev)tools своими руками
Roman Dvornov
 
Как сделать ваш JavaScript быстрее
Как сделать ваш JavaScript быстрееКак сделать ваш JavaScript быстрее
Как сделать ваш JavaScript быстрее
Roman Dvornov
 
CSS parsing: performance tips & tricks
CSS parsing: performance tips & tricksCSS parsing: performance tips & tricks
CSS parsing: performance tips & tricks
Roman Dvornov
 
Парсим CSS: performance tips & tricks
Парсим CSS: performance tips & tricksПарсим CSS: performance tips & tricks
Парсим CSS: performance tips & tricks
Roman Dvornov
 
Парсим CSS
Парсим CSSПарсим CSS
Парсим CSS
Roman Dvornov
 
CSSO – история ускорения
CSSO – история ускоренияCSSO – история ускорения
CSSO – история ускорения
Roman Dvornov
 
CSSO – compress CSS (english version)
CSSO – compress CSS (english version)CSSO – compress CSS (english version)
CSSO – compress CSS (english version)
Roman Dvornov
 
CSSO — сжимаем CSS (часть 2)
CSSO — сжимаем CSS (часть 2)CSSO — сжимаем CSS (часть 2)
CSSO — сжимаем CSS (часть 2)
Roman Dvornov
 
CSSO — минимизируем CSS
 CSSO — минимизируем CSS CSSO — минимизируем CSS
CSSO — минимизируем CSS
Roman Dvornov
 
Component Inspector
Component InspectorComponent Inspector
Component Inspector
Roman Dvornov
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
Roman Dvornov
 
Жизнь в изоляции
Жизнь в изоляцииЖизнь в изоляции
Жизнь в изоляции
Roman Dvornov
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
Roman Dvornov
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструменты
Roman Dvornov
 
Карточный домик
Карточный домикКарточный домик
Карточный домик
Roman Dvornov
 
Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!
Roman Dvornov
 

More from Roman Dvornov (20)

Unit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерUnit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьер
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
 
CSS глазами машин
CSS глазами машинCSS глазами машин
CSS глазами машин
 
Rempl – крутая платформа для крутых инструментов
Rempl – крутая платформа для крутых инструментовRempl – крутая платформа для крутых инструментов
Rempl – крутая платформа для крутых инструментов
 
Remote (dev)tools своими руками
Remote (dev)tools своими рукамиRemote (dev)tools своими руками
Remote (dev)tools своими руками
 
Как сделать ваш JavaScript быстрее
Как сделать ваш JavaScript быстрееКак сделать ваш JavaScript быстрее
Как сделать ваш JavaScript быстрее
 
CSS parsing: performance tips & tricks
CSS parsing: performance tips & tricksCSS parsing: performance tips & tricks
CSS parsing: performance tips & tricks
 
Парсим CSS: performance tips & tricks
Парсим CSS: performance tips & tricksПарсим CSS: performance tips & tricks
Парсим CSS: performance tips & tricks
 
Парсим CSS
Парсим CSSПарсим CSS
Парсим CSS
 
CSSO – история ускорения
CSSO – история ускоренияCSSO – история ускорения
CSSO – история ускорения
 
CSSO – compress CSS (english version)
CSSO – compress CSS (english version)CSSO – compress CSS (english version)
CSSO – compress CSS (english version)
 
CSSO — сжимаем CSS (часть 2)
CSSO — сжимаем CSS (часть 2)CSSO — сжимаем CSS (часть 2)
CSSO — сжимаем CSS (часть 2)
 
CSSO — минимизируем CSS
 CSSO — минимизируем CSS CSSO — минимизируем CSS
CSSO — минимизируем CSS
 
Component Inspector
Component InspectorComponent Inspector
Component Inspector
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
Жизнь в изоляции
Жизнь в изоляцииЖизнь в изоляции
Жизнь в изоляции
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструменты
 
Карточный домик
Карточный домикКарточный домик
Карточный домик
 
Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!
 

My Open Source (Sept 2017)

  • 3. • JavaScript фреймворк для создания SPA • github.com/basisjs/basisjs • Разрабатывается с 2006 года, на GitHub с 2011 года • Вся необходимая инфраструктура (dev-сервер, сборка, линтеры etc) Basis.js
  • 4.
  • 5. • Документация • Basis.js – «под капотом» • Basis.js – почему я не бросил разрабатывать свой фреймворк
 Слайды Видео • Доклад: Инструменты разные нужны, инструменты разные важны
 Слайды Видео • Доклад: Basis.js - Production Ready SPA Framework
 Слайды Видео • Доклад: МРТ для данных
 Слайды Видео Материалы
  • 6. Insight #1 Большие проекты очень сложно продвигать
  • 8. • Минификатор CSS • github.com/css/csso • Начал разрабатываться в 2011 году, с 2013 заморозился • В октябре 2015 я стал контрибьютером, вернул к жизни, сделал лучше CSSO
  • 9.
  • 11. ВремясжатияCSS(600Kb) 500 ms 1 000 ms 1 500 ms 2 000 ms 2 500 ms 3 000 ms 3 500 ms 4 000 ms 4 500 ms 5 000 ms 5 500 ms 6 000 ms Версия CSSO 1.4.0 1.5.0 1.6.0 1.7.0 1.8.0 2.0 1 050 ms clean-css CSSO стал одним из самых быстрых csso 500 ms cssnano 23 250 ms
  • 12. • CSSO — СЖИМАЕМ CSS
 Слайды Видео • CSSO — история ускорения
 Слайды Видео Материалы
  • 13. Insight #2 Заброшенный проект можно подхватить и сделать из него конфетку Еще показательный пример с TJ Holowaychuk
  • 15. • Инструменты для работы с CSS: парсинг, обход, генерация, валидация • github.com/csstree/csstree • Проект начался в результате рефакторинга парсера CSSO, в сентябре 2016 • Все еще в разработке, но все активнее используется в других проектах • Быстрый детальный парсинг близко к спекам и поддержке браузерами CSSTree
  • 19. Кое что еще • csstree-validator – npm пакет + консольная команда • stylelint-csstree-validator – плагин для stylelint • gulp-csstree – плагин для gulp • SublimeLinter-contrib-csstree – плагин для Sublime Text • vscode-csstree – плагин для VS Code
 
 … 19
  • 20. • Парсим CSS
 Слайды Видео • Парсим CSS: performance tips & tricks
 Слайды Видео Материалы
  • 21. Insight #3 Нормально делай – нормально будет
  • 22. Самое крутое – делать 
 веб-разработку лучше
  • 23.
  • 24. mdn/data general data for Web technologies CSSTree задрайвил появление mdn/data и помог исправить множество ошибок
  • 25.
  • 26. CSS свойств •mdn/data – 367 •Alexa Top 250 – 483 •Известных свойств – 1150 Что нужно сделать: • найти неописанное свойство • нагуглить описание • сделать PR с описанием в JSON Отлично для Hacktoberfest!
  • 27. Подобные проекты • mdn/data
 This repository contains general data for Web technologies • browser-compat-data
 This repository contains compatibility data for Web technologies • caniuse
 Raw browser/feature support data from caniuse.com
  • 30. • Инструмент для инспектирования интерфейсов (компонент) • github.com/lahmatiy/component-inspector • Проект вышел из basis.js + результат эксперимента • Фасад для нового UX в разработке веб-интерфейсов Component Inspector
  • 31.
  • 32.
  • 33. Побочные проекты • babel-plugin-source-wrapper 
 Плагин для babel для мета информации о локации создания объектов и функций • open-in-editor (express-open-in-editor)
 Node.js пакет для программного открытия файлов в редакторе • source-fragment (express-source-fragment)
 Извлечение фрагмента кода из файла + раскраска кода
  • 34. • Инструментируй это
 Слайды Видео • Component Inspector – инструмент для инспектирования компонент
 Слайды Материалы
  • 35. Insight #5 Пока не попробуешь, не узнаешь что из этого выйдет – не бойтесь экспериментировать