«JSSDK: Начало» Когда использовать готовые решения, а когда писать самим. Какие шаги нужно сделать, чтобы ваша работа не оказалась напрасной и принесла пользу окружающим. Все эти нюансы будут рассмотрены на примере внутреннего фреймворка, который возник вследствие необходимости объединения кодовой базы двух проектов.
Подводные камни, костыли и полученный опыт.
В первую очередь, рассказ ориентирован на тех, кто хочет заменить сборку Грантом или Гальпом на вебпак. Я рассмотрю тонкости настройки и необычные проблемы, с которыми мы столкнулись, ибо стандартные ситуации хорошо описаны на просторах интернета.
«JSSDK: Начало» Когда использовать готовые решения, а когда писать самим. Какие шаги нужно сделать, чтобы ваша работа не оказалась напрасной и принесла пользу окружающим. Все эти нюансы будут рассмотрены на примере внутреннего фреймворка, который возник вследствие необходимости объединения кодовой базы двух проектов.
Подводные камни, костыли и полученный опыт.
В первую очередь, рассказ ориентирован на тех, кто хочет заменить сборку Грантом или Гальпом на вебпак. Я рассмотрю тонкости настройки и необычные проблемы, с которыми мы столкнулись, ибо стандартные ситуации хорошо описаны на просторах интернета.
Непрерывная интеграция Python-проектов в ЯндексеAndrey Kazarinov
Рутинные операции тестирования, сборки и развёртывания заставляют в нервном ожидании толстеть на кофепоинте, а частый релизный цикл создаёт лёгкое головокружение? Чтобы помочь вам сохранить тело подтянутым, а голову светлой, я расскажу об организации и особенностях непрерывной интеграции в Python-проектах на примере популярных инструментов.
Linux Control Groups (Контрольные группы) -- механизм, позволяющий управлять группами процессов в Linux и их ресурсами. Это мощный инструмент о котором знают далеко не все. Презентация дает краткий обзор.
Работаем с API по-взрослому - Максим Кислов (Badoo)AvitoTech
Я расскажу о том, как мы разрабатываем фронтенд и бэкенд параллельно, используя protobuf + JSON RPC.
Часто фронтенд выставляет требования к бэкенду, из этих требований получается API, и разработка возможна только при одновременной работе серверного и клиентского девелопера.
Мы же начинаем разработку с API, и фронтенд (а также мобильные приложения) никак не зависят от степени готовности бэкенда.
– Я поделюсь тем, как мы делаем API до начала разработки;
– Success story использования protobuf + RPC;
– И немного – о разработке клиента вообще без серверного кода.
Enterprise-инфраструктура менеджмента php-пакетов в рамках компанииEvgeny Fomin
Symfoniacs #8 ( 02.06.2016 ) - Алексей Медведев
В своем докладе расскажу, как мы в Альпари разворачивали локальную систему менеджмента пакетов на базе Composer, Packagist и git-фронтенда Gitweb; а также
как работаем с приватными пакетами и почему при сборке наших приложений зависимости никогда не выкачиваются напрямую с github.
Кроме того будет несколько слов о том, что находится под капотом у Packagist, когда, как и зачем его разворачивать у себя в компании, какую магию с ним можно творить,
какие вообще есть альтернативные Composer-репозитории пакетов и в каких случаях их удобно использовать.
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...Igor Sazonov
Доклад написан для WordPress Meetup #2 в Санкт-Петербурге. В докладе сравниваются файловые и логические архитектуры трех крупных плагинов на WordPress: WooCommerce, Easy Digital Downloads и Yoast WordPress SEO. Сравнив 3 архитектуры я взял наиболее оптимальные структуры и создал свою, при этом разместив ссылку на скачивание данного плагина. Скачав этот плагин Вы сможете понять его архитектуру. Много вещей конечно же можно улучшить, но самое главное посыл.
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Я.Субботник в Челябинске в рамках конференции UWDC
О докладе:
О чем нужно подумать во время проектирования архитектуры. Какую архитектуру нужно заложить, чтобы приложение могло безболезненно развиваться.
Непрерывная интеграция Python-проектов в ЯндексеAndrey Kazarinov
Рутинные операции тестирования, сборки и развёртывания заставляют в нервном ожидании толстеть на кофепоинте, а частый релизный цикл создаёт лёгкое головокружение? Чтобы помочь вам сохранить тело подтянутым, а голову светлой, я расскажу об организации и особенностях непрерывной интеграции в Python-проектах на примере популярных инструментов.
Linux Control Groups (Контрольные группы) -- механизм, позволяющий управлять группами процессов в Linux и их ресурсами. Это мощный инструмент о котором знают далеко не все. Презентация дает краткий обзор.
Работаем с API по-взрослому - Максим Кислов (Badoo)AvitoTech
Я расскажу о том, как мы разрабатываем фронтенд и бэкенд параллельно, используя protobuf + JSON RPC.
Часто фронтенд выставляет требования к бэкенду, из этих требований получается API, и разработка возможна только при одновременной работе серверного и клиентского девелопера.
Мы же начинаем разработку с API, и фронтенд (а также мобильные приложения) никак не зависят от степени готовности бэкенда.
– Я поделюсь тем, как мы делаем API до начала разработки;
– Success story использования protobuf + RPC;
– И немного – о разработке клиента вообще без серверного кода.
Enterprise-инфраструктура менеджмента php-пакетов в рамках компанииEvgeny Fomin
Symfoniacs #8 ( 02.06.2016 ) - Алексей Медведев
В своем докладе расскажу, как мы в Альпари разворачивали локальную систему менеджмента пакетов на базе Composer, Packagist и git-фронтенда Gitweb; а также
как работаем с приватными пакетами и почему при сборке наших приложений зависимости никогда не выкачиваются напрямую с github.
Кроме того будет несколько слов о том, что находится под капотом у Packagist, когда, как и зачем его разворачивать у себя в компании, какую магию с ним можно творить,
какие вообще есть альтернативные Composer-репозитории пакетов и в каких случаях их удобно использовать.
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...Igor Sazonov
Доклад написан для WordPress Meetup #2 в Санкт-Петербурге. В докладе сравниваются файловые и логические архитектуры трех крупных плагинов на WordPress: WooCommerce, Easy Digital Downloads и Yoast WordPress SEO. Сравнив 3 архитектуры я взял наиболее оптимальные структуры и создал свою, при этом разместив ссылку на скачивание данного плагина. Скачав этот плагин Вы сможете понять его архитектуру. Много вещей конечно же можно улучшить, но самое главное посыл.
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Я.Субботник в Челябинске в рамках конференции UWDC
О докладе:
О чем нужно подумать во время проектирования архитектуры. Какую архитектуру нужно заложить, чтобы приложение могло безболезненно развиваться.
В последнее время тема пиринговых технологий становится очень популярной. Уже не первый день работают такие проекты как криптовалюта Bitcoin, микроблоги Twister и мессенджер Tox. Теперь дошло дело и до децентрализованного веба.
Доклад посвящен новому open-source проекту — base.network — распределенному независимому пиринговому вебу. Расскажу про общую схему работы сети, немного о работе с криптографией на JavaScript, о создании приложений на JavaScript без использования центральных серверов.
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр Егурцов
Презентация к вебинару об устройстве фреймворка symfony 2.
Видеозапись вебинара находится в моём блоге по адресу http://frontend-dev.ru/2012/12/12/symfony2-основы
Леонид Васильев "Python в инфраструктуре поиска"Yandex
2 июля 2011, Я.Субботник в Екатеринбурге
Леонид Васильев "Python в инфраструктуре поиска"
О докладе:
Описание архитектуры и реализации внутренних инструментов для управления поисковым кластером.
Что такое инфраструктура поиска? Какие задачи приходится решать? Какие инструменты для управления кластером используются в поиске? Как они устроены изнутри? Что можно посоветовать проектам с большой инфраструктурой? Какие существуют open-source аналоги?
SERP или просто страница результатов поисковой выдачи — это действительно большой проект с огромной аудиторией. Над ним работают около 40 фронтендеров из разных городов. Эта страница показывается больше 200 000 000 раз в день. При таких размерах даже модульная архитектура уже не слишком спасала нас от странных, неочевидных зависимостей, лишних стилей и нескольких разных реализаций почти одинаковых компонентов.
Процесс разработки новой, даже довольно простой на первый взгляд фичи занимал чудовищное количество времени и представлял из себя хаотичное взаимодействие большого количества людей: фронта, бэкенда, дизайнеров и менеджеров.
Стала закрадываться мысль, что пора что-то менять. И мы поменяли.
В докладе я расскажу о том, как мы с помощью проекта на стыке фронтендеров, менеджеров, и дизайнеров, навели во всем этом идеальный порядок. Каким образом поменяли наш код процессы и инструменты, а также что нам это дало, и как будем жить с этим дальше.
Если вам знакомы похожие проблемы, то наш опыт может оказаться вам чертовски полезным.
"В последнее время тема пиринговых технологий становится очень популярной. Уже не первый день работают такие проекты как криптовалюта Bitcoin, микроблоги Twister и мессенджер Tox. Теперь дошло дело и до децентрализованного веба.
Будет рассказано про общую схему работы сети, о работе с криптографией на JavaScript, о создании приложений на JavaScript без использования центральных серверов."
Яндекс.Фотки – современный фотохостинг. В докладе идет речь об общих архитектурных принципах его построения, загрузке и обработке фотографий, механизме распределенного выполнения заданий, API для взаимодействия с внешним миром.
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Yandex
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Я.Субботник в Челябинске в рамках конференции UWDC
О докладе:
Все, что вы хотели узнать про одностраничное ajax-приложение Яндекс.Почта, но боялись спросить. Изнанка фронтенда, загрузка данных, обновление страниц и взаимодействие с пользователями без регистрации, без смс. Бонус-трек: как работают сторонние приложения в рамках одной платформы.
The document discusses MODX's open source contributions including tools like Quickstart Buttons and Scheduler. It launched MODX.today and a Slack channel for MODX. Premium extras include Redactor, a rich text editor, SimpleAB, MoreGallery, and ContentBlocks. ContentBlocks allows for multi-column modular content and full control over output, reducing the need for templates. A new e-commerce solution called Commerce is coming in 2016 along with free development licenses for all extras.
This document discusses MODX, an open source content management system. It announces that MODX 3 will be released in Q1 2016 and MODX Next will be released in Q3 2016. It lists several open job positions and ways for people to get involved with MODX, such as translating addons, helping with design, or becoming a developer.
4. Этапы разработки
• Установка MODX
• Настройка (ЧПУ, имя сайта, почта и тд.)
• Установка дополнений
• Заполнение дерева (структура)
• Наполнение шаблонов и чанков
• Творческий процесс разработчика
4
5. Известные недостатки MODX
• Элементы в БД
• Необходимость работы через админпанель
• Git? Бесполезен
5
11. SE Manager + StaticSaver + git
+ Быстрый экспорт элементов в файлы из админки
+ Автоматическая подстановка имени файла в форму ресурса
+ Контроль версий для статических элементов
- При добавлении файла нельзя автоматически создать элемент
- Нельзя использовать ссылки на ресурсы по id
- Нет сведений о состоянии системы
11
12. ElementHelper + git
+ Умеет TV
+ Умеет отслеживать историю изменений элемента
+ Есть автоудаление элементов
+ Умеет создавать элементы из файлов
- Нельзя использовать ссылки на ресурсы по id
- Нет сведений о состоянии системы
12
13. Cast
CAST - Content Addressable Storage and Transfer, библиотека для MODX, построенная вокруг git.
+ Работает с объектами xPDO
+ Обертки git-команд в самой библиотеке
+ Есть настройка того, что нужно сериализовать
- Не поддерживает команды с взаимодействием с пользователем
- Перед десереализацией удаляет записи из таблиц
13
14. Gitify
Новый инструмент от Марка Хамстры, презентованный на MODX Weekend.
+ Конфигурация в YAML
+ Дополнительные команды для управления сайтом
+ Данные хранятся в виде обычных файлов, конфиги в заголовках
- На сегодня очень мало умеет и еще в разработке
- Не удобно править файлы, не срабатывает подстветка синтаксиса
14
15. Общие проблемы
• Однонаправленность
• Недостаток документации
• Сложность для обычного пользователя
15
17. Teleport
Teleport - это расширяемый набор скриптов для работы с одним
или несколькими локальными экземлярами MODX Revolution.
github.com/modxcms/teleport
Автор: Jason Coward
MODX Cloud
17
18. Установка
1. Создать папку teleport там, где удобно. Обычно в /home/username
2. Скачать в нее teleport.phar
Каталоги
Во время работы teleport создает каталоги:
• profile - в нем будут размещены профили сайтов
• workspace - в нем будут размещены собранные пакеты
18
19. Как работает?
1. Создание профиля
2. Упаковка сайта в пакет
3. Перенос пакета в нужное место
4. Создание профиля целевого сайта
5. Распаковка и установка обновлений
19
29. changeset.json.tpl
Извлекает определенный набор изменений, зафиксированный
обратной функцией, заданной в настройках MODX.
settings.json.tpl
Извлекает все настройки из первого сайта для импорта во второй,
обновляет и дополняет существующие.
29
30. complete.json.tpl
Извлекает все объекты ядра, файлы и пользовательские таблицы
из первого сайта и заменяет все это во втором.
complete_db.json.tpl
Извлекает все объекты ядра и пользовательские таблицы, без
файлов.
packages.json.tpl
Извлекает все пакеты из первого сайта и устанавливает во втором.
30
31. develop.json.tpl
Извлекает все объекты ядра, файлы и пользовательские таблицы
из первого сайта для импорта во второй, дополняет существующие
объекты и таблицы.
elements.json.tpl
Извлекает все элементы и связанные с ними данные из первого
сайта для импорта во второй, обновляет и дополняет
существующие.
31
32. resources.json.tpl
Извлекает все ресурсы из первого сайта для импорта во второй,
обновляет и дополняет существующие.
resource_children.json.tpl
Извлекает все ресурсы, которые являются потомками заданного
родительского ресурса.
32
33. user.json.tpl
Излекает одного указанного пользователя и сопутствующие
данные из первого сайта для импорта во второй.
users.json.tpl
Излекает все пользователей из первого сайта для импорта во
второй, обновляет и дополняет существующих.
33
34. Собственные шаблоны
Простейший шаблон
{"name":"elements", "vehicles":[]}
• Обычный json
• Отношения и условия как в map-файлах modx
34
38. Телепортация A в B
Сайт A Сайт B
Profile: sitea.profile.json Profile: siteb.profile.json
Extract:
Inject:
packages
packages
develop
develop
Синхронизированы
38
45. Проблемы
• complete и complete_db не подходит для установки через менеджер
пакетов
• в конфиге нельзя исключить из упаковки отдельную папку
• не на все действия есть документация
• до сих пор нет документации по custom tpls
45
46. Планы
• Панель управления dev-экземлярами
• Автоматическая сборка пакетов
• Специальный репозиторий для обновлений
• Continuous Delivery через пакеты
46