Видеозапись:
http://getdev.net/Event/dependency-injection
Рассказ о внедрении зависимостей (Dependency Injection), зачем оно нужно, откуда оно пошло и развивалось. Виды Dependency Injection, разница между ними и рекомендации к применению. Расказ про декораторы (decorators). Рассказ про абстрактные фабрики. Рассказ про управление временем жизни. Рассказ про IoC -контейнеры вообще и Castle Windsor в частности.
Introduction
What are design patterns?
List of design patterns in Drupal 8 core
Patterns explanation in simple words
Usage examples from Drupal 8 core
https://drupalcampkyiv.org/node/59
Нагрузочное тестирование с помощью locust.ioGrigory Petrov
На примере дейтинга Алексей Стрелков
(GetPure, inc) рассказывает на чем не только модно, но и удобно тестировать высоконагруженные проекты с нетривиальными сценариями взаимодействия с пользователями. И все это не отрываясь от любимого питона.
Теория языков программирования некоторые слайды к лекциямSergey Staroletov
Теория языков программирования (немного об интерпретаторах, триадах, оптимизации, парсерах и прочее)
Compilers construction some lectures of whole course, it covers some methods on interpreters, optimisations, antlr, dsl (introduction)
анализ кода: от проверки стиля до автоматического тестированияRuslan Shevchenko
Рассказ о истории и использовании в реальной жизни инструментов анализа кода на основе JavaChecker и TermWare
Сопустствующий текст: http://datacenter.gradsoft.ua/files/articles/OSDN2011/
Что такое REPL, как он устроен и какие крутые возможности в нём заложены. Поговорим о выполнении кода в REPL и о том как работает автокомплит в динамических языках. Ответим на вопрос что такое vm.runInContext, перехватим парочку промисов, сделаем вывод результатов действительно приятным и даже узнаем как подгрузить нужные модули и не подать виду. В заключение рассмотрим потрясающие возможности, которые даёт нам инфраструктура npm и как это всё можно использовать в работе.
Доклад ориентирован на тех, кому небезынтересен мир Node.js, но будет доступен также и более широкому кругу JS-разработчиков. Надеюсь, для кого-нибудь этот доклад станет очередной ступенькой в изучении любимого языка.
Ігор Карпиленко — PHPStorm for drupal developerLEDC 2016
Розгляд та аналіз інфструментів PHPStorm для drupal розробника: QA tools, Xdebug, Issue Tracking System, Drush, інструменти для роботи з Vagrant, Docker і базами даних. Корисні плагіни.
Видеозапись:
http://getdev.net/Event/dependency-injection
Рассказ о внедрении зависимостей (Dependency Injection), зачем оно нужно, откуда оно пошло и развивалось. Виды Dependency Injection, разница между ними и рекомендации к применению. Расказ про декораторы (decorators). Рассказ про абстрактные фабрики. Рассказ про управление временем жизни. Рассказ про IoC -контейнеры вообще и Castle Windsor в частности.
Introduction
What are design patterns?
List of design patterns in Drupal 8 core
Patterns explanation in simple words
Usage examples from Drupal 8 core
https://drupalcampkyiv.org/node/59
Нагрузочное тестирование с помощью locust.ioGrigory Petrov
На примере дейтинга Алексей Стрелков
(GetPure, inc) рассказывает на чем не только модно, но и удобно тестировать высоконагруженные проекты с нетривиальными сценариями взаимодействия с пользователями. И все это не отрываясь от любимого питона.
Теория языков программирования некоторые слайды к лекциямSergey Staroletov
Теория языков программирования (немного об интерпретаторах, триадах, оптимизации, парсерах и прочее)
Compilers construction some lectures of whole course, it covers some methods on interpreters, optimisations, antlr, dsl (introduction)
анализ кода: от проверки стиля до автоматического тестированияRuslan Shevchenko
Рассказ о истории и использовании в реальной жизни инструментов анализа кода на основе JavaChecker и TermWare
Сопустствующий текст: http://datacenter.gradsoft.ua/files/articles/OSDN2011/
Что такое REPL, как он устроен и какие крутые возможности в нём заложены. Поговорим о выполнении кода в REPL и о том как работает автокомплит в динамических языках. Ответим на вопрос что такое vm.runInContext, перехватим парочку промисов, сделаем вывод результатов действительно приятным и даже узнаем как подгрузить нужные модули и не подать виду. В заключение рассмотрим потрясающие возможности, которые даёт нам инфраструктура npm и как это всё можно использовать в работе.
Доклад ориентирован на тех, кому небезынтересен мир Node.js, но будет доступен также и более широкому кругу JS-разработчиков. Надеюсь, для кого-нибудь этот доклад станет очередной ступенькой в изучении любимого языка.
Ігор Карпиленко — PHPStorm for drupal developerLEDC 2016
Розгляд та аналіз інфструментів PHPStorm для drupal розробника: QA tools, Xdebug, Issue Tracking System, Drush, інструменти для роботи з Vagrant, Docker і базами даних. Корисні плагіни.
2. Кто нибудь использовал SPL*
без головной боли?
[* The Standard PHP Library (SPL) is a collection of interfaces
and classes that are meant to solve common problems]
6. Листинг кода: два события [legacy code]
Минусы:
Тестируемость
Сопровождение
Повторное
использование
7. Не хочу видеть как
работает программа,
хочу понять что она
делает!
8. Заказчик: «А давайте добавим синхронизацию
значений цены, наличия товара на складе между
товаром из списка желаний и товаром из каталога
в процессе работы скрипта?»
9. «и еще ограничим количество найденных товаров
до 20 штук (n) за одно событие. В каждом новом
письме покажем следующие 20 - n товаров и т.д.»
21. Единственная
нормальная
книга по SPL
Платная 19$
Издана в июле 2013
PHP 5.4
Обращает внимание на
производительности кода
Понятные примеры
https://www.phparch.com/books/mastering-the-spl-library/
32. Интерфейс Traversable
Traversable не может быть реализован*
Traversable может быть определен
(instanceof)
foreach() автоматически обнаруживает
traversable и делает магию
34. Проблема с FilterIterator
FilterIterator обращается к
current() элементу внешнего
итератора, чтоб выяснить
подходит ли он под фильтр
или нет. Это может быть
проблемой при изменении
состояния внешнего
итератора при вызове
current()
35. ArrayIterator
ArrayIterator самый популярный.
Данные хранятся только во внутреннем массиве в
противовес загрузке из внешнего источника
Не обходит массив рекурсивно. Нужен
RecursiveArrayIterator
Реализовано стандартное поведение count() и []
Предоставляет набор алгоритмов сортировки (uasort(),
natcasesort(), asort())
37. CachingIterator
Читает следующее значение «в память» до того, как оно
понадобится для доступа
Кэширует все значения, которые возвращает
Хитрая система приведения объекта в строчку
CachingIterator странный итератор. Включает в
себя 3 вида функциональности: