Докладчик:
Александр Сапронов
Описание:
Язык Python отлично подходит для прототипирования: простой синтаксис, множество батареек, много готовых решений. Это отлично для бизнеса и для разработчика.
Но давайте снимем розовые очки и озвучим негатив, который вас ждет, когда вы возьмете Python для проекта.
Видео:
https://www.youtube.com/watch?v=YE9Q78QlZiE
Раньше PaaS системы казались чем-то сложным и недосягаемым. И немногие могли попытаться реализовать такую систему самостоятельно. Но стремительное развитие технологий снизило порог входа в мир PaaS. Появилось множество готовых продуктов. И более того, вы сами можете сделать свой PaaS.
В своём докладе я поделюсь опытом проектирования и создания PaaS системы на базе docker, registrator, etcd, confd и ansible. Расскажу, почему я решил сделать его самостоятельно, а не взять готовый, поделюсь опытом реального использования этого продукта в production.
Типичные ошибки в коде на примере С++, С# и JavaAndrey Karpov
На вебинаре будут рассмотрены типичные ошибки, допускаемые программистами при написании программ на C++, C# и Java.
Мы рассмотрим:
Примеры ошибок из реальных проектов;
Почему среди всех ошибок появились паттерны;
Как ошибаются крутые программисты;
Что делать, чтобы не допускать ошибки самому.
Все ошибки, которые я вам покажу, были найдены в коде реальных проектов, многие из которых существуют до сих пор. Если вы изучаете только один из вышеописанных языков, вам не будет скучно: все антипаттерны, которые я вам покажу, актуальны для большинства языков программирования!
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionVladimir Malinin
Если приложение регулярно падает, заказчики нервничают, сроки поджимают и не понятно в чём проблема, не стоит паниковать. Мы расскажем вам, что делать в такой ситуации и покажем, как мы выходили из сложившейся ситуации. В докладе на примере двух реальных проектов рассматриваются проблемы, которые могут возникать с Web приложениями на production environment’ах, пути их решения и инструменты, которые для этого могут быть использованы. Подробно будет рассмотрена настройка и использование JavaMelody. Докладчики: Владимир Малинин и Антон Семаник (Nix Solutions)
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
Every programmer has to face legacy code day after day. It might be ugly, it might look scary, it can make a grown man cry. Some will throw it away and try rewriting everything from scratch. Most of them will fail.
Refactoring legacy code is a much better idea. It is not so scary when you take it in very small bites, introduce small changes, add unit tests. When code is refactored and unit tests are added, changes to functinality can be introduced.
We will take an open source C# project and will refactor it showing step-by-step examples of the techniques. This session is full of tips and tricks you can start applying immediately. Although the code is in C#, the same principles can be applied in any language.
В современном мире все меняется очень быстро. Слишком быстро. И требования заказчика в том числе. Гибкие методологии разработки позволяют адаптироваться к быстро меняющимся требованиям. Но как сохранить стабильность приложения в данных условиях, как оставить заказчика удовлетворенным и при этом сберечь психическое здоровье разработчиков? Этот доклад о том, как быстро двигаться вперед без опаски оступиться.
Презентация подготовлена по материалам выступления Евгения Гавриленко на витебской конференции “Developer's Software Conference” (12.11.2016).
"Рекомендации по проектированию API" — Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
Докладчик:
Александр Сапронов
Описание:
Язык Python отлично подходит для прототипирования: простой синтаксис, множество батареек, много готовых решений. Это отлично для бизнеса и для разработчика.
Но давайте снимем розовые очки и озвучим негатив, который вас ждет, когда вы возьмете Python для проекта.
Видео:
https://www.youtube.com/watch?v=YE9Q78QlZiE
Раньше PaaS системы казались чем-то сложным и недосягаемым. И немногие могли попытаться реализовать такую систему самостоятельно. Но стремительное развитие технологий снизило порог входа в мир PaaS. Появилось множество готовых продуктов. И более того, вы сами можете сделать свой PaaS.
В своём докладе я поделюсь опытом проектирования и создания PaaS системы на базе docker, registrator, etcd, confd и ansible. Расскажу, почему я решил сделать его самостоятельно, а не взять готовый, поделюсь опытом реального использования этого продукта в production.
Типичные ошибки в коде на примере С++, С# и JavaAndrey Karpov
На вебинаре будут рассмотрены типичные ошибки, допускаемые программистами при написании программ на C++, C# и Java.
Мы рассмотрим:
Примеры ошибок из реальных проектов;
Почему среди всех ошибок появились паттерны;
Как ошибаются крутые программисты;
Что делать, чтобы не допускать ошибки самому.
Все ошибки, которые я вам покажу, были найдены в коде реальных проектов, многие из которых существуют до сих пор. Если вы изучаете только один из вышеописанных языков, вам не будет скучно: все антипаттерны, которые я вам покажу, актуальны для большинства языков программирования!
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionVladimir Malinin
Если приложение регулярно падает, заказчики нервничают, сроки поджимают и не понятно в чём проблема, не стоит паниковать. Мы расскажем вам, что делать в такой ситуации и покажем, как мы выходили из сложившейся ситуации. В докладе на примере двух реальных проектов рассматриваются проблемы, которые могут возникать с Web приложениями на production environment’ах, пути их решения и инструменты, которые для этого могут быть использованы. Подробно будет рассмотрена настройка и использование JavaMelody. Докладчики: Владимир Малинин и Антон Семаник (Nix Solutions)
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
Every programmer has to face legacy code day after day. It might be ugly, it might look scary, it can make a grown man cry. Some will throw it away and try rewriting everything from scratch. Most of them will fail.
Refactoring legacy code is a much better idea. It is not so scary when you take it in very small bites, introduce small changes, add unit tests. When code is refactored and unit tests are added, changes to functinality can be introduced.
We will take an open source C# project and will refactor it showing step-by-step examples of the techniques. This session is full of tips and tricks you can start applying immediately. Although the code is in C#, the same principles can be applied in any language.
В современном мире все меняется очень быстро. Слишком быстро. И требования заказчика в том числе. Гибкие методологии разработки позволяют адаптироваться к быстро меняющимся требованиям. Но как сохранить стабильность приложения в данных условиях, как оставить заказчика удовлетворенным и при этом сберечь психическое здоровье разработчиков? Этот доклад о том, как быстро двигаться вперед без опаски оступиться.
Презентация подготовлена по материалам выступления Евгения Гавриленко на витебской конференции “Developer's Software Conference” (12.11.2016).
"Рекомендации по проектированию API" — Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
Матерый enterprise проект с "зоопарком" из разнообразных технологий. Часто меняющаяся команда и требовательный заказчик. Менеджер, активно пытающийся вытянуть проект... Все составляющие для сюжета, достойного Титаника.
Было перепробовано множество практик для улучшения процесса разработки, и больше всего это влияло на нас, разработчиков. В одночасье рушились привычные устои, а новые, не успев прижиться, менялись снова. Разве возможна нормальная работа в такой нервной обстановке?
Автор критически оценит парное программирование, тестирование, code review и прочие практики из мира улучшения разработки, а также расшарит набитые шишки и обнаруженные грабли.
How to break dependencies in legacy code and write unit tests.
Slides from my talk at MS Dev Con School, 1 June 2017.
- Preserve Signature
- Sprout Method\Class
- Wrap Method\Class
- Extract & Override
- Parallel Design
- Remove Static
"Рекомендации по проектированию API". Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
Любите ли вы велосипеды? Все разработчики любят свои ненаколеночныерешения велосипеды! И мы не исключение. В нашем докладе мы покажем как собирать, сколачивать, вылепливать собственный велосипед так, чтобы на нем потом могла ездить без слёз вся команда, компания, или может весь мир.
Что в докладе будет:
- много Spring Boot-а;
- live coding;
- создание собственного Spring Boot Starter-а;
- Apache Thrift в качестве подопытного кролика.
Чего не будет:
- бенчмарков и сравнений Thrift vs REST vs gRPC vs XXX.
Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 6 июня, 10:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2586.html
Каждый разработчик сталкивается с добавлением сторонних счетчиков и прочего чужого кода на сайт. А современный e-commerce хочет знать о пользователе все. Поэтому мы прошли путь от нескольких сторонних скриптов до сотни.
Как сделать так, чтобы они не затрагивали производительность приложения и минимально влияли на качество кода проекта? Я расскажу о том, как нам удалось этого добиться.
...
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019corehard_by
Мир изменился. То, что работало раньше, не то чтобы перестало работать, но стало недостаточным. Парное программирование, обзоры кода, юнит-тесты по-прежнему важны и необходимы, но они уже не могут обеспечить должного уровня качества и надёжности С++ проектов. Многие проекты выросли в сотни раз. Рост происходил постепенно, и еще не все поняли, что произошло. Любой большой старый проект состоит из разнородных слоёв (геологических отложений) и, самое главное, уже никто не знает, как это всё работает. Пришло время инструментов и методологий, помогающих сохранять качество и целостность кода: DevSecOps, статический анализ, динамический анализ, платформы измерения качества.
Как не подавиться большим старым проектомAndrey Karpov
Мир изменился. То, что работало раньше, не то чтобы перестало работать, но стало недостаточным. Парное программирование, обзоры кода, юнит-тесты по-прежнему важны и необходимы, но они уже не могут обеспечить должного уровня качества и надёжности С++ проектов. Многие проекты выросли в сотни раз. Рост происходил постепенно, и еще не все поняли, что произошло. Любой большой старый проект состоит из разнородных слоёв (геологических отложений) и, самое главное, уже никто не знает, как это всё работает. Пришло время инструментов и методологий, помогающих сохранять качество и целостность кода: DevSecOps, статический анализ, динамический анализ, платформы измерения качества.
Сертификация Cisco Certified Internetwork Expert – это один из самых желанных и труднодостижимых этапов в карьере сетевого инженера. Обо всем, что волнует инженера, который планирует подтвердить свой экспертный уровень – эксперт SkillFactory Сергей Кучеренко.
Запись вебинара на Youtube: https://www.youtube.com/watch?v=K43ZjmxHOgs&hd=1
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...Ontico
В докладе я расскажу о проблемах роста, с которыми сталкивался проект как в плане доступа к БД, так и в целом. Как решали, что получалось, как (общетеоретически или практически) можно решать подобные проблемы в других проектах.
Разберем несколько реальных случаев, когда что-то шло не так.
Доклад можно рассматривать и как небольшой экскурс в развитие технической платформы ВК, и как собрание нескольких практических способов для проекта вырасти и стать надежнее.
Talk (in Russian) for Yet another Conference 2013, October 2d, Moscow
Abstract: More than 10 years Yandex launches various Internet services such as Maps, Mail, Disk, Music, Auto. During this long period of time we have got a lot of experience that could be useful for other web developers.
In this talk we will share several stories about several services of Yandex and our common library of blocks. In the context of search services we will talk about full stack of BEM technologies, server JavaScript and automatised web development.
We will describe an experience of Yandex.Direct which has a non-stop frontend development and refactoring workflow. We also tell about MVC-pattern (bem-mvc) realisation and converting data in comfortable data view format.
Using Yandex.Maps and its API example we will show how you can adapt BEM flexibly taking into consideration special project's needs.
We also talk about open source and why we went there and what we have learned. Promise you, it will have a lot of interesting details.
Video (Russian) https://events.yandex.ru/lib/talks/1108/
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...Yandex
Больше десяти лет Яндекс делает разные интернет-сервисы: Карты, Почту, Директ, Музыку, Авто и так далее. В процессе их разработки был приобретён опыт, который может быть полезен другим веб-разработчикам. В докладе мы расскажем несколько историй на примере некоторых сервисов Яндекса и общей библиотеки блоков. В контексте поисковых сервисов, речь пойдёт об использовании полного стека БЭМ-технологий, о переходе к серверному JavaScript и автоматизации разработки. Мы опишем опыт Яндекс.Директа, фронтенд которого переписывается без остановки основной разработки. А также расскажем про реализацию MVC-паттерна (bem-mvc) и преобразование данных в удобный для представления вид. На примере Яндекс.Карт и их API будет показано, как можно гибко адаптировать БЭМ-методологию, учитывая особые нужды конкретного проекта. Мы также расскажем, зачем мы пошли в опенсорс и чему научились. Обещаем много интересных подробностей.
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
Матерый enterprise проект с "зоопарком" из разнообразных технологий. Часто меняющаяся команда и требовательный заказчик. Менеджер, активно пытающийся вытянуть проект... Все составляющие для сюжета, достойного Титаника.
Было перепробовано множество практик для улучшения процесса разработки, и больше всего это влияло на нас, разработчиков. В одночасье рушились привычные устои, а новые, не успев прижиться, менялись снова. Разве возможна нормальная работа в такой нервной обстановке?
Автор критически оценит парное программирование, тестирование, code review и прочие практики из мира улучшения разработки, а также расшарит набитые шишки и обнаруженные грабли.
How to break dependencies in legacy code and write unit tests.
Slides from my talk at MS Dev Con School, 1 June 2017.
- Preserve Signature
- Sprout Method\Class
- Wrap Method\Class
- Extract & Override
- Parallel Design
- Remove Static
"Рекомендации по проектированию API". Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
Любите ли вы велосипеды? Все разработчики любят свои ненаколеночныерешения велосипеды! И мы не исключение. В нашем докладе мы покажем как собирать, сколачивать, вылепливать собственный велосипед так, чтобы на нем потом могла ездить без слёз вся команда, компания, или может весь мир.
Что в докладе будет:
- много Spring Boot-а;
- live coding;
- создание собственного Spring Boot Starter-а;
- Apache Thrift в качестве подопытного кролика.
Чего не будет:
- бенчмарков и сравнений Thrift vs REST vs gRPC vs XXX.
Что делать, когда у вас 100 партнеров / Иван Потапов (Lamoda)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 6 июня, 10:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2586.html
Каждый разработчик сталкивается с добавлением сторонних счетчиков и прочего чужого кода на сайт. А современный e-commerce хочет знать о пользователе все. Поэтому мы прошли путь от нескольких сторонних скриптов до сотни.
Как сделать так, чтобы они не затрагивали производительность приложения и минимально влияли на качество кода проекта? Я расскажу о том, как нам удалось этого добиться.
...
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019corehard_by
Мир изменился. То, что работало раньше, не то чтобы перестало работать, но стало недостаточным. Парное программирование, обзоры кода, юнит-тесты по-прежнему важны и необходимы, но они уже не могут обеспечить должного уровня качества и надёжности С++ проектов. Многие проекты выросли в сотни раз. Рост происходил постепенно, и еще не все поняли, что произошло. Любой большой старый проект состоит из разнородных слоёв (геологических отложений) и, самое главное, уже никто не знает, как это всё работает. Пришло время инструментов и методологий, помогающих сохранять качество и целостность кода: DevSecOps, статический анализ, динамический анализ, платформы измерения качества.
Как не подавиться большим старым проектомAndrey Karpov
Мир изменился. То, что работало раньше, не то чтобы перестало работать, но стало недостаточным. Парное программирование, обзоры кода, юнит-тесты по-прежнему важны и необходимы, но они уже не могут обеспечить должного уровня качества и надёжности С++ проектов. Многие проекты выросли в сотни раз. Рост происходил постепенно, и еще не все поняли, что произошло. Любой большой старый проект состоит из разнородных слоёв (геологических отложений) и, самое главное, уже никто не знает, как это всё работает. Пришло время инструментов и методологий, помогающих сохранять качество и целостность кода: DevSecOps, статический анализ, динамический анализ, платформы измерения качества.
Сертификация Cisco Certified Internetwork Expert – это один из самых желанных и труднодостижимых этапов в карьере сетевого инженера. Обо всем, что волнует инженера, который планирует подтвердить свой экспертный уровень – эксперт SkillFactory Сергей Кучеренко.
Запись вебинара на Youtube: https://www.youtube.com/watch?v=K43ZjmxHOgs&hd=1
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...Ontico
В докладе я расскажу о проблемах роста, с которыми сталкивался проект как в плане доступа к БД, так и в целом. Как решали, что получалось, как (общетеоретически или практически) можно решать подобные проблемы в других проектах.
Разберем несколько реальных случаев, когда что-то шло не так.
Доклад можно рассматривать и как небольшой экскурс в развитие технической платформы ВК, и как собрание нескольких практических способов для проекта вырасти и стать надежнее.
Talk (in Russian) for Yet another Conference 2013, October 2d, Moscow
Abstract: More than 10 years Yandex launches various Internet services such as Maps, Mail, Disk, Music, Auto. During this long period of time we have got a lot of experience that could be useful for other web developers.
In this talk we will share several stories about several services of Yandex and our common library of blocks. In the context of search services we will talk about full stack of BEM technologies, server JavaScript and automatised web development.
We will describe an experience of Yandex.Direct which has a non-stop frontend development and refactoring workflow. We also tell about MVC-pattern (bem-mvc) realisation and converting data in comfortable data view format.
Using Yandex.Maps and its API example we will show how you can adapt BEM flexibly taking into consideration special project's needs.
We also talk about open source and why we went there and what we have learned. Promise you, it will have a lot of interesting details.
Video (Russian) https://events.yandex.ru/lib/talks/1108/
"Фронтенд в Яндексе: сложные сервисы, непростые решения". Елена Джетпыспаева,...Yandex
Больше десяти лет Яндекс делает разные интернет-сервисы: Карты, Почту, Директ, Музыку, Авто и так далее. В процессе их разработки был приобретён опыт, который может быть полезен другим веб-разработчикам. В докладе мы расскажем несколько историй на примере некоторых сервисов Яндекса и общей библиотеки блоков. В контексте поисковых сервисов, речь пойдёт об использовании полного стека БЭМ-технологий, о переходе к серверному JavaScript и автоматизации разработки. Мы опишем опыт Яндекс.Директа, фронтенд которого переписывается без остановки основной разработки. А также расскажем про реализацию MVC-паттерна (bem-mvc) и преобразование данных в удобный для представления вид. На примере Яндекс.Карт и их API будет показано, как можно гибко адаптировать БЭМ-методологию, учитывая особые нужды конкретного проекта. Мы также расскажем, зачем мы пошли в опенсорс и чему научились. Обещаем много интересных подробностей.
Similar to Роман Неволин «Провайдеры типов без боли и магии» (20)
3. Задача: я хочу получить JSON с
вопросами по URL, взять первый вопрос
и напечать ссылку на него
3
4. Задача : «детское» решение
1.Скачать текст по ссылке
2.Разбить текст на «блоки»
3.Выделить блоки с вопросом
4.Выбрать первый из этих блоков.
5.Найти в нем ссылку и напечатать
4
14. Что здесь не так?
Мы легко можем ошибиться, и об
ошибке станет известно только в
рантайме
14
15. Что здесь не так?
Мы легко можем ошибиться, и об
ошибке станет известно только в
рантайме
Автодополнение не помогает нам писать
код
15
16. Что здесь не так?
Мы легко можем ошибиться, и об
ошибке станет известно только в
рантайме
Автодополнение не помогает нам писать
код
Мы никак не застрахованы от изменений
в API
16
17. Ах, как было бы прекрасно, если..
Если бы типы генерировались по JSON
17
18. Ах, как было бы прекрасно, если..
Если бы типы генерировались по JSON
Если бы это происходило автоматически,
как только мы ввели в IDE ссылку на
JSON
18
19. Ах, как было бы прекрасно, если..
Если бы типы генерировались по JSON
Если бы это происходило автоматически,
как только мы ввели в IDE ссылку на
JSON
Если бы сгенерированные типы
автоматически обновлялись при
изменении JSON
19
23. Но...
Но провайдеры – сложный механизм с
кучей подводных камней.
Но бывает сложно понять, когда
выполняется та или иная логика внутри
провайдера
23
24. Но...
Но провайдеры – сложный механизм с
кучей подводных камней.
Но бывает сложно понять, когда
выполняется та или иная логика внутри
провайдера
Но провайдеры недостаточно хорошо
специфицированы.
24
25. Но...
Но провайдеры – сложный механизм с
кучей подводных камней.
Но бывает сложно понять, когда
выполняется та или иная логика внутри
провайдера
Но провайдеры недостаточно хорошо
специфицированы.
Но вообще-то. Программисты мы или
погулять вышли? 25
34. ID3 Provider : обзор задачи
Информация об MP3 файлах
хранится в ID3 тегах
Разные теги хранят в себе
разные данные
MP3 файл может содержать или
не содержать любые ID3 теги
Это задача для провайдеров!
34
44. Generative провайдеры
Создает реальные типы на
основании схемы
Созданные типы хранятся в файле
сборки
Совместим с рефлексией и другими
.NET языками
Увеличивают размер сборки
44
45. Erased провайдеры
Создает типы, о которых знает
только F# компилятор
Невозможно использовать
рефлексию
Несовместимы с другими .NET
языками
Умеют работать с бесконечными
структурами данных
45
57. Интерфейс ITypeProvider
«Type providers implement this
interface in order to be
recognized by the compiler as an
F# type provider. The
implementation of this interface
determines the public interface
and behavior of the type
provider»
57