Александр Сычев "Разделяй и властвуй: CQRS в iOS"IT Event
В сложных мобильных приложениях, работающих с большим объемом постоянно изменяющихся данных, задача их синхронизации и своевременного обновления в разных модулях становится нетривиальной. В своем докладе я предлагаю отойти от привычных подходов и применить практику разделения ответственности на команды и запросы, предполагающую использование разных моделей для обновления и чтения информации. Я продемонстрирую области, в которых этот подход поможет мобильным разработчикам эффективно развивать их приложения. Слушатели узнают о сложностях, с которыми им придется столкнуться при его адаптации и о том, как их следует решать.
Рассказ будет интересен опытным разработчикам, сталкивающимся в своей практике с задачей развития высокопроизводительных приложений со множеством потоков данных.
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нёмFrontDays
От Flux к Redux. Расскажу о том, как и почему появилась методолгия Flux и какие проблемы она решила. А также почему стоит перейти или как минимум попробовать в деле Redux.
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Yandex
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Я.Субботник в Челябинске в рамках конференции UWDC
О докладе:
Все, что вы хотели узнать про одностраничное ajax-приложение Яндекс.Почта, но боялись спросить. Изнанка фронтенда, загрузка данных, обновление страниц и взаимодействие с пользователями без регистрации, без смс. Бонус-трек: как работают сторонние приложения в рамках одной платформы.
Александр Сычев "Разделяй и властвуй: CQRS в iOS"IT Event
В сложных мобильных приложениях, работающих с большим объемом постоянно изменяющихся данных, задача их синхронизации и своевременного обновления в разных модулях становится нетривиальной. В своем докладе я предлагаю отойти от привычных подходов и применить практику разделения ответственности на команды и запросы, предполагающую использование разных моделей для обновления и чтения информации. Я продемонстрирую области, в которых этот подход поможет мобильным разработчикам эффективно развивать их приложения. Слушатели узнают о сложностях, с которыми им придется столкнуться при его адаптации и о том, как их следует решать.
Рассказ будет интересен опытным разработчикам, сталкивающимся в своей практике с задачей развития высокопроизводительных приложений со множеством потоков данных.
FrontDays #1. Алексей Ульянов, React.js и методологии разработки на нёмFrontDays
От Flux к Redux. Расскажу о том, как и почему появилась методолгия Flux и какие проблемы она решила. А также почему стоит перейти или как минимум попробовать в деле Redux.
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Yandex
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Я.Субботник в Челябинске в рамках конференции UWDC
О докладе:
Все, что вы хотели узнать про одностраничное ajax-приложение Яндекс.Почта, но боялись спросить. Изнанка фронтенда, загрузка данных, обновление страниц и взаимодействие с пользователями без регистрации, без смс. Бонус-трек: как работают сторонние приложения в рамках одной платформы.
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...Yandex
При разработке интерфейсов для API, неизбежно сталкиваешься с несколькими проблемами. Во-первых, мы не знаем заранее, как будет выглядеть сервис или сайт со встроенными Картами. Важно обеспечить его будущим пользователям наилучший результат — даже если у разработчиков, использующих наш API, вообще нет в команде дизайнера. Во-вторых, проблемы могут возникнуть при адаптации дизайна для разных устройств и размеров экранов. В докладе мы поговорим о том, как и с помощью чего делаются прототипы, и зачем они нужны разработчикам и дизайнерам. А самое главное, разберёмся с адаптивным поведением элементов управления картой, рассмотрим схему работы менеджера контролов. Также мы кратко обсудим другие варианты реализации этого механизма и объясним, почему они не подошли нам.
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...solit
Виктор Русакович, Минск, Web-developer c 6-ти летним опытом разработки, компания GP Software.travel
«Реактивный JavaScript. Победа над асинхронностью и вложенностью». Development секция. Для разработчиков. Высокий уровень подготовки.
«Непрерывная интеграция сложного проекта. Кто всё сломал?». IT секция. Agile отделение. Для всех уровней подготовки.
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
2 июля 2011, Я.Субботник в Екатеринбурге
Михаил Давыдов "Масштабируемые JavaScript-приложения"
О докладе:
Проектирование масштабируемых JavaScript-приложений уровня Яндекс.Почты.
Чем отличается сайт от JavaScript приложения? Какие проблемы могут возникнуть при разработке многокомпонентных приложений? Какую архитектуру нужно заложить, чтобы приложение могло легко развиваться?
Scala-библиотека Slick прекрасно зарекомендовала себя как развитый и удобный инструмент работы с базами данных. Поддерживаются и простейшие текстовые SQL-запросы, и строго типизированные join’ы нескольких таблиц. Для построения запросов Slick предоставляет DSL, код на котором выглядит как обработка коллекций. Причем простые подзапросы могут использоваться для конструирования более сложных.
Slick имеет весьма любопытную внутреннюю архитектуру, которая делает возможным не только продвинутое использование, но и расширение библиотеки несколькими способами, о которых и пойдет речь в докладе.
(see also video: https://youtu.be/9n1zzwOGado)
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...Yandex
При разработке интерфейсов для API, неизбежно сталкиваешься с несколькими проблемами. Во-первых, мы не знаем заранее, как будет выглядеть сервис или сайт со встроенными Картами. Важно обеспечить его будущим пользователям наилучший результат — даже если у разработчиков, использующих наш API, вообще нет в команде дизайнера. Во-вторых, проблемы могут возникнуть при адаптации дизайна для разных устройств и размеров экранов. В докладе мы поговорим о том, как и с помощью чего делаются прототипы, и зачем они нужны разработчикам и дизайнерам. А самое главное, разберёмся с адаптивным поведением элементов управления картой, рассмотрим схему работы менеджера контролов. Также мы кратко обсудим другие варианты реализации этого механизма и объясним, почему они не подошли нам.
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...solit
Виктор Русакович, Минск, Web-developer c 6-ти летним опытом разработки, компания GP Software.travel
«Реактивный JavaScript. Победа над асинхронностью и вложенностью». Development секция. Для разработчиков. Высокий уровень подготовки.
«Непрерывная интеграция сложного проекта. Кто всё сломал?». IT секция. Agile отделение. Для всех уровней подготовки.
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
2 июля 2011, Я.Субботник в Екатеринбурге
Михаил Давыдов "Масштабируемые JavaScript-приложения"
О докладе:
Проектирование масштабируемых JavaScript-приложений уровня Яндекс.Почты.
Чем отличается сайт от JavaScript приложения? Какие проблемы могут возникнуть при разработке многокомпонентных приложений? Какую архитектуру нужно заложить, чтобы приложение могло легко развиваться?
Scala-библиотека Slick прекрасно зарекомендовала себя как развитый и удобный инструмент работы с базами данных. Поддерживаются и простейшие текстовые SQL-запросы, и строго типизированные join’ы нескольких таблиц. Для построения запросов Slick предоставляет DSL, код на котором выглядит как обработка коллекций. Причем простые подзапросы могут использоваться для конструирования более сложных.
Slick имеет весьма любопытную внутреннюю архитектуру, которая делает возможным не только продвинутое использование, но и расширение библиотеки несколькими способами, о которых и пойдет речь в докладе.
(see also video: https://youtu.be/9n1zzwOGado)
31 мая – 1 июня в Киеве состоялась конференция HOTCODE 2013.
Сергей Тепляков, эксперт Luxoft Training по .Net, С++ и архитектуре приложений, выступил с докладом «C# Deep Dive».
Тезисы доклада:
«Когда-то в далеком 2002-м году язык C# был прост, как 2 копейки. Но у любого «живого» языка есть одна особенность, приятная и неприятная одновременно — в язык начинают добавляться новые возможности, чтобы наши с вами типовые задачи решались проще и эффективнее. Но с каждой новой возможностью появляются и свои тонкости, незнание которых может лишить столь нужных в нашей жизни конечностей, причем иногда самым изощренным образом. А поскольку язык C# развивается очень динамично, то за время жизни на его просторах появилось много маленьких грабелек, которые мы с вами и научимся обходить ;)».
анализ кода: от проверки стиля до автоматического тестированияRuslan Shevchenko
Рассказ о истории и использовании в реальной жизни инструментов анализа кода на основе JavaChecker и TermWare
Сопустствующий текст: http://datacenter.gradsoft.ua/files/articles/OSDN2011/
В рамках данного выступления вас ждут:
* рассказ о полезных и интересных вещах из Boost
* новости с передовиц разработки Boost и о новинках ожидаемых в следующих версиях
* что из Boost готовится к переезду в новый стандарт С++
* как экспериментировать с Boost, имея под рукой только браузер
* что людям не нравится в Boost и как с этими людьми бороться (-:
4. “we believe that the essential material to be
addressed by a subject at this level is not the
syntax of particular programming-language
constructs, nor clever algorithms for
computing particular functions efficiently, nor
even the mathematical analysis of
algorithms and the foundations of
computing, but rather the techniques used to
control the intellectual complexity of
large software systems.”
Structure and Interpretation of Computer Programs
16. События оборачиваются в потоки,
которые возможно
• Фильтровать
• Объединять (merge)
• Комбинировать (zip)
• Тротлить (throttle)
• Преобразовывать
• Буферизировать
• и так далее...
17. Сервис подсказок (RxJS)
/* Only get the value from each key up */var keyups =
Rx.Observable.fromEvent(input, 'keyup')
.select(function (e) {
return e.target.value;
})
.where(function (text) {
return text.length > 2;
});/* Now throttle/debounce the input for 500ms */
var throttled = keyups
.throttle(500 /* ms */);/* Now get only distinct values,
so we eliminate the arrows */
var distinct = keyups
.distinctUntilChanged();
26. Подписчик - тот же observable, у
которого значение всегда
соответствует значению заданной
функции, аргументы которой другие
observable.
27. Computed
var x = observable(0);
var y = observable(0);
var r = computed(function() {
return Math.sqrt(x()*x() + y()*y());
});
28. Computed. Обратная операция
var r = computed({
read: readHandler,// previous
write: function(r) {
if (r >= 0) {
x(r*Math.cos(Math.PI/4));
y(r*Math.sin(Math.PI/4));
} else {
throw new Error(‘Не может быть отрицательным’);
}
}
});
29. Computed. Пример из жизни
var isFormValid = computed(function() {
return (login().length > 2) && (password().length > 5);
});
var canSend = computed(function() {
return !messageSent() && !loading() && isFormValid();
});
30. Observable коллекции – скажут
подписчикам, что изменился
набор её элементов (а не сами
элементы)