MVVM в WinForms – DevExpress Way (теория и практика)GoSharp
Из доклада вы узнаете о применении популярного паттерна MVVM для упрощения и ускорения процесса разработки desktop-приложений.
Будут рассмотрены общие проблемы этого паттерна и решения которые мы предлагаем в нашем кроссплатформенном MVVM фреймворке. Упор будет сделан на практические аспекты и техники в условиях использования платформы WinForms и контролов от DevExpress.
MVVM в WinForms – DevExpress Way (теория и практика)GoSharp
Из доклада вы узнаете о применении популярного паттерна MVVM для упрощения и ускорения процесса разработки desktop-приложений.
Будут рассмотрены общие проблемы этого паттерна и решения которые мы предлагаем в нашем кроссплатформенном MVVM фреймворке. Упор будет сделан на практические аспекты и техники в условиях использования платформы WinForms и контролов от DevExpress.
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey Rebrov
Как-то так происходит, что “на 10 девчонок по статистике 9 ребят”, а точнее на группу из 5-7 разработчиков – 1 тестировщик. Или его нет совсем. Так что очень часто приходится и код писать, и тестировать, а дата релиза все ближе и ближе.
В тех случаях, когда мы пишем веб-приложение, помочь в нашей нелегкой судьбе может бодрящий микс из Selenium и TestNG... Как это сделали мы, какие потом получили выводы и результаты — все это я и хочу рассказать и показать
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey Rebrov
Как-то так происходит, что “на 10 девчонок по статистике 9 ребят”, а точнее на группу из 5-7 разработчиков – 1 тестировщик. Или его нет совсем. Так что очень часто приходится и код писать, и тестировать, а дата релиза все ближе и ближе.
В тех случаях, когда мы пишем веб-приложение, помочь в нашей нелегкой судьбе может бодрящий микс из Selenium и TestNG... Как это сделали мы, какие потом получили выводы и результаты — все это я и хочу рассказать и показать
TК°Conf. 10 проблем автоматизации UI и их решение с помощью JDI. Роман Иовлев.TKConf
Автоматизация тестирования является важной и не неотъемлемой частью разработки современного ПО, но без правильного подхода не редко случается, что написание автотестов занимает слишком много времени, а их поддержка может требовать больше затрат чем просто ручная регрессия. Почему же так происходит и как этого избежать? В этой презентации, базируясь на своем опыте работы во множестве проектов, я хочу рассказать об основных ошибках и проблемах, с которыми приходится сталкиваться автоматизаторам и что нужно сделать чтобы их избежать (на примере фреймворка для автоматизации JDI)
Kleshnin A. PostGIS-open solution for spatial data-databaseAnton Biatov
PostGIS - open solution for storing and processing of spatial data in the databaseAlexander Kleshnin, Kharkiv, Intetics Co
Презентация с семинара "ГИС и заповедные территории - 2013" http://pzf.gis.kh.ua
ASP.NET MVC за пределами Hello World. Дятлов Александр D2D Just.NETDev2Dev
ASP.NET MVC простой и распространённый инструмент. Но строить на его основе большое веб-приложение не так просто. Туториалы не раскрывают проблем возникающих при росте проекта. Зачастую, изначально стройная архитектура размазывается с каждой следующей итерацией.
Я хочу поделиться своим опытом. Рассказать об основных проблемах и предложить выбранные мной решения.
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020OdessaJS Conf
How to develop web applications using Vue.js and implement best practices from the first day of development. Consider practical recommendations for using Vue.js, based on personal experience, thoughtful reading of documentation and analysis of best practices suggested by other developers. During the talk, you will learn what you can implement today in your development practice to make your web applications on Vue.js more productive and the development process more efficient.
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...Yandex
При разработке интерфейсов для API, неизбежно сталкиваешься с несколькими проблемами. Во-первых, мы не знаем заранее, как будет выглядеть сервис или сайт со встроенными Картами. Важно обеспечить его будущим пользователям наилучший результат — даже если у разработчиков, использующих наш API, вообще нет в команде дизайнера. Во-вторых, проблемы могут возникнуть при адаптации дизайна для разных устройств и размеров экранов. В докладе мы поговорим о том, как и с помощью чего делаются прототипы, и зачем они нужны разработчикам и дизайнерам. А самое главное, разберёмся с адаптивным поведением элементов управления картой, рассмотрим схему работы менеджера контролов. Также мы кратко обсудим другие варианты реализации этого механизма и объясним, почему они не подошли нам.
Как автоматизировать тестирование WebApi, даже если проект завязан на внешние сервисы. Как тестировать WebApi-сервер без постоянных деплоев, как дебажить во время прогона интеграционных тестов.
Видео https://www.youtube.com/watch?v=fuS1IaLSGV0
Продвинутое использование ActiveRecord в Yii2Paul Klimov
Запись лекции "Продвинутое использование ActiveRecord в Yii2" от 24.09.2016, проходившей в Киеве в "Projector"
http://prjctr.com.ua/events/yii2-conference.html
Runtime compilation and code execution in groovyVitebsk Miniq
Презентация подготовлена по материалам выступления Романа Москаленко на витебском Miniq #27, который был проведен 30 июля 2020:
https://community-z.com/events/miniq-vitebsk-27
Про доклад:
Данное выступление будет посвящено тому, какие инструменты язык Groovy предоставляет для компиляции и выполнения кода в runtime, как можно их использовать, а также какие плюсы и минусы есть у такого подхода.
Презентация подготовлена по материалам выступления Анатолия Таразевича на витебском Miniq #27, который был проведен 30 июля 2020:
https://community-z.com/events/miniq-vitebsk-27
Про доклад:
Оценки, как правило, являются необходимым злом в разработке программного обеспечения. К сожалению, люди склонны считать, что написание нового программного обеспечения - это все равно что строить дом или ремонтировать автомобиль, и что подрядчик или участвующий в нем механик должны быть в состоянии обеспечить надежную и точную оценку обьема работы и сроков её выполнения. Но это не всегда так и для того чтобы этого достичь понимания в этом вопросе - важно чтобы все люди участвующие в процессе разработки, будь то разработчик или бизнесс-аналитик, понимали главные особенности и законы эстимаций об этом мы и поговорим.
Презентация подготовлена по материалам выступления Татьяны Франк на витебском Miniq #28, который был проведен 24 cентября 2020:
https://community-z.com/events/miniq-vitebsk-28
Про доклад:
Выпуск новых релизов Elastic Stack происходит ежеквартально и каждый релиз приносит новые функции и изменения в UX.К примеру, в версии 7.9 Elastic Enterprise Search представляет бесплатный продукт Workplace Search. Кроме того, мы выпускаем Elastic Agent (beta), который упростит загрузку данных, а бесплатная защита от вредоносного ПО теперь встроена в Elastic Security.Во время встречи мы пройдем по основным изменения в релизах 7.7 - 7.9.
Презентация подготовлена по материалам выступления Александра Бармина на витебском Miniq #26, который был проведен 25 июня 2020 года:
https://community-z.com/events/miniq-qa .
Про доклад:
Spring Framework - невероятно мощный и удобный инструмент для разработки приложений на Java. Немало решений уже создано на его основе, да и многие новые также создаются на этой платформе.Spring Framework предоставляет удобный инструментарий не только для разработки, но и для тестирования ПО. В докладе мы рассмотрим инструменты, которые предлагает Spring для тестирования отдельных компонентов, написания интеграционных и контрактных тестов, а также рассмотрим возможность совместного использования Spring и TestContainers.
Семантический поиск - что это, как работает и чем отличается от просто поискаVitebsk Miniq
Презентация подготовлена по материалам выступления Филиппа Ерёменко на витебском Miniq #26, который был проведен 25 июня 2020 года:
https://community-z.com/events/miniq-qa .
Про доклад:
Многие сталкивались (или нет) с поисковыми движками типа Solr, Elasticsearch, AWS/Google решениями и т.д. на разных уровнях. Часто бывает так, что стандартный поиск не дотягивает до желаемого качества что бы вы ни делали. Почему не получается сделать как у Google или даже лучше? Что есть у них, чего нет у нас? Ответ – семантический поиск. Что это такое, чем отличается от стандартного подхода любого поискового движка и как это делается и как это делаем мы – об этом мой доклад.
Локализационное тестирование - это не только переводVitebsk Miniq
Презентация подготовлена по материалам выступления Павла Климченко на витебском Miniq QA Day, который был проведен 28 мая 2020 года:
https://community-z.com/events/miniq-qa .
Про доклад:
В рамках выступления "Локализационное тестирование - это не только перевод" я расскажу об этом интересном виде тестирования, который нередко обделяют вниманием. Поясню разницу между глобализацией, интернационалией и локализацией.
Также я поделюсь деталями как можно быстро подготовить приложение к переводу на разные локали, на что должен обращать внимание QA-инженер в рамках тестирования помимо перевода и обязательно приведу примеры как происходит тестирование локализации у нас проекте.
ISTQB Сертификация тестировщиков: быть или не быть?Vitebsk Miniq
Презентация подготовлена по материалам выступления Евгения Семенюка на витебском Miniq QA Day, который был проведен 28 мая 2020 года:
https://community-z.com/events/miniq-qa .
Про доклад:
Нужна ли сертификация тестировщику? Этот вопрос мучает многих и холивары на эту тему не останавливаются. В рамках этого доклада мы разберём все плюсы, минусы и мифы ISTQB сертификации, поговорим о том, что нужно знать на каждом уровне и так ли она полезна, как о ней говорят.
Презентация подготовлена по материалам выступления Владислава Плясова на витебском MiniQ#23, который был проведен 27 февраля 2020 года:
https://communities.by/events/miniq-vitebsk-23 .
Про доклад:
Большинство нас слышало про такую технологию как GraphQL, но кто слышал про Apollo GraphQL Federation?
В своем докладе я бы хотел освятить следующие темы:
- GraphQL. Базовые понятия.
- Apollo Gateway. Что это за зверь и как им пользоваться. Проблема, которую он решает.
- Как создать свою "федерацию" из нескольких GraphQL сервисов.
- Какие плюшки предоставляет нам Apollo Gateway со старта.
- Ваши вопросы.
Презентация подготовлена по материалам выступления Екатерины Тарасевич на витебском MiniQ#23, который был проведен 27 февраля 2020 года:
https://communities.by/events/miniq-vitebsk-23 .
Про доклад:
1. Что такое функциональное тестирование
2. Фазы процесса тестирования
3. Типы тестирования
4. Знания и навыки необходимые тестировщику
Презентация подготовлена по материалам выступления Михаила Ковалёва на витебском MiniQ#22, который был проведен 30 января 2020 года:
https://communities.by/events/miniq-vitebsk-22 .
Про доклад:
На выступлении мы обсудим здоровый кроулинг сайтов. Здоровый не потому, что большой, а потому что правильный.
О том, что такое SEO, кроулинг, и как кроулинг может помочь улучшить SEO. Области применения кроулинга, и способы его реализации.
Презентация подготовлена по материалам выступления Юрия Бондаренко на витебском MiniQ#20, который был проведен 14 ноября 2019:
https://vk.com/miniq20;
https://communities.by/events/miniq-vitebsk-20.
Про доклад:
Я расскажу о том, что такое JAMStack и генераторы статичных сайтов, зачем они нужны, в чем преимущества и недостатки по сравнению с обычными сайтами. Плюс история реального переезда контент-проекта с CMS на JAMStack.
Презентация подготовлена по материалам выступления Ксении Перепечиной на витебском MiniQ#19, который был проведен 10 октября 2019:
https://vk.com/miniq19;
https://communities.by/events/miniq-vitebsk-19.
Про доклад:
Мы побеседуем про Infrastructure As A Code на примере использования AWS Cloudformation и Serverless Application Model, про особенности этих сервисов и некоторые практические полезные советы по их использованию.
Learning Intelligence: the story of mineVitebsk Miniq
Презентация подготовлена по материалам выступления Михаила Ковалёва на витебском MiniQ#18, который был проведен 29 августа 2019:
https://vk.com/miniq18;
https://communities.by/events/miniq-vitebsk-18.
Про доклад:
Когда учеба отнимает кучу времени, а вместо вечернего отдыха приходится пялиться в скучный учебник, и в результате твой ментор говорит: “Надо почитать еще!”. Бррр! Я верю, что путь к тому, чего я так хочу, к тому, что мне очень нравится, тоже должен приносить удовольствие. А, собственно, почему нет? Попробуем ответить на вопрос: как эффективно учиться и не страдать от этого.
Презентация подготовлена по материалам выступления Александры Какойченковой на витебском MiniQ#17, который был проведен 25 июля 2019:
https://vk.com/miniq17;
https://communities.by/events/miniq-vitebsk-17.
Про доклад:
В рамках данного доклада вы узнаете о том, как связаны между собой такие жизненно важные в современном мире сферы, как медицина и программирование, и каким образом решение задач анализа больших данных может изменить подход к некоторым вопросам современной медицины.
Использование AzureDevOps при разработке микросервисных приложенийVitebsk Miniq
Презентация подготовлена по материалам выступления Игоря Сычёва на витебском MiniQ#17, который был проведен 25 июля 2019:
https://vk.com/miniq17;
https://communities.by/events/miniq-vitebsk-17.
Про доклад:
Мы реализуем CI/CD на базе Azure DevOps для нашего приложения в МикроСервисном стиле, которое хостим на Azure Kubernetes Services на протяжении более чем 6 месяцев. Мы хотим поделиться нашими успехами и ошибками в CI/CD с разработчиками и DevOps инженерами. Мы продемонстрируем наши подходы и реализации к Build/Release, созданию сред тестирования с использованием ARM шаблонов, согласования установки приложения на рабочие среды и эволюцию этих процессов со временем.
Distributed tracing system in action. Instana Tracing.Vitebsk Miniq
Презентация подготовлена по материалам выступления Владислава Плясова на витебском MiniQ#16, который был проведен 20 июня 2019:
https://vk.com/miniq16;
https://communities.by/events/miniq-vitebsk-16.
Про доклад:
В сложных и многоуровневых микросервисных системах порой появляется задача в анализе взаимодействия сервисов между собой: время обработки, передача запросов на другие сервисы, типы запросов и т.д. Т.е. сбор данных о всех операциях, которые выполняются в системе.
Доклад посвящен распределенной трассировки в микросервисных системах.
Обзор основных элементов OpenTracing и отношения между ними. Как пользоваться Instana OpenTracing и Instana SDK в системах с использованием фреймворка Jersey.
Обзор Instana GUI и как настроить Instana Agent.
Презентация подготовлена по материалам выступления Максима Дадеркина на витебском MiniQ#15, который был проведен 30 мая 2019:
https://vk.com/miniq15;
https://communities.by/events/miniq-vitebsk-15.
Про доклад:
В своей практике я сталкивался с различными задачами, и одним из самых сложных и интересных классов задач для меня был и остаётся класс задач, связанный с проблемами с памятью. Периодически сталкиваясь с такими задачами, я постоянно задавал себе вопрос: а можно ли писать код как в таких языках, как Python, Java, JavaScript или C#, но при этом иметь автоматическую сборку мусора (а ещё лучше – не иметь её вообще)?
В качестве ответа, я хочу познакомить вас с некоторыми концепциями, которые однозначно ответили на мой вопрос, а также легли в основу относительно молодого языка Rust.
Styled-components. Что? Когда? И зачем?Vitebsk Miniq
Презентация подготовлена по материалам выступления Даниила Янковского на витебском MiniQ#15, который был проведен 30 мая 2019:
https://vk.com/miniq15;
https://communities.by/events/miniq-vitebsk-15.
Про доклад:
Введение в CSS-in-JS. На примере styled-components будет рассказано о преимуществах данного подхода в React приложениях, сравнительный анализ приложений на CSS, а также плюсы/минусы. В режиме реального времени напишем приложение с использованием styled-components.
Презентация подготовлена по материалам выступления Дмитрия Чернявского и Ярослава Савченко на витебском MiniQ#14, который был проведен 25 апреля 2019:
https://vk.com/miniq14;
https://communities.by/events/miniq-vitebsk-14.
Про доклад:
Доклад о том, как уметь распознавать и избегать конфликтов с компанией, коллегами и своими ожиданиями.
Презентация подготовлена по материалам выступления Юрия Бондаренко на витебском MiniQ#14, который был проведен 25 апреля 2019:
https://vk.com/miniq14;
https://communities.by/events/miniq-vitebsk-14.
Про доклад:
В докладе я расскажу о том, как писать стили на чистом "ванильном" CSS. Мы рассмотрим возникающие перед вертальщиком практические задачи и способы их решения.
5. Getting Started with MyBatis
class Person {
Integer id;
String name;
}
<resultMap type="Person" id="PersonMap">
<id property="id" column="person_id"/>
<result property="name" column="person_name"/>
</resultMap>
6. Getting Started with MyBatis
<select id="getPersonById" parameterType="int"
resultType= "Person">
select * from person where person_id=#{id}
</select>
public Person getById(Integer id) {
return session.selectOne("getPersonById", id);
}
9. $ vs #
• ${id} вставляет подстроку
select * from ${schema}.users
-> select * from secur.users
• #{id} создает параметризованный запрос
select * from secur.users where id=#{id}
-> select * from secur.users where id=#{id}
10. Где использовать $?
• Где нельзя использовать параметр
• select * from users order by ${field}
• Для конфигурационных настроек
• select * from ${schema}.users
• Одна константа на всё приложение
<configuration>
<properties>
<property name="schema" value="secur"/>
</properties>
</configuration>
13. Аудит: Общий предок
public class AuditableEntity {
private String createdByUser;
private String updatedByUser;
private Date createdDatetime;
private Date updatedDatetime;
private int version;
}
19. Оптимистическая блокировка
<update id="updatePerson">
update person set
name = #{name},
record_version = record_version + 1
where record_version = #{record_version}
</update>
int updated = session.update(“updatePerson”, person);
if (updated == 0)
throw new OptimisticLockingFailureException();
22. Сортировка
• Необходимо знать маппинг
• ПолеОбъекта -> СтолбецТаблицы
• Уже есть готовый маппинг
<resultMap type="Person" id="PersonMap">
<id property="id" column="person_id"/>
<result property="name" column="person_name"/>
</resultMap>
23. Сортировка
MappedStatement ms = config.getMappedStatement(statement);
for (ResultMapping m :
ms.getResultMaps().get(0)
.getPropertyResultMappings()) {
if (m.getProperty().equals(userEnteredSortField))
return m.getColumn();
}