Введение в язык программирования GoElena GrahovacУстройство и история Go, примеры использования, ссылки на полезные ресурсы.
Весь Go-код здесь: https://github.com/rumyantseva/go-intro
Women Techmakers Novosibirsk, первый митапElena GrahovacЗнакомство с коммьюнити, которые поддерживают девушек в IT. Обсуждаем наши планы на ближайший месяц: изучаем Go и готовимся к хакатону Gopher Gala.
Go в продакшене Яндекса: отчёт после года использования — Вячеслав БахмутовYandexЯ расскажу о том, как мы используем Go в продакшене Яндекс.Браузера, почему мы выбрали этот язык и с какими проблемами столкнулись.
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandexВ докладе речь пойдёт о языке Go. Вячеслав расскажет о внутреннем устройстве языка (структуре, оптимизации, сборщике мусора и т.д.), о том, как и почему Go используют в Яндексе и что о нём говорят разработчики на С++. Отдельно Вячеслав остановится на многопоточном программировании и особенностях отладки и профилирования в Go.
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...YandexМой доклад – о том, как мы пришли к решению об использовании Go в своём проекте и что из этого получилось. Ostrovok.ru по своим целям — классический стартап. Мы с вами поговорим об особенностях выбора технологий для стартапов, о преимуществах и недостатках Go в проектах такого типа, о его интеграции в имеющуюся инфраструктуру и о том, какие ключевые ниши для Go можно выделить.
Работаем с API по-взрослому - Максим Кислов (Badoo)AvitoTechЯ расскажу о том, как мы разрабатываем фронтенд и бэкенд параллельно, используя protobuf + JSON RPC.
Часто фронтенд выставляет требования к бэкенду, из этих требований получается API, и разработка возможна только при одновременной работе серверного и клиентского девелопера.
Мы же начинаем разработку с API, и фронтенд (а также мобильные приложения) никак не зависят от степени готовности бэкенда.
– Я поделюсь тем, как мы делаем API до начала разработки;
– Success story использования protobuf + RPC;
– И немного – о разработке клиента вообще без серверного кода.
BeeGo для веб приложений, API и демоновAnton PiskunovАнтон Пискунов. Независимый разработчик.
«BeeGo для веб-приложений, API и демонов»
- Почему BeeGo? vs Revel and another guys.
- Что мы пишем на BeeGo? Наш личный опыт.
- Как написать облачный стартап и инфраструктурные сервисы на BeeGo за две недели.
- Sweet API, нэймспейсы и автодокументация.
- Демонизация BeeGo, к чему мы пришли?
- Разработчики, мэйнтейнинг, существующие проблемы
http://go-meetup-spb.timepad.ru/event/169777/
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)AvitoTechРоман Дворнов (Avito)
Фронтенд усложняется с каждым днем, и уже не представить жизнь разработчика без инструментов. Инструментов становится все больше, но нельзя сказать, что их достаточно. Если у вас собственный стек или технологическое решение, вам рано или поздно потребуется сделать свой инструмент. Это не так просто! Особенно если вы захотите интегрировать его интерфейс в браузерные Developer Tools, IDE, редакторы или открыть их на другом устройстве. Добавьте сюда проблему версионирования и другие сложности, и вам покажется, что задача неподъемная.
Но есть хорошая новость! Большинство из этих проблем решает Rempl — платформа для создания и использования удаленных инструментов (на самом деле не только инструментов). Сделаем небольшой обзор Rempl: что это, зачем нужно, какие проблемы решает. А также посмотрим примеры готовых решений, построенных на Rempl.
После докладов мы проведём дискуссионную панель на тему "Организация системы компонент", в которой примут участие докладчики, а также приглашенные эксперты.
Дизайн платформа в Avito - Александр Лобашев (Avito)AvitoTechКомпонентный подход принес много пользы, а вместе с тем и проблему переиспользования компонентов. В проекте появились сотни, тысячи компонентов, но со временем мы совсем забыли где они живут, как их использовать и как они выглядят. А что если дизайнер нарисовал интерфейс с новой кнопкой? Использовать текущий компонент или сделать новую кнопку для маленького интерфейса?
Я расскажу, как мы сделали пряничный домик для дизайнеров, а также наладили коммуникацию и коллаборацию между дизайнерами, разработчиками и менеджерами.
Данил Ильиных и Владимир Иванов, «Велогосипед»Platonov SergeyГод от года многие программисты решают одни и те же задачи, но не всегда среди огромного многообразия решений можно найти что-то подходящее.
Вот и мы не смогли найти ни одной библиотеки логирования для C++, которая удовлетворяла бы всем нашим требованиям. Теперь у нас есть свой велосипед, и мы расскажем, чем он лучше других.
Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019Mail.ru GroupРазберем, как работают две совершенно разные технологии aiopg & asyncpg — посмотрим, как они устроены. Что важно, мы не будем сравнивать скорость.
Юлия Писаревская - В поисках эффективности: Slack и BitBucketTatyana BraginaПрезентация Юлии Писаревской (GoodSellUs) на IT NonStop. Харьков, ноябрь 2015
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...YandexС развитием веб-технологий сайты стали уже не просто информационными ресурсами, а полноценными приложениями. Такие приложения используют большое количество статических ресурсов, общий объем которых часто превышает 1 МБ. При условии частых обновлений встает вопрос: "Как наиболее эффективно загружать ресурсы при выходе новых версий?". В докладе будет рассказано про существующие техники обновления, которые позволяют загружать не целиком новые ресурсы, а только «разницу» между новой и старой версией.
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...Nikolay SamokhvalovВстречи сообщества http://PostgreSQLRussia.org -
Миграция из Oracle в Postgres. Встреча в компании CUSTIS.
План встречи:
19:00 Приветственная пицца, свободное общение.
19:20 Вступление. Рассказ о CUSTIS.
19:25 Николай Самохвалов. Коротко о PostgreSQL.
19:35 Максим Трегубов, CUSTIS. Миграция данных из Oracle в Postgres. Доклад о том, как мы для одного из заказчиков тестировали переход с СУБД Oracle на Postgres. Расскажем о выборе инструмента миграции данных, настройке тестовой среды и о полученных результатах. Также немного затронем модную тему DevOps и покажем роль Ansible в миграции данных.
20:10 Вячеслав Муравлев, CUSTIS. Data Access Layer как страховка при миграции СУБД. Для многих АС миграция с одной СУБД на другую сродни наступлению страхового случая «тотал» - необходимо переписать львиную долю кода. Подстраховаться от такого ущерба можно с помощью шаблона проектирования Data Access Layer (DAL). Мы расскажем как этот подход помог нам провести первый этап миграции АС одного из заказчиков с Oracle на PostgreSQL, рассмотрим инструментарий, обсудим применимость подхода на уровне предприятия.
20:30 Иван Кухарчук, ЯНДЕКС. Как можно сэкономить на лицензиях и снизить нагрузку на Oracle, переселив отчёты в PostgreSQL.
20:50 Завершение встречи, свободное общение.
Игорь Новак — РедакторыYandexКак правильно выбрать подходящий для вас редактор кода? Что он должен уметь и как правильно с ним работать? В лекции представлены простые стоящие ответы на данные вопросы, а также практические примеры из личного опыта на примере редактора Vim.
Контроль за качеством кодаКирилл БорисовСлайды с одноименного доклада на IT Global Meetup 2015, прошедшего в Санкт-Петербурге 6 июля.
Тезисы:
* Контроль за качеством кода - это необходимая процедура при работе нескольких человек в одной команде над продуктом из более чем сотни строк. Зачем это нужно? Каждый пишет код по-своему, ожидает понимания от остальных участников команды, но в жизни этого не происходит.
* Недостатки разнобоя в стиле написанного кода: увеличивается время ревью, усложняется внесение правок кем-либо кроме автора кода, увеличивается вероятность пропустить глазами ошибку.
* Основные шаги к решению этой проблемы: создание единого свода правил по оформлению кода (style guide), согласование процедуры разрешения конфликтных ситуаций относительно разночтений этих правил, устранение человеческого фактора в процессе оценки через автоматизацию.
* Что из экосистемы Питона может помочь? При составлении style guide можно взять за основу PEP8 и PEP257, дополнив их принятыми в команде конвенциями (какие кавычки использовать для строк и докстрингов, и т.д. и т.п.). Автоматизировать проверки можно как с помощью уже готовых утилит (pep8, flake8, pylint), так и написав свои с помощью встроенного в язык инструментария (модули ast, tokenizer, сторонние библиотеки для работы с кодом).
* Где производить проверки? Есть несколько возможных этапов:
- IDE разработчика
- Локальная VCS (working copy)
- Общая VCS
- Сервер Continous Integration.
В идеале проверки должны быть на каждом этапе, но при этом как можно меньше затруднять обычный рабочий процесс. Здесь стоит задуматься, какая комбинация из этих этапов лучше всего впишется в стиль разработчки команды.
* Если же нет достаточных ресурсов или проект находится
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...YandexМой доклад – о том, как мы пришли к решению об использовании Go в своём проекте и что из этого получилось. Ostrovok.ru по своим целям — классический стартап. Мы с вами поговорим об особенностях выбора технологий для стартапов, о преимуществах и недостатках Go в проектах такого типа, о его интеграции в имеющуюся инфраструктуру и о том, какие ключевые ниши для Go можно выделить.
Работаем с API по-взрослому - Максим Кислов (Badoo)AvitoTechЯ расскажу о том, как мы разрабатываем фронтенд и бэкенд параллельно, используя protobuf + JSON RPC.
Часто фронтенд выставляет требования к бэкенду, из этих требований получается API, и разработка возможна только при одновременной работе серверного и клиентского девелопера.
Мы же начинаем разработку с API, и фронтенд (а также мобильные приложения) никак не зависят от степени готовности бэкенда.
– Я поделюсь тем, как мы делаем API до начала разработки;
– Success story использования protobuf + RPC;
– И немного – о разработке клиента вообще без серверного кода.
BeeGo для веб приложений, API и демоновAnton PiskunovАнтон Пискунов. Независимый разработчик.
«BeeGo для веб-приложений, API и демонов»
- Почему BeeGo? vs Revel and another guys.
- Что мы пишем на BeeGo? Наш личный опыт.
- Как написать облачный стартап и инфраструктурные сервисы на BeeGo за две недели.
- Sweet API, нэймспейсы и автодокументация.
- Демонизация BeeGo, к чему мы пришли?
- Разработчики, мэйнтейнинг, существующие проблемы
http://go-meetup-spb.timepad.ru/event/169777/
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)AvitoTechРоман Дворнов (Avito)
Фронтенд усложняется с каждым днем, и уже не представить жизнь разработчика без инструментов. Инструментов становится все больше, но нельзя сказать, что их достаточно. Если у вас собственный стек или технологическое решение, вам рано или поздно потребуется сделать свой инструмент. Это не так просто! Особенно если вы захотите интегрировать его интерфейс в браузерные Developer Tools, IDE, редакторы или открыть их на другом устройстве. Добавьте сюда проблему версионирования и другие сложности, и вам покажется, что задача неподъемная.
Но есть хорошая новость! Большинство из этих проблем решает Rempl — платформа для создания и использования удаленных инструментов (на самом деле не только инструментов). Сделаем небольшой обзор Rempl: что это, зачем нужно, какие проблемы решает. А также посмотрим примеры готовых решений, построенных на Rempl.
После докладов мы проведём дискуссионную панель на тему "Организация системы компонент", в которой примут участие докладчики, а также приглашенные эксперты.
Дизайн платформа в Avito - Александр Лобашев (Avito)AvitoTechКомпонентный подход принес много пользы, а вместе с тем и проблему переиспользования компонентов. В проекте появились сотни, тысячи компонентов, но со временем мы совсем забыли где они живут, как их использовать и как они выглядят. А что если дизайнер нарисовал интерфейс с новой кнопкой? Использовать текущий компонент или сделать новую кнопку для маленького интерфейса?
Я расскажу, как мы сделали пряничный домик для дизайнеров, а также наладили коммуникацию и коллаборацию между дизайнерами, разработчиками и менеджерами.
Данил Ильиных и Владимир Иванов, «Велогосипед»Platonov SergeyГод от года многие программисты решают одни и те же задачи, но не всегда среди огромного многообразия решений можно найти что-то подходящее.
Вот и мы не смогли найти ни одной библиотеки логирования для C++, которая удовлетворяла бы всем нашим требованиям. Теперь у нас есть свой велосипед, и мы расскажем, чем он лучше других.
Сравнение технологий aiopg & asyncpg, Алексей Фирсов. 22 июня, 2019Mail.ru GroupРазберем, как работают две совершенно разные технологии aiopg & asyncpg — посмотрим, как они устроены. Что важно, мы не будем сравнивать скорость.
Юлия Писаревская - В поисках эффективности: Slack и BitBucketTatyana BraginaПрезентация Юлии Писаревской (GoodSellUs) на IT NonStop. Харьков, ноябрь 2015
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...YandexС развитием веб-технологий сайты стали уже не просто информационными ресурсами, а полноценными приложениями. Такие приложения используют большое количество статических ресурсов, общий объем которых часто превышает 1 МБ. При условии частых обновлений встает вопрос: "Как наиболее эффективно загружать ресурсы при выходе новых версий?". В докладе будет рассказано про существующие техники обновления, которые позволяют загружать не целиком новые ресурсы, а только «разницу» между новой и старой версией.
#PostgreSQLRussia 2015.09.15 - Николай Самохвалов - 5 главных особенностей Po...Nikolay SamokhvalovВстречи сообщества http://PostgreSQLRussia.org -
Миграция из Oracle в Postgres. Встреча в компании CUSTIS.
План встречи:
19:00 Приветственная пицца, свободное общение.
19:20 Вступление. Рассказ о CUSTIS.
19:25 Николай Самохвалов. Коротко о PostgreSQL.
19:35 Максим Трегубов, CUSTIS. Миграция данных из Oracle в Postgres. Доклад о том, как мы для одного из заказчиков тестировали переход с СУБД Oracle на Postgres. Расскажем о выборе инструмента миграции данных, настройке тестовой среды и о полученных результатах. Также немного затронем модную тему DevOps и покажем роль Ansible в миграции данных.
20:10 Вячеслав Муравлев, CUSTIS. Data Access Layer как страховка при миграции СУБД. Для многих АС миграция с одной СУБД на другую сродни наступлению страхового случая «тотал» - необходимо переписать львиную долю кода. Подстраховаться от такого ущерба можно с помощью шаблона проектирования Data Access Layer (DAL). Мы расскажем как этот подход помог нам провести первый этап миграции АС одного из заказчиков с Oracle на PostgreSQL, рассмотрим инструментарий, обсудим применимость подхода на уровне предприятия.
20:30 Иван Кухарчук, ЯНДЕКС. Как можно сэкономить на лицензиях и снизить нагрузку на Oracle, переселив отчёты в PostgreSQL.
20:50 Завершение встречи, свободное общение.
Игорь Новак — РедакторыYandexКак правильно выбрать подходящий для вас редактор кода? Что он должен уметь и как правильно с ним работать? В лекции представлены простые стоящие ответы на данные вопросы, а также практические примеры из личного опыта на примере редактора Vim.
Контроль за качеством кодаКирилл БорисовСлайды с одноименного доклада на IT Global Meetup 2015, прошедшего в Санкт-Петербурге 6 июля.
Тезисы:
* Контроль за качеством кода - это необходимая процедура при работе нескольких человек в одной команде над продуктом из более чем сотни строк. Зачем это нужно? Каждый пишет код по-своему, ожидает понимания от остальных участников команды, но в жизни этого не происходит.
* Недостатки разнобоя в стиле написанного кода: увеличивается время ревью, усложняется внесение правок кем-либо кроме автора кода, увеличивается вероятность пропустить глазами ошибку.
* Основные шаги к решению этой проблемы: создание единого свода правил по оформлению кода (style guide), согласование процедуры разрешения конфликтных ситуаций относительно разночтений этих правил, устранение человеческого фактора в процессе оценки через автоматизацию.
* Что из экосистемы Питона может помочь? При составлении style guide можно взять за основу PEP8 и PEP257, дополнив их принятыми в команде конвенциями (какие кавычки использовать для строк и докстрингов, и т.д. и т.п.). Автоматизировать проверки можно как с помощью уже готовых утилит (pep8, flake8, pylint), так и написав свои с помощью встроенного в язык инструментария (модули ast, tokenizer, сторонние библиотеки для работы с кодом).
* Где производить проверки? Есть несколько возможных этапов:
- IDE разработчика
- Локальная VCS (working copy)
- Общая VCS
- Сервер Continous Integration.
В идеале проверки должны быть на каждом этапе, но при этом как можно меньше затруднять обычный рабочий процесс. Здесь стоит задуматься, какая комбинация из этих этапов лучше всего впишется в стиль разработчки команды.
* Если же нет достаточных ресурсов или проект находится
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"FwdaysDemonizing PHP application to gain higher performance. Splitting an application into infrastructure (go) and business logic (PHP) layers to gain higher flexibility.
Open your sourceАлексей КудрявцевСегодня достаточно редко можно встретить проект, который не содержит open source код в своих недрах. Практически все, от маленьких pet project'ов до больших enterprise решений, в разной степени имеют зависимости на библиотеки с открытым исходным кодом. Как завещали отцы: П - переиспользование, а не В - велосипедостроение. Но, к сожалению по разным причинам, не так много разработчиков вкладывается в сообщеество, сколько пользуется его плодами.
В этом докладе я хочу развеять некоторые мифы, рассказать что из себя представляет open source, как в него войти и участвовать в открытых проектах так, чтобы не было больно, а так же разбить опасения и мотивировать разработчиков не только брать от комьюнити, но и отдавать, делая это просто и с любовью.
Краткий список затрагиваемых вопросов:
* Как зародился open source, на каких принципах он базируется и чем является
* Какие есть плюсы и минусы у участия в жизни сообщества
* Что такое этикет open source и как его придерживаться
* Как решиться контрибьютить и сделать все правильно
* Как подготовить свой проект к выходу в свет и на что обращать внимание
* Какие бывают лицензии и как выбрать наиболее подходящую без головной боли
* Как правильно версионировать и распостранять проект
* Как продать open source творение миру
* Как облегчить поддержку проекта с помощью автоматизации и какие для этого брать инструменты
Ігор Карпиленко — PHPStorm for drupal developerLEDC 2016Розгляд та аналіз інфструментів PHPStorm для drupal розробника: QA tools, Xdebug, Issue Tracking System, Drush, інструменти для роботи з Vagrant, Docker і базами даних. Корисні плагіни.
Развитие сообщества Open DevOps CommunityPositive Hack Days1. Обзор инструментов в сообществе DevOpsHQ: https://github.com/devopshq и решаемые ими проблемы.
2. Планы развития сообщества DevOpsHQ.
Масштабируемая архитектура фронтендаRoman DvornovКогда проект делает один разработчик — все просто. Когда над ним работает небольшая команда, можно синхронизироваться и договориться. А вот когда проектов (сайтов и приложений) становится много, и над ними трудится множество команд с перекрестной функциональностью и смежными зонами ответственности, все становится сложным и запутанным.
Я расскажу о своем виденье архитектуры фронтенда, какой она должна быть, чтобы обеспечить её масштабируемость. На основе своего опыта и проблем, с которыми сталкиваются большие проекты.
Видео: https://www.youtube.com/watch?list=PLknJ4Vr6efQFtZmsXmGG64Rz_PHrcXCBL&v=z9y6PNC2FL0
Юрий Василевский «Автоматизация в XCode»YandexЮрий Василевский «Автоматизация в XCode»
Yandex Mobile Camp в Санкт-Петербурге 2012
http://events.yandex.ru/events/yamobcamp/spb-may-2012/
Xcode — основной инструментарий разработки приложений под Mac OS X и Apple iOS. Он обладает широкими возможностями как для редактирования кода, так и для автоматизации задач. Мы обсудим некоторые из аспектов автоматизации (Code Sense, Targets, Services, Help), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
Юрий Василевский "Автоматизация в XCode"YandexYandex Mobile Camp в Санкт-Петербурге, 30 мая 2012
Юрий Василевский, ведущий разработчик EPAM Systems, Mobile Solutions
Тема: Автоматизация в XCode
Тезисы:
Xcode — основной инструментарий разработки приложений под Mac OS X и Apple iOS. Он обладает широкими возможностями как для редактирования кода, так и для автоматизации задач.
Мы рассмотрим некоторые из аспектов автоматизации (Code Sense, Targets, Services, Help), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
Мой маленький уютный PaaS / Илья Беда (bro.agency)OnticoРаньше PaaS системы казались чем-то сложным и недосягаемым. И немногие могли попытаться реализовать такую систему самостоятельно. Но стремительное развитие технологий снизило порог входа в мир PaaS. Появилось множество готовых продуктов. И более того, вы сами можете сделать свой PaaS.
В своём докладе я поделюсь опытом проектирования и создания PaaS системы на базе docker, registrator, etcd, confd и ansible. Расскажу, почему я решил сделать его самостоятельно, а не взять готовый, поделюсь опытом реального использования этого продукта в production.
Go at OpenproviderElena GrahovacHow we write microservices in Go and deploy them to Kubernetes using Helm and Charts. Automation is everywhere!
This talk was made for Golang Novosibirsk Meetup: https://youtu.be/WwCWUEO7tqI
Введение в сервис-ориентированную архитектуруElena GrahovacВведение в сервис-ориентированную архитектуру, теория: преимущества, обзор составляющих.
P. S. Не столько настоящая презентация, сколько черновик. Но раз попросили, то делюсь :)
5. Существующий проект
5
- Принести пользу
- Улучшить продукт, которым пользуешься
- Стать частью сообщества
- Поучиться на чужих примерах написания кода
- Получить кодревью от более опытных
товарищей
6. Свой проект
6
- Реализовать давнюю идею
- Попробовать себя в разработке “с нуля”
- Добавить примеры кода в портфолио
- Собрать команду единомышленников
10. Чем помочь?
10
- Реализовать фичу или пофиксить баг
- Улучшить документацию
- Перевести документацию или сайт проекта на
иностранный язык
- Оставить баг-репорт или фича-реквест
13. Issues
13
- В первую очередь — “help wanted”
- В первую очередь — простые задачи
- Вознаграждение за “bounty”
- Сначала согласовать, потом начать
реализацию тикета
18. README.md
18
- Описание проекта
- Инструкция по развертыванию
- Информация о том, как можно поучаствовать в
проекте (или файл CONTRIBUTING.md)
- Список контрибьюторов (или файл
CONTRIBUTORS)
Всё то же самое 🤓
22. Стандарты кодирования
22
- Выбрать стандарт и следовать ему!
- Описать правила для контрибьютеров
- Хуки на коммит на стороне клиента (pre-
commit.com)
- Хуки на пуш на стороне сервера
23. Документация
23
- Минимальная — в README.md
- Автодокументация, сгенерированная по коду
- Документация для библиотеки
- Документация для REST API
25. Автосборка
25
- Проверить код на соответствие стандартам
- Запустить тесты
- Запустить сборку (если требуется)
- Удобно: travis-ci.com для проектов с открытым
исходным кодом
27. Issues & Projects
27
- Теги для тикетов
- Планирование версий (“milestones”)
- Объединение крупных фич в проекты
- Общение с контрибьюторами
28. Что ещё?
28
- Создать чат для общения с пользователями и
контрибьюторами (gitter.im)
- Рассказать про свой проект в тематических
сообществах
- Подгтовить доклад о своем проекте на
ближайший митап