Рано или поздно возникает необходимость в собственных инструментах по разным причинам: либо не хватает готовых, либо есть какая-то особенность в проекте. Разработка инструментов, работающих в браузере, является непростой задачей. Самое сложное — чтобы они умели работать удаленно, вне страницы. Это многих пугает — нужно много сделать и во многом разобраться. Но если большая часть проблем уже решена, и можно сосредоточиться лишь на основной функции инструмента? Что если такие инструменты смогут работать в произвольном WebView, будь оно встроено в браузер, редактор или другое приложение на любом устройстве? Доклад про удалённые инструменты: какие есть сложности и как их обойти, как перестать бояться и начать делать инструменты под свои задачи и технологический стек.
Нещодавно відбувся Online TechTalk “Flutter Mobile Development”!
Під час заходу спікери розібрали, що таке Flutter, та навіщо використовувати саме його. Також поговорили про основні принципи та підходи до розробки на Flutter, його перспективи та найпопулярніші аплікації зроблені на ньому.
Деталі та відео заходу: https://bit.ly/3mKszBR
Рано или поздно возникает необходимость в собственных инструментах по разным причинам: либо не хватает готовых, либо есть какая-то особенность в проекте. Разработка инструментов, работающих в браузере, является непростой задачей. Самое сложное — чтобы они умели работать удаленно, вне страницы. Это многих пугает — нужно много сделать и во многом разобраться. Но если большая часть проблем уже решена, и можно сосредоточиться лишь на основной функции инструмента? Что если такие инструменты смогут работать в произвольном WebView, будь оно встроено в браузер, редактор или другое приложение на любом устройстве? Доклад про удалённые инструменты: какие есть сложности и как их обойти, как перестать бояться и начать делать инструменты под свои задачи и технологический стек.
Нещодавно відбувся Online TechTalk “Flutter Mobile Development”!
Під час заходу спікери розібрали, що таке Flutter, та навіщо використовувати саме його. Також поговорили про основні принципи та підходи до розробки на Flutter, його перспективи та найпопулярніші аплікації зроблені на ньому.
Деталі та відео заходу: https://bit.ly/3mKszBR
[RU] Connecting AutoCAD and Python (by Alex Bausk)Alexander Bausk
(Russian) Future of Engineering Automation: Building a Distributed Application to Connect AutoCAD and Python
Speech given at Autodesk University 2014.
А. Бауск. "Создание распределенного приложения на примере AutoCAD и Python". Доклад на Autodesk University 2014.
Как можно применить аспектно ориентированное программирование к шаблонам проектирования. Какие из них становится легче использовать? Какие полностью выносятся в шаблон и больше не являются частью вашей бизнес-логики.
Как создать более чистый код?
- на эти вопросы ответ в презентации.
Использование аспектов в реализации PostSharp к рефакторингу кода, к шаблонам банды четырех.
Большую часть инфраструктурного кода можно выделить и переиспользовать в других проектах.
6 апреля 2013 г. в омском филиале Luxoft прошел пятый IT-субботник – открытая встреча для IT-специалистов. Максим Юнусов, тренер Luxoft Training по анализу и проектированию ПО, представил доклад «Архитектура в Agile проекте».
В своем выступлении Максим рассказал об архитектуре в «раннем» и в «развитом» Agile, принципах дизайна, мифе о рефакторинге и факторах качества по Бертрану Мейеру, а также о качествах, ценных в Agile, и архитектурных взаимодействиях в Agile проектах.
В докладе будет:
- что такое F.I.R.S.T
- организация кода приложения для повышения его тестируемости, поддерживаемости и производительности
- какой тест-фреймворк выбрать для решения какой задачи?
- какие виды тестирования бывают и за какие из них отвечают разработчики?
- как тратить больше времени на код, а не на тесты
- как и какие метрики тестирования собирать
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)AvitoTech
Роман Дворнов (Avito)
Фронтенд усложняется с каждым днем, и уже не представить жизнь разработчика без инструментов. Инструментов становится все больше, но нельзя сказать, что их достаточно. Если у вас собственный стек или технологическое решение, вам рано или поздно потребуется сделать свой инструмент. Это не так просто! Особенно если вы захотите интегрировать его интерфейс в браузерные Developer Tools, IDE, редакторы или открыть их на другом устройстве. Добавьте сюда проблему версионирования и другие сложности, и вам покажется, что задача неподъемная.
Но есть хорошая новость! Большинство из этих проблем решает Rempl — платформа для создания и использования удаленных инструментов (на самом деле не только инструментов). Сделаем небольшой обзор Rempl: что это, зачем нужно, какие проблемы решает. А также посмотрим примеры готовых решений, построенных на Rempl.
После докладов мы проведём дискуссионную панель на тему "Организация системы компонент", в которой примут участие докладчики, а также приглашенные эксперты.
Секрет производства: программный продукт, за который не будет стыдноCUSTIS
Открытый семинар для студентов в компании CUSTIS (15 октября 2015 года).
Лектор: Виктор Крапивин, архитектор.
Аннотация: В программном проекте разработчику постоянно приходится работать с унаследованным кодом созданных ранее программ, которые предстоит доделать, исправить или сделать источником примеров в дальнейшей практике. В процессе изучения такого исходного кода программисты часто возмущаются, порой не без оснований заявляя: «Ну кто же так пишет?!». Многочисленные непонятные решения, срочные заплаты для исправления критических ошибок, «костыли» — во всем этом непросто разобраться даже при наличии документации, а ведь иногда она уже не актуальна или ее нет совсем.
Создавая программный продукт, который может «дожить» до промышленной эксплуатации, необходимо помнить, что рано или поздно он попадет в руки программистов, не имеющих отношения к его первоначальной разработке. В ходе этого семинара мы на примерах из мира Java продемонстрируем, как создать этот продукт таким образом, чтобы «потомки» остались довольны.
Видеозапись семинара: https://vimeo.com/142895727.
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...UA Mobile
Практически сразу после написания первой программы возникла проблема повышения производительности труда программистов. Несмотря на предпринятые за прошедшее время большие усилия и достигнутые значительные результаты в повышении производительности труда, эта проблема и сейчас является актуальной.
Для решения указанной проблемы применяют разнообразные способы и методы. Основными из них являются организационно-социальные методы, использование разнообразных библиотек, паттернов, шаблонов. Перспективным является применение декларативных языков программирования. К сожалению, существующие декларативные языки ориентированы на ту или иную предметную область.
Сотрудниками компании “Брендер” (г. Харьков) создана библиотека реализующая принципы декларативного программирования при разработке клиент - серверных приложений на андроиде.
В докладе будут рассмотрены основы декларативного программирования клиент-серверных приложений на примере реального коммерческого проекта. Также будет показан анализ производительности и качества разработки приложений традиционными технологиями и с использованием библиотеки декларативного программирования.
Rempl – крутая платформа для крутых инструментовRoman Dvornov
Фронтенд усложняется с каждым днем, и уже не представить жизнь разработчика без инструментов. Инструментов становится все больше, но нельзя сказать, что их достаточно. Если у вас собственный стек или технологическое решение, вам рано или поздно потребуется сделать свой инструмент. Это не так просто! Особенно если вы захотите интегрировать его интерфейс в браузерные Developer Tools, IDE, редакторы или открыть их на другом устройстве. Добавьте сюда проблему версионирования и другие сложности, и вам покажется, что задача неподъемная.
Но есть хорошая новость! Большинство из этих проблем решает Rempl — платформа для создания и использования удаленных инструментов (на самом деле не только инструментов). Сделаем небольшой обзор Rempl: что это, зачем нужно, какие проблемы решает. А также посмотрим примеры готовых решений, построенных на Rempl.
CodeFest, Новосибирск, 2017
Есть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
Building Efficient and High Performing iLottery SolutionsInnovecs
NeoGames is an experienced iLottery and online casino software and service provider. The company delivers scalable projects handling billions of money transactions and maintaining a high level of system quality and security.
[RU] Connecting AutoCAD and Python (by Alex Bausk)Alexander Bausk
(Russian) Future of Engineering Automation: Building a Distributed Application to Connect AutoCAD and Python
Speech given at Autodesk University 2014.
А. Бауск. "Создание распределенного приложения на примере AutoCAD и Python". Доклад на Autodesk University 2014.
Как можно применить аспектно ориентированное программирование к шаблонам проектирования. Какие из них становится легче использовать? Какие полностью выносятся в шаблон и больше не являются частью вашей бизнес-логики.
Как создать более чистый код?
- на эти вопросы ответ в презентации.
Использование аспектов в реализации PostSharp к рефакторингу кода, к шаблонам банды четырех.
Большую часть инфраструктурного кода можно выделить и переиспользовать в других проектах.
6 апреля 2013 г. в омском филиале Luxoft прошел пятый IT-субботник – открытая встреча для IT-специалистов. Максим Юнусов, тренер Luxoft Training по анализу и проектированию ПО, представил доклад «Архитектура в Agile проекте».
В своем выступлении Максим рассказал об архитектуре в «раннем» и в «развитом» Agile, принципах дизайна, мифе о рефакторинге и факторах качества по Бертрану Мейеру, а также о качествах, ценных в Agile, и архитектурных взаимодействиях в Agile проектах.
В докладе будет:
- что такое F.I.R.S.T
- организация кода приложения для повышения его тестируемости, поддерживаемости и производительности
- какой тест-фреймворк выбрать для решения какой задачи?
- какие виды тестирования бывают и за какие из них отвечают разработчики?
- как тратить больше времени на код, а не на тесты
- как и какие метрики тестирования собирать
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)AvitoTech
Роман Дворнов (Avito)
Фронтенд усложняется с каждым днем, и уже не представить жизнь разработчика без инструментов. Инструментов становится все больше, но нельзя сказать, что их достаточно. Если у вас собственный стек или технологическое решение, вам рано или поздно потребуется сделать свой инструмент. Это не так просто! Особенно если вы захотите интегрировать его интерфейс в браузерные Developer Tools, IDE, редакторы или открыть их на другом устройстве. Добавьте сюда проблему версионирования и другие сложности, и вам покажется, что задача неподъемная.
Но есть хорошая новость! Большинство из этих проблем решает Rempl — платформа для создания и использования удаленных инструментов (на самом деле не только инструментов). Сделаем небольшой обзор Rempl: что это, зачем нужно, какие проблемы решает. А также посмотрим примеры готовых решений, построенных на Rempl.
После докладов мы проведём дискуссионную панель на тему "Организация системы компонент", в которой примут участие докладчики, а также приглашенные эксперты.
Секрет производства: программный продукт, за который не будет стыдноCUSTIS
Открытый семинар для студентов в компании CUSTIS (15 октября 2015 года).
Лектор: Виктор Крапивин, архитектор.
Аннотация: В программном проекте разработчику постоянно приходится работать с унаследованным кодом созданных ранее программ, которые предстоит доделать, исправить или сделать источником примеров в дальнейшей практике. В процессе изучения такого исходного кода программисты часто возмущаются, порой не без оснований заявляя: «Ну кто же так пишет?!». Многочисленные непонятные решения, срочные заплаты для исправления критических ошибок, «костыли» — во всем этом непросто разобраться даже при наличии документации, а ведь иногда она уже не актуальна или ее нет совсем.
Создавая программный продукт, который может «дожить» до промышленной эксплуатации, необходимо помнить, что рано или поздно он попадет в руки программистов, не имеющих отношения к его первоначальной разработке. В ходе этого семинара мы на примерах из мира Java продемонстрируем, как создать этот продукт таким образом, чтобы «потомки» остались довольны.
Видеозапись семинара: https://vimeo.com/142895727.
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...UA Mobile
Практически сразу после написания первой программы возникла проблема повышения производительности труда программистов. Несмотря на предпринятые за прошедшее время большие усилия и достигнутые значительные результаты в повышении производительности труда, эта проблема и сейчас является актуальной.
Для решения указанной проблемы применяют разнообразные способы и методы. Основными из них являются организационно-социальные методы, использование разнообразных библиотек, паттернов, шаблонов. Перспективным является применение декларативных языков программирования. К сожалению, существующие декларативные языки ориентированы на ту или иную предметную область.
Сотрудниками компании “Брендер” (г. Харьков) создана библиотека реализующая принципы декларативного программирования при разработке клиент - серверных приложений на андроиде.
В докладе будут рассмотрены основы декларативного программирования клиент-серверных приложений на примере реального коммерческого проекта. Также будет показан анализ производительности и качества разработки приложений традиционными технологиями и с использованием библиотеки декларативного программирования.
Rempl – крутая платформа для крутых инструментовRoman Dvornov
Фронтенд усложняется с каждым днем, и уже не представить жизнь разработчика без инструментов. Инструментов становится все больше, но нельзя сказать, что их достаточно. Если у вас собственный стек или технологическое решение, вам рано или поздно потребуется сделать свой инструмент. Это не так просто! Особенно если вы захотите интегрировать его интерфейс в браузерные Developer Tools, IDE, редакторы или открыть их на другом устройстве. Добавьте сюда проблему версионирования и другие сложности, и вам покажется, что задача неподъемная.
Но есть хорошая новость! Большинство из этих проблем решает Rempl — платформа для создания и использования удаленных инструментов (на самом деле не только инструментов). Сделаем небольшой обзор Rempl: что это, зачем нужно, какие проблемы решает. А также посмотрим примеры готовых решений, построенных на Rempl.
CodeFest, Новосибирск, 2017
Есть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
Building Efficient and High Performing iLottery SolutionsInnovecs
NeoGames is an experienced iLottery and online casino software and service provider. The company delivers scalable projects handling billions of money transactions and maintaining a high level of system quality and security.
This document compares Redux, RxJS, and MobX for state management in JavaScript applications. It provides an overview of each library, describing Redux as a state container using actions and reducers, RxJS as a library for reactive programming with asynchronous data streams, and MobX as a library that uses reactive programming principles to simplify state management. For each library, it includes demos to demonstrate their usage.
From one side web-platform that works as common online fashion-shop for ordinary customers. From the other side customer that becomes a Merchandiser can create his own unique boutique and run his own business. Nearly 100% of all orders are placed through a Merchandiser, with packages shipped straight from the shop.
The product a product that connects powerful DMP technology with multiple DSPs ensuring global ad-inventory reach across display, mobile, video and out-of-home – all presented in the most automated platform in the business. By consolidating leading ad-technology offers advertisers less risk when choosing vendor, and an easy-to-use platform to manage all programmatic marketing campaigns.
Implements innovative multimedia processes into a workflow of a publisher, transforming traditional newsrooms into content generators for any type and any amount of media.
Main product is self-service platform for running precisely targeted user acquisition campaigns for advertisers. Target metrics are to be ~50% better advertising ROI comparing to competitive advertising channels. Machine learning algorithms to predict consumption behavior and automatically target client’s campaigns to most relevant audience.
It is a one-stop-shop for all shipping needs by providing the ability to compare quotes, pay and schedule shipments anywhere, anytime. Product’s technology enables you to ship without surprises – no matter what the item, origin, or destination – by instantly connecting the dots between the thousands of variables that affect the cost. With the most data, the smartest software and the most reliable partners, Product provides you with the best options and the most seamless process for successful delivery.
This project is aimed to create a solution to help companies become more efficient by providing innovative tools for online procurement. With the help of this platform customers can reduce the procurement costs by 3-7%, halve the time for purchasing, and guarantee a 100% control over purchases. It offers a new vision of the electronic trading platform, online services for purchasing different goods and tender services.
The product improves communication between the end client and the insurance agency. Starting from the “Find an Agency” step up to the setting up of direct communication channel between a client and the selected agency, application server lets you instantly report accident or just ask a side question on available insurance options.
This is an open-source online learning platform and web portal for online education. The platform is implemented mostly in Python and the code is being made available under an AGPL license. The main repository is the platform which includes both the Learning Management System and the authoring tool, Studio. It also includes Xmodules – the courseware components that are being upgraded to the new XBlock architecture in the coming months and to suit various graders.
Mobile Terminal for internet payments working in 24/7 mode. To protect client payments the terminal combines user authentication security with SMS password to confirm transactions.
Cloud Data Storage to save client private data – music, pictures, video IP-Phone which uses the account registered in WidePay/WideCom and integrated with other Wide-solutions
The fertility app developed by Innovecs uses algorithms from Harvard scientists to provide fertility scores and predictions of fertile days. The app tells users their likelihood of conceiving each day. Innovecs fully developed the iOS version using Objective C and Xcode. The client is a Cambridge startup seeking to increase chances of conception through mobile and web tools.
This project is a cross-platform system that manages clients’ warranties. The manager contacts the service centers and activates on your behalf the product warranty. It also supports after-sale services allowing you to contact the service center/provider directly as to any product issue, or to extend your warranty and receive additional info on your products.
This game was developed for Brazil’s next generation of video bingo lovers. Embedding the best of breed gamification metrics it is all about bingo and friends. It is an exciting application that takes video bingo to the next level.
The product is a next-generation secure messaging app that protects your private messages end-to-end, even after the messages have been read. Industrial-strength encryption keeps hackers out, while patent-pending screenshot protection system helps recipients avoid making and sharing unauthorized copies.
You can choose how quickly messages self-destruct, or a variety of ways to send funny natural reactions, draw and write on photos that are being sent or even recall messages already sent to the recipient.
A specialized technology platform that enables advertisers to reach customers at the exact moment of intent. Search retargeting is the best way to convert prospects and turn them into customers. Thanks to our unique solution, advertisers are able to show banners to highly targeted users based on their recent searches across the web.
Web-solution aimed to improve cooperation between big insurance companies, independent insurance agents and brokers who represent big companies and companies/people who look for fast and simple insurance solutions nearby.
United Trading Platform, which will be the part of the new electronic tender trading process was presented to the government. The product aims at becoming the top trading platform in Ukraine. The platform was developed according to the highest security, stability and high load requirements which meet the latest industry standards for similar systems.
Sprinkled with a deliciously sweet twist, this match-3 game is equal parts fun and challenging. Hop in your traveling bakery to set sail on this new puzzle adventure and explore mouth-watering patisseries from around the world.
2. Андрей Лазарев
Lead Software Engineer at
Innovecs
12 лет в разработке
10 лет в разработке программных
продуктов
3 года создания проектов на React
2
3. Введение
Что такое продукт
Решение задач
Подходы к созданию React проектов
Выбор технологий для React проекта
Советы по выбору
3 Innovecs. All rights reserved
2018
4. Что такое продукт
Продукт !== Код
Время и стоимость создания продукта
Инструменты производства
Технический долг
4 Innovecs. All rights reserved
2018
Продукт — произведение труда, законченный
результат некоторой деятельности
7. Модульная структура
Модуль —
функционально
законченный фрагмент
программы.
Модульное
программирование —
это организация программы как
совокупности небольших
независимых блоков,
называемых модулями,
структура и поведение которых
подчиняются определенным
правилам.
7 Innovecs. All rights reserved
2018
8. Умные и глупые компоненты
8 Innovecs. All rights reserved
2018
9. Строгая типизация
Smart и Dump
компоненты
PropTypes
DefaultProp
s
ESDock
<Component {…props} />
_ { }
/
9 Innovecs. All rights reserved
2018
10. Использование Redux
Redux –
это инструмент
управления как
состоянием данных, так и
состоянием интерфейса.
Единственный
источник истины
Состояние
доступно только
для чтения
Изменения делаются
«чистыми» функциями
Innovecs. All rights reserved
2018
10
11. Утиная типизация (Duck)
Если это выглядит как утка,
плавает как утка и крякает как
утка, то это, возможно, и есть
утка
Группировка actionTypes,
actions, reducer
Необходимо использовать
export default функции reducer()
Необходимо экспортировать
action creater как функции
Необходимо использовать action types
в виде npm-module-or-app/reducer/
ACTION_TYPE
Можно экспортировать action types в
виде UPPER_SNAKE_CASE для
использования в внешних редюсерах
или переиспользования библиотеки
9
12. Функция Высшего Порядка (HOC)
- это функция которая может принимать в качестве аргументов другие
функции и/или возвращать функции.
class BirthdayPresents extends Components {}
export default compose(
connect(mapState, mapDispatch),
withUsers,
withBirthday,
withFetchPresents,
withToys,
withoutBlue,
withEmpty,
withStyles
)(BirthdayPresents);
12 Innovecs. All rights reserved
2018
Работы с данными, а не с JSX
Зависимость от порядка вызова
Зависимость аргументов от результатов
выполнения других HOC
Перезапись значений другими функциями
13. Выбор технологий
для React проекта
УСТАНОВКА И НАСТРОЙКА СБОРКИ ПРОЕКТА
Innovecs. All rights reserved
2018
BOILERPLATE
RECOMPOSE
REACT MATERIAL UI
13
14. Установка и
настройка
сборки
проекта
Установка пакетов с
помощью npm, Bower
Подключение jQuery
ииспользование
ES5
Сборка с помощью
Webpack, Gulp, Grunt
Использование Boilerplates
Настройка стилей
SASS/SCSS, LESS, JSS, inline
CSS
НЕ ДЕЛАЙТЕ ТАК!
14 Innovecs. All rights reserved
2018
15. Recompose
HOC – Higher-order components
Pure
shouldUpdate
Compose
renderNothing
15 Innovecs. All rights reserved
2018
export default compose(
connect(mapState, mapDispatch),
pure()
)(Component);
16. Material UI
ДОСТОИНСТВА НЕДОСТАТКИ
Начальная скорость разработки
Список компонентов
Иконочные шрифты
Интеграция в Redux Form
Серверный рендеринг
Сложность расширения
Сложность кастомизации
Inline стили
Использование px
Наличие багов
16 Innovecs. All rights reserved
2018
17. Советы по выбору
Проведите анализ
текущего проекта
Составьте список
проблем
Определите, что можете
улучшить, оптимизировать
Определите
приоритеты и
критерии оценки
Выберите
технологи
и
Начнит
е
проект
17 Innovecs. All rights reserved
2018