Мой доклад о создании yeoman генератора своими руками на митапе 4front. Рассказ о том, как yeoman.io упрощает жизнь, спасает от рутины и экономит время.
Обзор технологии и типичных граблей.
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013Moscow.pm
- Как создать презентацию не вылезая из любимого текстового редактора (notepad++, padre, vim).
- Как perl помогает автоматизировать работу без написания кода.
- Пара скриптов, которые облегчают работу на разных платформах.
- Те же скрипты на perl6.
- Автоматизация и тестирование Firefox.
Perl для не программистов. Николай Мишин. Moscow.pm 4 июля 2013Moscow.pm
- Как создать презентацию не вылезая из любимого текстового редактора (notepad++, padre, vim).
- Как perl помогает автоматизировать работу без написания кода.
- Пара скриптов, которые облегчают работу на разных платформах.
- Те же скрипты на perl6.
- Автоматизация и тестирование Firefox.
PHP Meetup
Михайло Бондарчук
— Автор популярного фреймворку для PHP тестування - Codeception
— Веб-розробник PHP/Ruby/JS
— Спікер PHPKonf Стамбул (2015), RSConf Мінськ (2016), J&Beyond Барселони (2016), Голландська PHP Конференція 2016
Презентація про:
— реалізация плюмбусів на PHP
— як писати додатки в складній доменній області
— що таке BDD та як він пов'язаний із тестуванням
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"Fwdays
Как искать и выбирать оптимальные решения? Для одной задачи подойдет React, для другой - Zepto. Сегодня вы пишите для браузера, завтра думаете, как использовать native-ресурсы iOS.
Не все технологии, которые удобны разработчику, могут дать удобство конечному пользователю.
Я расскажу о балансе, который позволяет бизнесу получать результат, а разработчику - решение.
Project migration while changing publisher: saving time and dataDevGAMM Conference
Pavel Savchenko, Team Lead, Mail.ru Group
Paul will talk about the infrastructure and data, moving from the previous publisher. Then about the decisions on migration and adaptation.
Also, he will consider the problems that the studio faced at the same time. Summarizes the current state of the project. #MailRuPractice
bem.info — движок и сайт — Андрей Кузнецов, ЯндексYandex
Под эгидой БЭМ за последние годы было создано много проектов, многие из которых продолжают развиваться и по сей день. Появляются новые проекты как от разработчиков внутри Яндекса, так и членов постоянно растущего БЭМ-сообщества.
Как представить весь объём необходимой информации в рамках одного сайта? Что делать, когда не подходят gh-pages и стандартные CMS? Я расскажу о bem-site-engine — платформе для публикации проектов на БЭМ и не только, об истории разработки сайта bem.info и планах по его развитию.
Асинхронная модульность в API Яндекс.Карт — Александр ЗинчукYandex
Я расскажу о том, как мы выбирали модульную систему для API и почему возникла такая необходимость, а также о способах эффективно подгружать и инициализировать модули по запросу. Ещё мы обсудим, что такое предиктор и как использовать все эти наработки при написании плагинов к API Карт и в собственных проектах.
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...Ontico
На сегодняшний день frontend-технологии - одна из наиболее динамично развивающихся отраслей информационных технологий. Появилось множество реализаций известных шаблонов проектирования, написаны тысячи строк Javascript-кода и потрачены сотни часов на stackoverflow для понимания работы этого самого кода. Несмотря на различные подходы, все эти инструменты служат нескольким важным принципам: снижению сложности, улучшению модульности и архитектуры в целом.
HTML5 Web Components стандартизируют эти идеи, прошедшие через огонь, воду и тяжелые Javascript-фреймворки. Мы поделимся опытом внедрения Web Components в проект с объемной single-page логикой, расскажем, как удобнее работать с веб-компонентами, принимая во внимание текущее состояние реализации, а также дадим советы, где постелить соломы при вашем собственном старте работы с веб-компонентами.
Основные моменты доклада:
— Для каких проектов Web Components будут полезны в первую очередь;
— Действительно ли Web Components настолько удобны? Примеры “до” и “после”;
— Текущие проблемы реализации в браузерах и их решение;
— Как быть с текущими фреймворками и шаблонизаторами: что можно подружить, а от чего проще отказаться;
— Как начать интегрировать Web Components в текущее решение и на какие стороны вашего проекта обратить особое внимание.
Чем можно обмениваться данными: XMLHttpRequest, fetch(), Server-Sent Events, WebSocket, WebRTC. В чем отличия. Какие недостатки. Примеры задач, под которые они заточены.
PHP Meetup
Михайло Бондарчук
— Автор популярного фреймворку для PHP тестування - Codeception
— Веб-розробник PHP/Ruby/JS
— Спікер PHPKonf Стамбул (2015), RSConf Мінськ (2016), J&Beyond Барселони (2016), Голландська PHP Конференція 2016
Презентація про:
— реалізация плюмбусів на PHP
— як писати додатки в складній доменній області
— що таке BDD та як він пов'язаний із тестуванням
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"Fwdays
Как искать и выбирать оптимальные решения? Для одной задачи подойдет React, для другой - Zepto. Сегодня вы пишите для браузера, завтра думаете, как использовать native-ресурсы iOS.
Не все технологии, которые удобны разработчику, могут дать удобство конечному пользователю.
Я расскажу о балансе, который позволяет бизнесу получать результат, а разработчику - решение.
Project migration while changing publisher: saving time and dataDevGAMM Conference
Pavel Savchenko, Team Lead, Mail.ru Group
Paul will talk about the infrastructure and data, moving from the previous publisher. Then about the decisions on migration and adaptation.
Also, he will consider the problems that the studio faced at the same time. Summarizes the current state of the project. #MailRuPractice
bem.info — движок и сайт — Андрей Кузнецов, ЯндексYandex
Под эгидой БЭМ за последние годы было создано много проектов, многие из которых продолжают развиваться и по сей день. Появляются новые проекты как от разработчиков внутри Яндекса, так и членов постоянно растущего БЭМ-сообщества.
Как представить весь объём необходимой информации в рамках одного сайта? Что делать, когда не подходят gh-pages и стандартные CMS? Я расскажу о bem-site-engine — платформе для публикации проектов на БЭМ и не только, об истории разработки сайта bem.info и планах по его развитию.
Асинхронная модульность в API Яндекс.Карт — Александр ЗинчукYandex
Я расскажу о том, как мы выбирали модульную систему для API и почему возникла такая необходимость, а также о способах эффективно подгружать и инициализировать модули по запросу. Ещё мы обсудим, что такое предиктор и как использовать все эти наработки при написании плагинов к API Карт и в собственных проектах.
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...Ontico
На сегодняшний день frontend-технологии - одна из наиболее динамично развивающихся отраслей информационных технологий. Появилось множество реализаций известных шаблонов проектирования, написаны тысячи строк Javascript-кода и потрачены сотни часов на stackoverflow для понимания работы этого самого кода. Несмотря на различные подходы, все эти инструменты служат нескольким важным принципам: снижению сложности, улучшению модульности и архитектуры в целом.
HTML5 Web Components стандартизируют эти идеи, прошедшие через огонь, воду и тяжелые Javascript-фреймворки. Мы поделимся опытом внедрения Web Components в проект с объемной single-page логикой, расскажем, как удобнее работать с веб-компонентами, принимая во внимание текущее состояние реализации, а также дадим советы, где постелить соломы при вашем собственном старте работы с веб-компонентами.
Основные моменты доклада:
— Для каких проектов Web Components будут полезны в первую очередь;
— Действительно ли Web Components настолько удобны? Примеры “до” и “после”;
— Текущие проблемы реализации в браузерах и их решение;
— Как быть с текущими фреймворками и шаблонизаторами: что можно подружить, а от чего проще отказаться;
— Как начать интегрировать Web Components в текущее решение и на какие стороны вашего проекта обратить особое внимание.
Чем можно обмениваться данными: XMLHttpRequest, fetch(), Server-Sent Events, WebSocket, WebRTC. В чем отличия. Какие недостатки. Примеры задач, под которые они заточены.
Зачем нужен и что такое докер. Чем он отличается от виртуальных машин. Как создать, сохранить и запустить свой докер-контейнер.
Обновленная презентация с шестого 4front митапа в Минске.
«Как перестать отлаживать асинхронные вызовы и начать жить»FDConf
Асинхронность в Javascript больше не страшна. Классические триллеры вроде
«Callback Hell» и «Pyramid of Doom» потеряли свою актуальность настолько,что даже Java-программисты перестали пугать ими невинных джуниоров.
Всё благодаря паттернам и библиотекам. Streams, Promises, Async-Await и другие изменили наш код. Теперь он прекрасен.
Пока ещё вымысел? Поговорим о том, как сделать эту картину реальностью. Об основных практиках асинхронного программирования.
Принципах их работы,отличиях и сценариях использования.
Приёмы функционального программирования в обычном JavaScriptPavel Klimiankou
Что можно привнести в объектно-ориентированный JavaScript из функционального программирования, не переходя в секту свидетелей монад. В программе:
1. Immutability
2. Просто функции
3. Непросто функции
4. Комбинация ООП/ФП
5. Функторы
6. Ок, монады
Сейчас в мире веба каждый день появляются все новые и новые технологии, и наши проекты наполняются кучей новых библиотек, переписываются раз в 6 недель, становятся толстыми и неповоротливыми, и успеть выучить все практически нереально. А действительно ли это нужно?
Баба-Яга против! — Роман Дворнов, Ostrovok.ruYandex
В последнее время во фронтенде появляется столько нового и внедряется настолько быстро, что не все успевают осознать последствия. Хорошо это или плохо? Рассмотрим некоторые новинки с точки зрения «за», а главное – «против».
Оптимизация производительности фронтенда / Игорь Алексеенко (HTML Academy)Ontico
РИТ++ 2017, Frontend Сonf
Зал Дели + Калькутта, 6 июня, 14:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2524.html
В этом докладе я покажу на примерах, в каких случаях нужно делать ставку на кэширование, а в каких можно довериться процессору, и как это может помочь оптимизировать производительность сложного фронтенд-приложения.
В последнее время во фронтенде появляется столько нового и внедряется настолько быстро, что не все успевают осознать последствия. Хорошо это или плохо? Рассмотрим некоторые новинки с точки зрения «за», а главное – «против».
Конференция FrontTalks, Екатеринбург, 19 сентября
Видео: https://vimeo.com/107694664
В лекции мы попробуем взглянуть на страницу глазами пользователей и понять, что можно сделать для ускорения ее загрузки. Рассмотрим основные оптимизации на стороне браузера, познакомимся с инструментами для измерения времени отображения.
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Yandex
Рассказ о том, что представляет собой наш «станок» верстальщика сегодня. Рассказывается с примерами, какие браузеры поддерживаем, как производим кроссбраузерное тестирование и какие инструменты используем, готовя проект к выходу в свет.
How to build solid CI-CD pipeline / Илья Беда (beda.software)Ontico
РИТ++ 2017, Root Conf
Зал Конгресс-холл, 6 июня, 15:00
Тезисы:
http://rootconf.ru/2017/abstracts/2551.html
На основе своего опыта работы в консалтинге я расскажу, как избавить разработчиков от рутинных задач и как сэкономить на ресурсах команды с помощью правильно настроенного CI-CD pipeline.
Единствено верный способ упаковки приложений - это Docker-контейнеры, благодаря этому способу вы сможете унифицировать процесс деплоя. Нужно деплоить приложения с помощью Ansible-плейбука, запакованного в Docker-контейнер, это снижает требования к окружению CI-ранера. Вам нужен только Docker.
...
Разработка на блокчейн Голос | Ерлан ШиндаулетовCyber Fund
Данная презентация была представлена на одном из еженедельных образовательных митапов от компании cyber•Fund.
Посмотреть полное видео с митапа можно здесь:
https://www.youtube.com/watch?v=ZkF59_XwraI
Прочитать текстовую версию выступления:
https://golos.io/@cyberevents
Дополнительная информация о компании cyber•Fund
Мы инвестируем и развиваем блокчейн проекты, способные кардинально менять наш мир в лучшую сторону, создавая экономику роботов и самовыражения людей. Больше о нашей работе вы можете узнать из следующих ресурсов:
Наши проекты:
сyber•Fund - аналитика и разработка блокчейн систем
Golos.io - медийная блокчейн платформа
Satoshi•Fund - первый фонд инвестирующий в криптоактивы
Cyberstudio.io - помощь в проведении ICO
Мы ждем вас в наших сообществах:
Блог:
https://blog.cyber.fund/
Email Newsletter:
http://company.cyber.fund/#newsletter
Социальные сети:
https://golos.io/@cyberfund
https://steemit.com/@cyberfund
https://twitter.com/cyberfundio
https://www.reddit.com/r/cyber_Fund/
https://www.facebook.com/cyberfund - официальная страница сyber•Fund
https://www.facebook.com/blockchainmeetups/ - официальная страница cyber•Events (Блокчейн митапы, конференции, доклады)
https://www.slideshare.net/CyberFund-Official
Для разработчиков:
https://t.me/CyberFundDev - telegram чат для блокчейн разработчиков
https://github.com/cyberFund - наш репозиторий на Github с open source software
https://github.com/cyberFund/Library - библиотека знаний по блокчейн
D2D Pizza JS Илья Беда "Куда мы все катимся?"Dev2Dev
Окружение JavaScript, наверно, самая быстроразвивающаяся отрасль в мире разработки программного обеспечения. Все слышали шутку про книгу “36 новых JavaScript фреймворков, выпущенных в марте”, и это не далеко от правды.
В своем обзорном докладе я расскажу о своем пути во frontend. О том, как вижу современную индустрию, о существующих проблемах и путях их решения. Все не так уж радужно, как может показаться. Надеюсь, мой доклад позволит вам взглянуть на мир JavaScript с другой стороны или, по крайней мере, задуматься о том, в правильном ли направлении вы движетесь?
Доклад с конференции D2D Pizza JS - http://dev2dev.ru/events/8/
Speech about BEM and our fails at FailOver conference, 2015
by Kirill Lapenin, Alexej Yaroshevich
Materials and links: https://www.channelkit.com/yaroshevich/bem-for-corporate/
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"Yandex
Платформа Node.js становится все более популярной. Для нее уже создано много библиотек и инструментов. Рассказ о том, какие из них и для чего мы используем.
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extensionchaykaborya
Доклад с 4front meetup #8.
Видео здесь: https://youtu.be/-i9nNmCCFpA
В докладе речь идет о том как портировать Chrome Extension в Firefox Extension или сразу написать кросс-браузерное расширение с нуля.
Orange is the new blue: How to port Chrome Extension to Firefox Extensionchaykaborya
These are slides from 4front meetup #8.
Video (rus): https://youtu.be/-i9nNmCCFpA
This presentation is the roadmap how to port Chrome Extension to Firefox Extension or ho to build cross-browser extension from scratch.
1. Yeoman Generator своими руками
• Yeoman-генератор: что же это
такое?
• Зачем нужны yeoman-генераторы и
не лучше ли по старинке?
• Как написать свой генератор, с чего
начать, экскурс по граблям
• Демо моего лунапарка.
3. Борис Мосунов
Фрилансер,
Веб-разработчик.
Чаще всего разрабатываю
кастомные сайты на WordPress.
Разработал свой фреймворк,
позволяющий писать темы и
плагины для WordPress в парадигме
MVC/OOP
А что бы делать это было проще я
разработал свой yeoman generator
8. Какие решения мы принимаем?
Гениальный код
для решения
нетривиальной
задачи
9. Какие решения мы принимаем?
Гениальный код
для решения
нетривиальной
задачи
Я уже делал такое,
ща поищем,
ctrl+c, ctrl+v,
осталось кое-что
переименовать
13. Как в реальности?
Гениальный код
для решения
нетривиальной
задачи
Я уже делал такое,
ща поищем,
ctrl+c, ctrl+v,
осталось кое-что
переименовать
Хорошо если хотя бы так
30. A yeoman was a social
class in late medieval to
early modern England. In
early recorded uses, a
yeoman was an attendant
in a noble household.
Wikipedia
33. yeoman - утилита для генерации пустого проекта
по заданному сценарию
yeoman generator - программная реализация
такого сценария генерации пустого проекта
Запуск: yo <generator>
yo - сокращение от yeoman,
название исполняемого файла
yeoman subgenerator - вспомогательный сценарий
по генерации модулей, блоков, моделей и т.д.
Запуск: yo <generator>:<subgenerator> <name>
49. npm install -g generator-generator
yo generator
yo generator:subgenerator <name>
npm link
yo my-generator
npm -g unlink generator-my-generator
Демо: YO-генератор с нуля
50. Структура папок
генератор = сценарий + шаблоны кода и конфигов
директория генератора
шаблоны кода и конфигов
сценарий генератора
59. mem-fs - файловая система «in memory»
во время работы сценария, все изменения
файловой системы пишутся в память.
по окончании работы сценария
идет сравнение файлов на диске и в памяти
и срабатывает механизм разрешения конфликтов
файловая система у YO - синхронная
Работает с двумя папками:
generator.templatePath()
generator.destinationPath()
68. Грабли
mem-fs:
На данный момент yeoman использует
параллельно два api:
• новое (this.fs.)
• и legacy (this.).
Это порождает путаницу.
Лучше сделать обертку, как я :)
69. Грабли
Каждой отдельной фиче - свой сабгенератор,
иначе конструкции inquirer.js начинают
напоминать многотомные текстовые квесты.
Как у меня :(
70. Выводы
1. Готовыми генераторами стоит пользоваться, это экономит
время, силы и нервы.
2. Изучение новых фреймворков стоит начинать с поиска
генераторов
3. Написание своего генератора отнимает много сил и времени -
программирование в квадрате. Поэтому писать его стоит только
если вы точно знаете что впереди у вас очень много
повторяющейся работы.
4. Если вы написали свой фреймворк, продвинуть его получится
значительно быстрее, если сделать для него yeoman-generator
5. Наличие генератора помогает поддерживать единообразие кода
и следование стайлгайдам.
71. Задавайте свои вопросы!
Борис Мосунов
borix@tut.by
skype: boris.mossounov
fb: mossounov
tw: @chaykaborya
anotherguru.me
Мой сайт,
сделанный на моем фреймворке
с помощью моего yeoman генератора