"Великолепный API без Rest", Констатин Якушев (Badoo)Badoo Development
DevConf 2016
"Великолепный API без Rest", Констатин Якушев (Badoo)
О чём пойдёт речь:
1. Мы используем Google Protobuf для документации и как протокол для нативных платформ. На вебе они оборачиваются в JSON через http + server-sent events. Расскажу, как это помогает в документации и в процессах.
2. Все поля и сообщения документируются, для новых функций пишется подробный обзор со скриншотами "по шагам" и примерами сообщений и ответов. Покажу, как это выглядит и зачем нужно.
3. Версионирование осуществляется через флаги "Клиент умеет такую-то возможность" или "Клиент знает о таком-то изменении протокола". Это гораздо лучше, чем номер версии и резко увеличивает гибкость системы. Разберу с конкретными примерами, как это работает.
4. Кроме того, расскажу об отдельной команде в Badoo, занимающейся развитием этой истории.
"Великолепный API без Rest", Констатин Якушев (Badoo)Badoo Development
DevConf 2016
"Великолепный API без Rest", Констатин Якушев (Badoo)
О чём пойдёт речь:
1. Мы используем Google Protobuf для документации и как протокол для нативных платформ. На вебе они оборачиваются в JSON через http + server-sent events. Расскажу, как это помогает в документации и в процессах.
2. Все поля и сообщения документируются, для новых функций пишется подробный обзор со скриншотами "по шагам" и примерами сообщений и ответов. Покажу, как это выглядит и зачем нужно.
3. Версионирование осуществляется через флаги "Клиент умеет такую-то возможность" или "Клиент знает о таком-то изменении протокола". Это гораздо лучше, чем номер версии и резко увеличивает гибкость системы. Разберу с конкретными примерами, как это работает.
4. Кроме того, расскажу об отдельной команде в Badoo, занимающейся развитием этой истории.
БЭМ: новости проектов и последние релизы — Владимир ГриненкоYandex
В ставшем уже традиционным для наших встреч докладе о новостях мы обсудим, что нового появилось bem.info, в документации, в библиотеках блоков и инструментах, помогающих работать с БЭМ. Поговорим о планируемом переходе с CSSO и bem-tools на новые инструменты и о том, куда мы движемся дальше. Приветствуются вопросы и ваши рассказы о проектах, в которых вы используете стек БЭМ-технологий.
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
В докладе речь пойдёт о языке Go. Вячеслав расскажет о внутреннем устройстве языка (структуре, оптимизации, сборщике мусора и т.д.), о том, как и почему Go используют в Яндексе и что о нём говорят разработчики на С++. Отдельно Вячеслав остановится на многопоточном программировании и особенностях отладки и профилирования в Go.
Форум на полном БЭМ-стеке — Николай Ильченко, ЯндексYandex
В связи с закрытием Я.ру возникла потребность в простом решении, которое могло бы заменить этот сервис и легко внедриться в другие проекты на БЭМ. Для этого мы разработали bem-forum — форум на полном БЭМ-стеке, использующий GitHub Issues в качестве источника данных. Кроме того, форум на bem.info — это пример проекта с открытым исходным кодом, которым можно пользоваться в виде традиционного приложения на node.js и express.js. Обо всём этом и пойдёт речь в докладе.
Доклад Юрия Насретдинова на РИТ++ 2013. "Система перевода в Badoo".Badoo Development
1. Общее устройство системы перевода в Badoo
2. Лексемы, интеграция с таск-трекером
3. Иерархия языков, интерфейс перевода
4. Выделение лексем из текста: парсер, знающий HTML
5. Интеграция с git: многоверсионная система хранения лексем
Владимир Гриненко — Библиотеки блоков bem-core и bem-componentsYandex
При разработке новых библиотек bem-core и bem-components мы переосмыслили свой подход и предыдущий опыт. Теперь разработка — это честный опенсорс с прозрачным планированием, где каждый может повлиять на результат. Мы сформулировали требования: тотальная автоматизация, Bleeding Edge, оптимизация, разные варианты поставки библиотеки, поддержка нескольких визуальных тем, бережность и кругозор. И определили технологии: анализаторы кода, юнит-тесты, модульность, шаблонизаторы, работа с CSS, зависимости и сборка. В докладе я подробно остановлюсь на каждом из этих вопросов.
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
В докладе речь пойдёт о языке Go. Вячеслав расскажет о внутреннем устройстве языка (структуре, оптимизации, сборщике мусора и т.д.), о том, как и почему Go используют в Яндексе и что о нём говорят разработчики на С++. Отдельно Вячеслав остановится на многопоточном программировании и особенностях отладки и профилирования в Go.
Доклад с PUG#2 https://www.facebook.com/events/292457000957088/
Доклад о работе в Shell, исполнении PHP в Shell, использовании REPL в PHP, а также эпический батл между Boris и PsySH.
PHP User Group Ukraine в социальных сетях:
https://www.facebook.com/pug.ukraine
https://vk.com/pug.ukraine
https://www.linkedin.com/groups/PHP-User-Group-Ukraine-6703717
БЭМ: новости проектов и последние релизы — Владимир ГриненкоYandex
В ставшем уже традиционным для наших встреч докладе о новостях мы обсудим, что нового появилось bem.info, в документации, в библиотеках блоков и инструментах, помогающих работать с БЭМ. Поговорим о планируемом переходе с CSSO и bem-tools на новые инструменты и о том, куда мы движемся дальше. Приветствуются вопросы и ваши рассказы о проектах, в которых вы используете стек БЭМ-технологий.
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
В докладе речь пойдёт о языке Go. Вячеслав расскажет о внутреннем устройстве языка (структуре, оптимизации, сборщике мусора и т.д.), о том, как и почему Go используют в Яндексе и что о нём говорят разработчики на С++. Отдельно Вячеслав остановится на многопоточном программировании и особенностях отладки и профилирования в Go.
Форум на полном БЭМ-стеке — Николай Ильченко, ЯндексYandex
В связи с закрытием Я.ру возникла потребность в простом решении, которое могло бы заменить этот сервис и легко внедриться в другие проекты на БЭМ. Для этого мы разработали bem-forum — форум на полном БЭМ-стеке, использующий GitHub Issues в качестве источника данных. Кроме того, форум на bem.info — это пример проекта с открытым исходным кодом, которым можно пользоваться в виде традиционного приложения на node.js и express.js. Обо всём этом и пойдёт речь в докладе.
Доклад Юрия Насретдинова на РИТ++ 2013. "Система перевода в Badoo".Badoo Development
1. Общее устройство системы перевода в Badoo
2. Лексемы, интеграция с таск-трекером
3. Иерархия языков, интерфейс перевода
4. Выделение лексем из текста: парсер, знающий HTML
5. Интеграция с git: многоверсионная система хранения лексем
Владимир Гриненко — Библиотеки блоков bem-core и bem-componentsYandex
При разработке новых библиотек bem-core и bem-components мы переосмыслили свой подход и предыдущий опыт. Теперь разработка — это честный опенсорс с прозрачным планированием, где каждый может повлиять на результат. Мы сформулировали требования: тотальная автоматизация, Bleeding Edge, оптимизация, разные варианты поставки библиотеки, поддержка нескольких визуальных тем, бережность и кругозор. И определили технологии: анализаторы кода, юнит-тесты, модульность, шаблонизаторы, работа с CSS, зависимости и сборка. В докладе я подробно остановлюсь на каждом из этих вопросов.
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
В докладе речь пойдёт о языке Go. Вячеслав расскажет о внутреннем устройстве языка (структуре, оптимизации, сборщике мусора и т.д.), о том, как и почему Go используют в Яндексе и что о нём говорят разработчики на С++. Отдельно Вячеслав остановится на многопоточном программировании и особенностях отладки и профилирования в Go.
Доклад с PUG#2 https://www.facebook.com/events/292457000957088/
Доклад о работе в Shell, исполнении PHP в Shell, использовании REPL в PHP, а также эпический батл между Boris и PsySH.
PHP User Group Ukraine в социальных сетях:
https://www.facebook.com/pug.ukraine
https://vk.com/pug.ukraine
https://www.linkedin.com/groups/PHP-User-Group-Ukraine-6703717
В докладе мы рассмотрим создание переносимого дистрибутива Python для любых нужд и операционных систем (Windows & Linux). Познакомимся с существующими и альтернативными решениями. Сравним их достоинства и недостатки.
Докладчик: Григорий Кареев (Odin)
Видео: https://www.youtube.com/watch?v=fvBJG_IKvaQ
Артем Первухин "Язык программирования GO"
В докладе будет рассказано, чем сможет заинтересовать Python-разработчика язык программирования Go. Будут описаны базовые идиомы языка Go и даны ответы на следующие вопросы: Насколько применим к Go "Zen of Python"? Какая у этого языка область применения? В чём можно выиграть, использовав Go вместо Python?
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extensionchaykaborya
Доклад с 4front meetup #8.
Видео здесь: https://youtu.be/-i9nNmCCFpA
В докладе речь идет о том как портировать Chrome Extension в Firefox Extension или сразу написать кросс-браузерное расширение с нуля.
Никита Селиванов: 8 правил эффективного взаимодействия с подрядчиком при созд...Ruslan Begaliev
Как правильно поставить ТЗ на создание сайта.
Как правильно закладывать структуру сайта при разработке.
Какие KPI поставить перед подрядчиком при SEO. оптимизации сайта.
Как самостоятельно проверить эффективность контекстной рекламы.
Как анализировать ROI в контекстной рекламе.
Константин Хомченко: Как раскрыть маркетинговый потенциал Wordpress?Ruslan Begaliev
Константин Хомченко, руководитель маркетинговой студии расскажет, как можно выжать из Wordpress максимум для повышения онлайн-продаж. Вы узнаете 10 приемов, которые позволяют увеличить онлайн-продажи и повысить конверсию сайта. Увидите на понятных примерах, как простые решения приносят ощутимый результат в цифрах.
Анна Ладошкина: Проект Guthenberg: революция в консолиRuslan Begaliev
WordPress знаменит удобством использования свой административной консоли, даже для пользователей без технических навыков. Новая разработка команды "проект Gutenberg" обещает еще упростить процесс публикации материалов и попутно уложить на лопатки конкурентов в лице визуальных редакторов. Давайте разберемся, что же представляет собой эта многообещающая новинка, в какой-то стадии разработка и каковы перспективы для владельцев сайтов и разработчиков.
Миша Рудрастых: Введение в HTTP API WordPressRuslan Begaliev
Всё чаще и чаще в реальной жизни нам приходится взаимодействовать со сторонними сервисами через API — от получения количества лайков до подключения к платёжным шлюзам, а значит мы не можем игнорировать встроенный в WordPress механизм, предназначенный специально для этого.
Каким будет SEO в начале 2017 года и как нам в этом поможет Wordpress? Ruslan Begaliev
Какие были основные события в конце 2016 года в SEO? Люди в теме смогут вспомнить введение Палеха у Яндекса и запуск отдельной мобильной выдачи у Google. Также к концу года наблюдался массированный переход сайтов на https. И всё это на фоне сильного прироста доли поисковых запросов в Google по сравнению с Яндексом.
Изменится ли SEO в связи с этими событиями и какие инструменты для новых seo-шных тенденций нам может предоставить Wordpress?
Никита Селиванов
https://www.facebook.com/wpspb/
https://vk.com/wp_spb
Что вам нужно знать, когда вы покидаете виртуальный хостинг? Ruslan Begaliev
Руслан Бегалиев покажет ужасный мир хостингов. Сайты постоянно падают, на жалобы никто не реагирует, что делать? Выделенный сервер! Это не так сложно, как кажется, а иногда даже приятно☺
Варвара Лялягина расскажет о том, почему необходимо выстраивать личный бренд, какие существуют элементы сильного личного бренда, а главное, как с помощью сайта и личного блога транслировать бренд для своей аудитории.
Бот для Telegram и сайт на WordPress — смогут ли ужиться вместе?Ruslan Begaliev
Анна Ладошкина поговорит о ботах для мессенджера Telegram, их устройстве и возможностях, а также о том, как разработчикам и авторам сайтов на WordPress можно использовать этот новый инструмент для развития своих проектов. WordPress как backend для Telegram-бота за несколько простых шагов.
2. Сайт на другом языке (языках)
На сайте только один язык?
Да
Нет
Нет
Да
Локализация → 1
Мультиязычный сайт → 3
Языковые версии сайта → 2
Контент на разных языках должен совпадать
3. Утилита Unix gettext()
Источники данных для утилиты gettext() - файлы .mo,
скомпилированные “языковые БД” особой структуры
То, из чего компилируютя файлы .mo - файлы .po
Локализация → 1
4. 1 -> язык
2 -> языка
11345 -> языков
языки
4 варианта
Особая проблема - мультиязычные формы
Работает утилита Unix ngettext()
Запись мультиязычной (plural) формы на
псевдоязыке в заголовке файла .po
Уникальна для каждого языка
5. Альтернатива gettext() - база данных
Вызов gettext()
в PHP
*nix вызывает
свою утилиту
gettext()
Обращение к
файлу .mo
Работа gettext() в файле .mo по
поиску словопары
Найдено?
отдаем то что
найдено
Да
отдаем оригинал
Нет
Загрузка страницы
Выгрузка из БД
всех словопар в
виде массива в
память
Массив словопар [ ]
Вызов gettext()
в PHP
хук gettext()
Повышение производительности: нет ни
обращения к файловой системе, ни
механизма поиска в файле .mo
6. Запись URL мультиязычных сайтов и языковых версий сайта
http://site.com/meetup-page/?lang=fi
http://site.com/lang/fi/meetup-page/
http://fi.site.com/meetup-page/
RewriteEngine on
RewriteCond %{HTTP_HOST} ^fi.site.com
RewriteRule ^(.*)$ http://site.com/lang/fi/$1 [L,NC,QSA]
Добавление правил в .
htaccess позволяет не
создавать никаких реальных
языковых субдоменов
7. Языковые версии сайта → 2
EN версия сайта в поддиректории
URL
http://doklad.wpru/en/
Почему такое возможно:
.htaccess WP при создании ЧПУ
(почти такой же .htaccess в Yii FW)
8. Мультиязычный сайт → 3 Принципы создания - всего два
Контент (ru)
Тот же контент
на другом языке
(fi)
Параллельный контент в БД
Переключение контента в зависимости от
URL, в котором содержится язык
Создание отдельно переводов
Запрос контента
Буфер, следящий за URL
В URL есть язык?
Да
Отдаем перевод
Нет
Отдаем оригинал
ф-я обертка над
любым контентом
_translate()
9. Плагин WPML
Это локализация по
принципу из БД
Основной плагин
WPML работает по принципу
создания параллельного
контента
10. Стили URL - нет
варианта с языковым
ключом
После инсталляции
плагина - возможность
добавить перевод
19. Трудность 1 - локализация
Первая попытка покорить мир
Заливка файлов .po ВСЕХ
официальных локализаций
WP
Приведение
псевдокода
файлов .po в PHP,
разбор словопар
Внесение
локализаций в БД
БД всех
официальных
локализаций WP,
которые есть в мире
Это создание PHP из псевдокода
для plural вариантов
При инсталляции плагина и/или
добавлении языков
локализации нужных языков вносятся в
БД установленного WP
20. Трудность 2
Автоматический перевод
_ocl() Запрос к системе
автоматического перевода
Сервис Сложность
работы
Платный Что можно
переводить
Перевод с тегами
HTML
Yandex Низкая Условно нет, есть неописанное
суточное ограничение на число
запросов
Сайт с малым
обновлением
контента
Да, но требует
правки
Google Средняя $20 за 2 миллиона знаков 2 млн. знаков - это
примерно 1400
страниц среднего
размера
Да, идеально
Bing Высокая $20 за 2 миллиона знаков -//- Да, идеально
21. Трудность 3
Тестирование плагина для разных версий WP
Общая БД, разные
версии WP имеют
разные префиксы
2.8.1
Файлы
проинсталлированных
версий WP
Папка с плагином -
символическая ссылка
3.0.1 Папка с плагином -
символическая ссылка
...
4.1.2 Папка с плагином -
символическая ссылка
...
Реальная папка, в которую
размещается плагин
URL: .../2.8.1/
URL: .../3.0.1/
URL: .../4.1.2/
WordPress
машина :)