Коротко про MySQL для тех, кто никогда не настраивал MySQL и-или плохо понимает, почему и что надо настраивать. Несколько ключевых фактов из скучной теории РСУБД, и несколько директив, которые должен уметь настраивать вообще каждый первый.
Построение собственного JS SDK — зачем и как?buranLcme
Многие разработчики любят делать свои велосипеды, но не все задумываются зачем. Мы расскажем о том, зачем вам может понадобится собственный JavaScript SDK и полезно ли кататься на велосипедах.
Мы делали собственный JS SDK для того, чтобы дать возможность создания плагинов в рамках большой enterprise системы - <b>Parallels Automation</b> и <b>Plesk Panel</b>. Сам SDK является частью общего стандарта <b>APS</b>, который является шиной, объединяющей все наши продукты по автоматизации. Обе панели брендируются и мы должны были сохранить брендинг при уже существующей кодовой базе верстки и существующих правилах оформления. И главное - надо было дать возможность создания UI сторонним девелоперам, которые могут иметь абсолютно разный уровень - от пришедших бекэндеров до профессиональных js-разработчиков.
Коротко про MySQL для тех, кто никогда не настраивал MySQL и-или плохо понимает, почему и что надо настраивать. Несколько ключевых фактов из скучной теории РСУБД, и несколько директив, которые должен уметь настраивать вообще каждый первый.
Построение собственного JS SDK — зачем и как?buranLcme
Многие разработчики любят делать свои велосипеды, но не все задумываются зачем. Мы расскажем о том, зачем вам может понадобится собственный JavaScript SDK и полезно ли кататься на велосипедах.
Мы делали собственный JS SDK для того, чтобы дать возможность создания плагинов в рамках большой enterprise системы - <b>Parallels Automation</b> и <b>Plesk Panel</b>. Сам SDK является частью общего стандарта <b>APS</b>, который является шиной, объединяющей все наши продукты по автоматизации. Обе панели брендируются и мы должны были сохранить брендинг при уже существующей кодовой базе верстки и существующих правилах оформления. И главное - надо было дать возможность создания UI сторонним девелоперам, которые могут иметь абсолютно разный уровень - от пришедших бекэндеров до профессиональных js-разработчиков.
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Ontico
Мы создаем nodejs приложения, используя различные современные технологии, такие как Docker, Consul, pm2. Современный спектр решений настолько обширен, что сложно не заблудиться. Как же выбрать нужные вашему проекту технологии, чтобы успешно его запустить и поддерживать? Будут рассказаны истории и, конечно же, даны вредные советы :)
Как на nodejs пройти путь от Hello world приложения до распределённого решения, состоящего из микросервисов?
Мы пройдём жизненный цикл продукта, начав с простого приложения на nodejs. Научимся его правильно запускать и будем постепенно добавлять элементы, убирая при этом ненужные. Так к нашему приложению присоединится гипервизор, а само оно будет разделено на части, где каждая сущность будет управлять своей частью приложения.
Построив таким образом архитектуру на чистом nodejs, мы займёмся развитием приложения, добавим современные технологии и применим новые подходы к организации инфраструктуры. Запакуем приложение в Docker, попутно обсудим, зачем он нужен и что может дать. И, наконец, решим проблему поиска запущенных сервисов и отслеживания их статусов, используя Consul.
Обзор подходов к построению прикладных программных систем на Node.js, анализ и сравнение архитектурных принципов развертывания высоконагруженных прикладных облачных сервисов, масштабирование, тенденции и перспективы в разработке приложений, обзор проблем платформы Node.js и пути их решения.
DevConf 2016
"Новые возможности MySQL 5.7", Дмитрий Ленев (Oracle)
MySQL 5.7 наиболее свежая стабильная ветка СУБД MySQL. Данный доклад
посвящен новым функциональным возможностям появившимся в этой версии.
В частности мы поговорим о:
- родной поддержке JSON данных и операций с ними
- генерируемых столбцах
- улучшениях в системе безопасности
- многочисленных измененениях в InnoDB
- изменениях в репликации, таких как поддержка multi-source репликации.
- многом другом
Кроме того будут освещены возможности связанные с новым X плагином, который
стал доступен с релизом версии 5.7.12 в апреле этого года.
Обсудим использование MySQL как Document Store, новый протокол и X DevApi
для коннекторов, новый клиент MySQL Shell.
Доклад будет рассказывать о современных подходах проектирования ПО. Основной темой будет построение компонентных архитектур на примере архитектуры сцены 3D движка. Будет рассмотрен классический объектно-ориентированный подход организации сцены, его плюсы и минусы, и в качестве альтернативы будет показан компонентно ориентированный подход организации сцены. Доклад позволит слушателям понять, как разрабатывать сложные системы, которые впоследствии можно легко поддерживать.
Нейронечёткая классификация слабо формализуемых данных | Тимур ГильмуллинPositive Hack Days
1. Проблемы автоматизации классификации слабо формализуемых (нечётких) данных.
2. Нечёткие множества и нечёткие измерительные шкалы.
3. Моделирование нейронной сети для классификации данных.
4. Инструмент FuzzyClassificator и его внедрение в Компании.
5. Автоматизация классификации данных на базе TeamCity.
DevConf 2016
"Производительность MySQL: что нового?", Алексей Копытов
Алексей Копытов — разработчик MySQL и связанных с ним проектов с 2004г. Работал в компаниях MySQL AB, Sun Microsystems и Oracle. В компании Percona участвовал в разработке Percona Server, XtraBackup и XtraDB Cluster. В настоящее время занимается проблемами производительности MySQL на современном оборудовании.
MySQL 5.7 предлагает огромное количество улучшений в производительности практически всех компонентов: InnoDB, секционирования, бэкапов, репликации, DDL и оптимизаторе запросов.
В этом докладе мы рассмотрим эти оптимизации подробно, а также поговорим о проблемах, которые остаются актуальными до сих пор, возможных методах их решения и планируемых дальнейших оптимизациях в MySQL 8.
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)Ontico
Зачем мы каждый раз изобретаем велосипед, только потому что можем? Корпоративные СХД существуют более 25 лет и умеют очень многое.
Защита данных, качество обслуживания, многоуровневое хранение и кэширование на флэш-памяти. Система хранения данных - это не только гигабайт по минимальной цене, но так же и гарантированная производительность и отказоустойчивость.
Вы узнаете, как можно обеспечить своим данным высокую степень защиты, значительно сократив время реализации проекта. Или, наоборот, убедитесь в том, что СХД корпоративного класса вашему проекту не подходят.
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...Badoo Development
DevConf 2016
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)
Что нужно знать разработчику приложений о базах данных вообще и PostgreSQL в частности? Может быть достаточно основ SQL? А может во всём положиться на ORM?
Несмотря на кажущуюся простоту работы с базами данных, для качественной реализации приложений необходимы знания по самому широкому кругу тем:
- Нормализация и денормализация данных
- Типы данных и ограничения целостности
- Хранимые процедуры и триггеры
- Аналитические функции и CTE
- Транзакции и уровни изоляции
- Материализованные представления и секционирование
- Типы индексов и как их использовать
- Методы доступа к таблицам и способы их соединения
- Сбор статистики и планы выполнения запросов
А нужны ли разработчикам знания об основах администрирования и архитектуре СУБД в целом? Нужно ли понимать что и для чего делает VACUUM?
Доклад в первую очередь адресован разработчикам и архитекторам приложений, но также будет интересен администраторам баз данных и всем “сочувствующим”.
Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)Ontico
- Что такое "чистая" архитектура приложений. Чем грозит "грязная" архитектура, чем от нее отличается "чистая" архитектура, и какой от нее профит.
- История появления VIPER.
- Идея VIPER. Как изменяется структура приложения при применении этого подхода.
- Опыт использования VIPER в Rambler&Co. Что мы изменили и добавили.
- Работа с VIPER на примере user story из реального приложения.
- Выводы: чем помогает VIPER и когда его использовать не стоит.
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Ontico
Мы создаем nodejs приложения, используя различные современные технологии, такие как Docker, Consul, pm2. Современный спектр решений настолько обширен, что сложно не заблудиться. Как же выбрать нужные вашему проекту технологии, чтобы успешно его запустить и поддерживать? Будут рассказаны истории и, конечно же, даны вредные советы :)
Как на nodejs пройти путь от Hello world приложения до распределённого решения, состоящего из микросервисов?
Мы пройдём жизненный цикл продукта, начав с простого приложения на nodejs. Научимся его правильно запускать и будем постепенно добавлять элементы, убирая при этом ненужные. Так к нашему приложению присоединится гипервизор, а само оно будет разделено на части, где каждая сущность будет управлять своей частью приложения.
Построив таким образом архитектуру на чистом nodejs, мы займёмся развитием приложения, добавим современные технологии и применим новые подходы к организации инфраструктуры. Запакуем приложение в Docker, попутно обсудим, зачем он нужен и что может дать. И, наконец, решим проблему поиска запущенных сервисов и отслеживания их статусов, используя Consul.
Обзор подходов к построению прикладных программных систем на Node.js, анализ и сравнение архитектурных принципов развертывания высоконагруженных прикладных облачных сервисов, масштабирование, тенденции и перспективы в разработке приложений, обзор проблем платформы Node.js и пути их решения.
DevConf 2016
"Новые возможности MySQL 5.7", Дмитрий Ленев (Oracle)
MySQL 5.7 наиболее свежая стабильная ветка СУБД MySQL. Данный доклад
посвящен новым функциональным возможностям появившимся в этой версии.
В частности мы поговорим о:
- родной поддержке JSON данных и операций с ними
- генерируемых столбцах
- улучшениях в системе безопасности
- многочисленных измененениях в InnoDB
- изменениях в репликации, таких как поддержка multi-source репликации.
- многом другом
Кроме того будут освещены возможности связанные с новым X плагином, который
стал доступен с релизом версии 5.7.12 в апреле этого года.
Обсудим использование MySQL как Document Store, новый протокол и X DevApi
для коннекторов, новый клиент MySQL Shell.
Доклад будет рассказывать о современных подходах проектирования ПО. Основной темой будет построение компонентных архитектур на примере архитектуры сцены 3D движка. Будет рассмотрен классический объектно-ориентированный подход организации сцены, его плюсы и минусы, и в качестве альтернативы будет показан компонентно ориентированный подход организации сцены. Доклад позволит слушателям понять, как разрабатывать сложные системы, которые впоследствии можно легко поддерживать.
Нейронечёткая классификация слабо формализуемых данных | Тимур ГильмуллинPositive Hack Days
1. Проблемы автоматизации классификации слабо формализуемых (нечётких) данных.
2. Нечёткие множества и нечёткие измерительные шкалы.
3. Моделирование нейронной сети для классификации данных.
4. Инструмент FuzzyClassificator и его внедрение в Компании.
5. Автоматизация классификации данных на базе TeamCity.
DevConf 2016
"Производительность MySQL: что нового?", Алексей Копытов
Алексей Копытов — разработчик MySQL и связанных с ним проектов с 2004г. Работал в компаниях MySQL AB, Sun Microsystems и Oracle. В компании Percona участвовал в разработке Percona Server, XtraBackup и XtraDB Cluster. В настоящее время занимается проблемами производительности MySQL на современном оборудовании.
MySQL 5.7 предлагает огромное количество улучшений в производительности практически всех компонентов: InnoDB, секционирования, бэкапов, репликации, DDL и оптимизаторе запросов.
В этом докладе мы рассмотрим эти оптимизации подробно, а также поговорим о проблемах, которые остаются актуальными до сих пор, возможных методах их решения и планируемых дальнейших оптимизациях в MySQL 8.
Велосипед уже изобретен. Что умеют промышленные СХД? / Антон Жбанков (Nutanix)Ontico
Зачем мы каждый раз изобретаем велосипед, только потому что можем? Корпоративные СХД существуют более 25 лет и умеют очень многое.
Защита данных, качество обслуживания, многоуровневое хранение и кэширование на флэш-памяти. Система хранения данных - это не только гигабайт по минимальной цене, но так же и гарантированная производительность и отказоустойчивость.
Вы узнаете, как можно обеспечить своим данным высокую степень защиты, значительно сократив время реализации проекта. Или, наоборот, убедитесь в том, что СХД корпоративного класса вашему проекту не подходят.
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессио...Badoo Development
DevConf 2016
"PostgreSQL для разработчиков приложений", Павел Лузанов, (Постгрес Профессиональный)
Что нужно знать разработчику приложений о базах данных вообще и PostgreSQL в частности? Может быть достаточно основ SQL? А может во всём положиться на ORM?
Несмотря на кажущуюся простоту работы с базами данных, для качественной реализации приложений необходимы знания по самому широкому кругу тем:
- Нормализация и денормализация данных
- Типы данных и ограничения целостности
- Хранимые процедуры и триггеры
- Аналитические функции и CTE
- Транзакции и уровни изоляции
- Материализованные представления и секционирование
- Типы индексов и как их использовать
- Методы доступа к таблицам и способы их соединения
- Сбор статистики и планы выполнения запросов
А нужны ли разработчикам знания об основах администрирования и архитектуре СУБД в целом? Нужно ли понимать что и для чего делает VACUUM?
Доклад в первую очередь адресован разработчикам и архитекторам приложений, но также будет интересен администраторам баз данных и всем “сочувствующим”.
Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)Ontico
- Что такое "чистая" архитектура приложений. Чем грозит "грязная" архитектура, чем от нее отличается "чистая" архитектура, и какой от нее профит.
- История появления VIPER.
- Идея VIPER. Как изменяется структура приложения при применении этого подхода.
- Опыт использования VIPER в Rambler&Co. Что мы изменили и добавили.
- Работа с VIPER на примере user story из реального приложения.
- Выводы: чем помогает VIPER и когда его использовать не стоит.
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
Расскажу зачем они вообще нужны. Пройдемся по технологиям и промоем им косточки. Рассмотрим достоинства и недостатки, а также где и когда лучше всего применять ту или иную ORM.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TKConf
Расскажу об организации процесса разработки Frontend в единый конвейер, чтобы увеличить скорость и минимизировать затраты с рисками.
Как организовать верстку макета по фантастичному макету дизайнера при этом не вогнав в когнитивный диссонанс результатом на Bootstrap.
Каким образом объединить воинствующие стороны: Frontend, Backend и дизайнеров.
Сегодня многие фреймворки, такие как Prism или Autofac, позволяют разработчику организовать модульную структуру приложения. При этом часто бывает непонятно, для чего ещё нужны модули, кроме как для пресловутой "красоты архитектуры".
В рамках доклада я расскажу о том, какие существуют подходы к организации модульной структуры, в каких фреймворках они реализованы и для решения каких задач дает преимущество каждый подход.
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Ontico
Доклад осветит вопросы устройства REST API для веб-приложений и мобильных клиентов, от которых требуется высокая производительность.
Проектирование высокопроизводительных REST API.
- Кто должен участвовать в проектировании.
- Как узнать, что оптимизировать.
- Как измерять производительность REST API.
Паттерны и антипаттерны.
- Почему pagination - это плохо, и на что лучше заменить.
- Проблема N+1 и как с ней бороться.
- Бесполезные данные - как обнаружить и уничтожить.
- Как не ломать кэширование на клиенте.
- Эффективная работа с интерфейсами "мастер-детали".
Кэширование.
- Три слоя кэширования.
- Самый быстрый запрос - тот, которого не было. Как увеличить их количество.
- Экономия трафика.
- Исключение ненужных вычислений.
- Подходы к инвалидации кэша.
Приемы оптимизации работы с API на клиенте.
- Параллельные запросы.
- Эффективный разбор данных.
- In-memory DB на клиенте.
- Стратегии кэширования на клиенте.
Секционный доклад
Экскурс в мир WEB разработки
Дмитрий Лаабе
Генеральный директор и основатель рекрутинговой компании IT-Доминанта
Технический директор и программист
портала Айти-Событие
Россия. Санкт-Петербург
http://it-sobytie.ru/events/3120
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
В докладе мы рассмотрим этапы развития приложения, начиная от монолитного Web приложения, до распределенной платформы по управлению бизнес-процессами. Покажем этапы развития, задачи и вызовы, которые возникали на каждом их них. Проанализируем различные аспекты, влияющие на развитие архитектуры, такие как бизнес-требования, технологические тренды и возможные ограничения.
Юрий Василевский «Автоматизация в 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), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
Similar to И снова разработка под iOS. Павел Тайкало (20)
5. Данные пользователя
Как хранить?
• Как пришли, так и храним ;)
• JSON/XML
• Property List's
• База данных (sqlite3)
• NSCoding (Key-Value archiving)
• Свой супер-формат*
14. Представление данных
NSDictionary
• Нечитабельный код
• Сложно отлавливать ошибки
• Не известно, какие поля еще могут быть
• Не известны типы полей
• Избыточные данные
16. Представление данных
NSObject
User * user;
UILabel * nameLabel;
nameLabel.text = user.name;
ageLabel.text =
[NSString stringWithFormat:@"%d",user.age];
17. Представление данных
NSObject
• Красивый код
• Всегда известна модель
• Подсветка синтаксиса*
• Всегда известны типы полей
• Проверка на этапе компиляции
23. Кэш в приложении
О чем надо всегда подумать
• Сколько занимает?
• Когда чистить?
• Правила кэширования для ресурсов
• Где хранить?
• Сколько уровней?
• Не забивать все пространство кэшем
24. Кэш в приложении
Есть стандартные решения
• NSURLCache
• TTURLCache (Three20)
• RestKit
• Стандартные реализации, в основном
кэшируют исключительно в памяти
25. Данные в приложении
Виды данных (условно)
• Данные пользователя
• Настройки
• Кэш
• Защищенные данные
27. Данные в приложении
В итоге
• Выбираем формат
• Стараемся избегать NSDictionary - представлений
• Кэшируем с умом
• Секретные данные - храним в KeyChain
29. Проектирование User
Flow
О ролях
• Дизайнер думает о дизайне
• PM думает о проекте
• FM думает о финансах
• Программист думает обо всем по чуть-чуть ;)
30. Проектирование User
Flow Читаем ТЗ, Смотрим на дизайн
Вспоминаем про
• Model
• View
• Controller
31. Проектирование User
Flow Читаем ТЗ, Смотрим на дизайн
Всегда можно сделать по-разному.
Всегда нужно стараться быть на шаг впереди желаний заказчика
32. Проектирование User
Flow Читаем ТЗ, Смотрим на дизайн
Стараемся выделять части, которые можно будет потом
повторно использовать
33. Проектирование User
Flow Читаем ТЗ, Смотрим на дизайн
Не пытаемся вместить все на один экран.
Разделяем и властвуем
35. Проектирование User
Flow
Еще немного мыслей
• Model - View - Controller
• Подробные детали
• UINavigationController
• Независимые части приложения
• UITabBarController
36. Проектирование User
Flow
Еще немного мыслей
• жизненный цикл UIViewController
• данные - в модели
• данные НЕ в UIView
• UIViewController отвечает за свою задачу
38. Проектирование User
Flow
И еще немного мыслей
• Решите, кто хранит данные
• Каким образом другие доступаются к этим данным
• Делегирование помогает для переиспользовании кода
40. Работа с сетью
Основы
• Всегда помним про задержки
• Мы - на GbEthernet, пользователь на GPRS
• Уменьшаем необходимость
последовательных запросов
• Количество запросов vs Размер запросов
• Сервер может и не ответить
• Порядок ответов от сервера
41. Работа с сетью
Основы
• Используем доступные асинхронные API
• NSURLConnection
• ASIHTTPRequest
• TTURLRequest
• Помним про кэширование
42. Работа с сетью
UIKit
С UIKit всегда работаем из главного потока
if ([NSThread isMainThread]) {
[self updateView];
} else {
[self performSelectorOnMainThread:
@selector(updateView)
withObject:nil
waitUntilDone:NO];
}
43. Работа с сетью
Parsing и иже с ним
"Тяжелые" задачи необходимо выполнять в
фоне.
• Parsing
• Сохранение в файловую систему
• Долгие, заумные вычисления смысла
жизни
44. Работа с сетью
Reachability
• Позволяет проверить состояние сети
• Позволяет следить за изменением
состояния сети
• Для приложений, активно использующих
сетевой трафик - обязателен
48. Автоматическая сборка
Зачем, если для этого надо
• Изучить xcodebuild
• Перелопатить Интернет
• Разобраться с профилми и сертификатами
• Все настроить
• Помочь другим настроить
• И оно не будет работать,я уже пробовал
(с)
49. Автоматическая сборка
Зачем?
• Время - главный ресурс
• Возможность собрать и закачать
приложение на телефон без Xcode
• Можно заняться полезным делом, а не по
пять раз на день заливать на девайс
тестерам разные приложения разных версий
• Выигрыш в больших командах
50. Автоматическая сборка
Кто?
• Разработчик на базе шаблона создает
файлы конфигурации для проекта
• Для каждого варианта сборки разработчик
предоставляет provisioning profile
• Все на основе шаблонов
• PM/Tester запускают необходимые им
скрипты либо закачивают с HTTP-server'a
51. Автоматическая сборка
Как?
• xcodebuild
• создание IPA-файла
• создание plist файла
• выкладывание на сервер
• все самописное
• есть и другие варианты (Jenkins, да и
Google)