Докладчик:
Александр Сапронов
Описание:
Язык Python отлично подходит для прототипирования: простой синтаксис, множество батареек, много готовых решений. Это отлично для бизнеса и для разработчика.
Но давайте снимем розовые очки и озвучим негатив, который вас ждет, когда вы возьмете Python для проекта.
Видео:
https://www.youtube.com/watch?v=YE9Q78QlZiE
Доклад на hotcode.org о инструментах и методиках которые помогают нам повышать и следить за качеством PHP кода.
Среди затронутых тем:
- Стандарты в коде
- Средства для статического анализа кода.
- Git хуки
- Непрерывная интеграция
- IDE
- Code review
- почему PHP программисты снискали дурную славу;
- что делать, чтобы стать хорошим программистом;
- как писать идеальный код;
- что такое командная разработка проекта;
- учет позиции бизнеса при разработке проекта;
- основные задачи, который должен решать программист;
Не всегда задачи решаются в терминах языка программирования. И когда дело доходит до реализации, иногда "волосы становятся дыбом" от мысли, как это придется делать на конкретном языке. В данном докладе автор "изольет душу" на тему идиом в языках программирования, чем они отличаются от паттернов проектирования, рассмотрит преимущества и недостатки их использования, а также подробно рассмотрит несколько наиболее популярных идиом для C++.
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...Ontico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 17:00
Тезисы:
http://backendconf.ru/2017/abstracts/2636.html
Итак, вам повезло - у вас большой проект с многолетней историей. Проблема в том, что многолетняя история - это чаще всего значит много legacy кода, на который стыдно смотреть и тяжело делать всё остальное. И вот в один прекрасный момент все понимают, что так жить больше нельзя и нужно (всё) менять. Здесь самое опасное - начать всё переписывать заново. Почему это плохо и к чему это привело у нас, в Ultimate Guitar, и будет посвящён этот доклад.
...
Сложный проект с нуля: сквозь воду, огонь и медные трубы / Филипп ДельгядоOntico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 16:00
Тезисы:
http://backendconf.ru/2017/abstracts/2703.html
Последние два года я делаю платежную систему с нуля.
Подобные проекты при создании проходят через несколько различных стадий (создание каркаса, запуск и доработка напильником, развитие и сопровождение), каждая из которых требует специальных инструментов, отдельных подходов к организации разработки, своих особенностей в декомпозиции задач и даже разных навыков от разработчиков.
...
Доклад на hotcode.org о инструментах и методиках которые помогают нам повышать и следить за качеством PHP кода.
Среди затронутых тем:
- Стандарты в коде
- Средства для статического анализа кода.
- Git хуки
- Непрерывная интеграция
- IDE
- Code review
- почему PHP программисты снискали дурную славу;
- что делать, чтобы стать хорошим программистом;
- как писать идеальный код;
- что такое командная разработка проекта;
- учет позиции бизнеса при разработке проекта;
- основные задачи, который должен решать программист;
Не всегда задачи решаются в терминах языка программирования. И когда дело доходит до реализации, иногда "волосы становятся дыбом" от мысли, как это придется делать на конкретном языке. В данном докладе автор "изольет душу" на тему идиом в языках программирования, чем они отличаются от паттернов проектирования, рассмотрит преимущества и недостатки их использования, а также подробно рассмотрит несколько наиболее популярных идиом для C++.
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...Ontico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 17:00
Тезисы:
http://backendconf.ru/2017/abstracts/2636.html
Итак, вам повезло - у вас большой проект с многолетней историей. Проблема в том, что многолетняя история - это чаще всего значит много legacy кода, на который стыдно смотреть и тяжело делать всё остальное. И вот в один прекрасный момент все понимают, что так жить больше нельзя и нужно (всё) менять. Здесь самое опасное - начать всё переписывать заново. Почему это плохо и к чему это привело у нас, в Ultimate Guitar, и будет посвящён этот доклад.
...
Сложный проект с нуля: сквозь воду, огонь и медные трубы / Филипп ДельгядоOntico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 16:00
Тезисы:
http://backendconf.ru/2017/abstracts/2703.html
Последние два года я делаю платежную систему с нуля.
Подобные проекты при создании проходят через несколько различных стадий (создание каркаса, запуск и доработка напильником, развитие и сопровождение), каждая из которых требует специальных инструментов, отдельных подходов к организации разработки, своих особенностей в декомпозиции задач и даже разных навыков от разработчиков.
...
Python, Django и корпоративные информационные системыPyNSK
Софт для автоматизации бизнеса составляет значительную часть всего существующего на планете программного обеспечения. Рассмотрим требования к нему и особенности его разработки. Оценим, насколько Python для этого подходит, и облегчают ли фреймворки жизнь в кровавом энтерпрайзе.
Докладчик: Анатолий Щербаков
Видео: https://youtu.be/G_ks3sO1Mbs
Когда мы пишем код, наши мысли почти всегда заняты исключительно правильностью его работы. Мы очень редко обращаем внимание на то, как именно его пишем. Выбор оформления и применения определенных элементов языка может влиять на восприятие вашего кода коллегами. Поэтому для эффективной работы в команде необходимо поддерживать единый стиль кода. В этом докладе я постараюсь рассказать, какие средства для этого можно использовать и что делать, если их не хватает.
* — слайды и слайды с комментариями.
Я часто слышу, что заказная разработка — это зло. Заказчик-самодур диктует свои условия, а разработчики пляшут под его дудку, пишут на Друпале (привет Омск), не высыпаются и мечтают о продуктовой разработке. Где, говорят, один внутренний заказчик, который всё знает, пишет подробное ТЗ, сроки гибкие, а разработчиков кормят плюшками с клюквой и возят на конференции. Все счастливы!
На самом деле нет. Есть свои нюансы, которые стоит учитывать.
О них я и расскажу:
— Product team VS feature team VS “dev на 50% времени и frontend на 20%, test на 100%”.
— “Продакт все знает он нам напишет подробное ТЗ” VS прототипы и сплит-тестирование.
— Старожилы VS живчики.
— “Сначала сделаем, потом подумаем как зарабатывать”.
Персонажи и события не выдуманы, буду использовать опыт 2ГИС.
Ice Age Testing. Mistakes that testers do since Ice Age and how to avoid themGleb Rybalko
Тестирование ПО является стандартом в сфере обеспечения качества уже на протяжении 40 лет. За это время многие процессы и подходы изменились, появились новые техники нахождения ошибок. Все участники процесса разработки программных продуктов признали важность и значимость тестировщиков. Сейчас эта профессия котируется наравне с профессией программиста.
Тем не менее, начиная с зарождения, так называемого «каменного века» тестирования и по сей день тестировщики и тест менеджеры допускают ошибки, которые в дальнейшем влияют на ход разработки продукта и выливаются в обидные ошибки и разочарования. Особым количеством пропущенных ошибок и сорванных сроков отличаются «мамонты ледникового периода» в тестировании – длинные и долгоиграющие проекты.
Этот доклад построен на практическом опыте автора работы с такими «мамонтами от тестирования» В рамках доклада Вы узнаете:
• Как определить проект мамонт, и чем он отличается от других проектов
• Ошибки тестировщиков при первой встрече с мамонтом и как их избежать
• Как тестировать мамонтов
• Разбор практических кейсов тестирования мамонтов
Доклад будет полезен начинающим тестировщикам, которые смогут узнать о распространенных ошибках своих коллег в больших проектах. Также доклад пригодится специалистам с опытом, которые не работали в крупных и долгосрочных проектах и хотят узнать специфику такой работы.
Программировать может каждый. И каждый может превратить свою идею в работающий интернет-проект — это проще, чем кажется.
Для чего и кому нужно уметь программировать?
Эволюция проекта
Автоматизация бизнес-процессов
Очевидные решения
Продвинутые решения: Gearman, phpDaemon и другие
Очереди сообщений
Процессы в PHP - готовые решения (связки Очередь + Процессы)
Результаты удивляют
Проблемы и трудности, с которыми столкнулись
подробности - в статье: http://dspotapov.ru/blog/108-statya-lichnoe-cherez-ternii-k-zvezdam-luchshe-odin-raz-vovremya-chem-sto-raz-pravilno-ili-evolyuciya-proekta-dspotapovru-as-is.html
First byte - участник #1 Global Chatbots Hackathon with Webinar.ruchatbotscommunity
По поводу идеи. она не очень связана с вашей апишкой, но достаточно забавная. мы питонисты, любим Python, и хотим, чтобы он всегда был с нами. Поэтому мы уже реализовали (прямо на хакатоне) бота, который выполняет наши магические команды. чтобы было понятнее, подходите, покажем
Докладчик:
Александр Сапронов
Описание:
Мы рассмотрим популярные библиотеки для функционального программирования на Python — fn.py, functools, itertools, funcy, hask, Toolz. Узнаем возможности каждой из библиотеки, а также как в динамическом язык имитировать мощную систему типов. Затронем характеристики функционального программирования и проверим помогают ли библиотеки выполнить.
Получаем текст веб-страниц из Python и как это работаетPyNSK
Докладчик:
Юра Бабуров aka buriy
Описание:
Мы рассмотрим python-библиотеку под названием readability-lxml (https://github.com/buriy/python-readability) , её применение и механизм работы для задачи извлечения текстов новостных страниц.
Докладчик:
Александр Сапронов
Описание:
Мы вместе пройдем по популярным задачам — от парсинга сайтов до научных вычислений и рассмотрим мощь языка Python
Python, Django и корпоративные информационные системыPyNSK
Софт для автоматизации бизнеса составляет значительную часть всего существующего на планете программного обеспечения. Рассмотрим требования к нему и особенности его разработки. Оценим, насколько Python для этого подходит, и облегчают ли фреймворки жизнь в кровавом энтерпрайзе.
Докладчик: Анатолий Щербаков
Видео: https://youtu.be/G_ks3sO1Mbs
Когда мы пишем код, наши мысли почти всегда заняты исключительно правильностью его работы. Мы очень редко обращаем внимание на то, как именно его пишем. Выбор оформления и применения определенных элементов языка может влиять на восприятие вашего кода коллегами. Поэтому для эффективной работы в команде необходимо поддерживать единый стиль кода. В этом докладе я постараюсь рассказать, какие средства для этого можно использовать и что делать, если их не хватает.
* — слайды и слайды с комментариями.
Я часто слышу, что заказная разработка — это зло. Заказчик-самодур диктует свои условия, а разработчики пляшут под его дудку, пишут на Друпале (привет Омск), не высыпаются и мечтают о продуктовой разработке. Где, говорят, один внутренний заказчик, который всё знает, пишет подробное ТЗ, сроки гибкие, а разработчиков кормят плюшками с клюквой и возят на конференции. Все счастливы!
На самом деле нет. Есть свои нюансы, которые стоит учитывать.
О них я и расскажу:
— Product team VS feature team VS “dev на 50% времени и frontend на 20%, test на 100%”.
— “Продакт все знает он нам напишет подробное ТЗ” VS прототипы и сплит-тестирование.
— Старожилы VS живчики.
— “Сначала сделаем, потом подумаем как зарабатывать”.
Персонажи и события не выдуманы, буду использовать опыт 2ГИС.
Ice Age Testing. Mistakes that testers do since Ice Age and how to avoid themGleb Rybalko
Тестирование ПО является стандартом в сфере обеспечения качества уже на протяжении 40 лет. За это время многие процессы и подходы изменились, появились новые техники нахождения ошибок. Все участники процесса разработки программных продуктов признали важность и значимость тестировщиков. Сейчас эта профессия котируется наравне с профессией программиста.
Тем не менее, начиная с зарождения, так называемого «каменного века» тестирования и по сей день тестировщики и тест менеджеры допускают ошибки, которые в дальнейшем влияют на ход разработки продукта и выливаются в обидные ошибки и разочарования. Особым количеством пропущенных ошибок и сорванных сроков отличаются «мамонты ледникового периода» в тестировании – длинные и долгоиграющие проекты.
Этот доклад построен на практическом опыте автора работы с такими «мамонтами от тестирования» В рамках доклада Вы узнаете:
• Как определить проект мамонт, и чем он отличается от других проектов
• Ошибки тестировщиков при первой встрече с мамонтом и как их избежать
• Как тестировать мамонтов
• Разбор практических кейсов тестирования мамонтов
Доклад будет полезен начинающим тестировщикам, которые смогут узнать о распространенных ошибках своих коллег в больших проектах. Также доклад пригодится специалистам с опытом, которые не работали в крупных и долгосрочных проектах и хотят узнать специфику такой работы.
Программировать может каждый. И каждый может превратить свою идею в работающий интернет-проект — это проще, чем кажется.
Для чего и кому нужно уметь программировать?
Эволюция проекта
Автоматизация бизнес-процессов
Очевидные решения
Продвинутые решения: Gearman, phpDaemon и другие
Очереди сообщений
Процессы в PHP - готовые решения (связки Очередь + Процессы)
Результаты удивляют
Проблемы и трудности, с которыми столкнулись
подробности - в статье: http://dspotapov.ru/blog/108-statya-lichnoe-cherez-ternii-k-zvezdam-luchshe-odin-raz-vovremya-chem-sto-raz-pravilno-ili-evolyuciya-proekta-dspotapovru-as-is.html
First byte - участник #1 Global Chatbots Hackathon with Webinar.ruchatbotscommunity
По поводу идеи. она не очень связана с вашей апишкой, но достаточно забавная. мы питонисты, любим Python, и хотим, чтобы он всегда был с нами. Поэтому мы уже реализовали (прямо на хакатоне) бота, который выполняет наши магические команды. чтобы было понятнее, подходите, покажем
Докладчик:
Александр Сапронов
Описание:
Мы рассмотрим популярные библиотеки для функционального программирования на Python — fn.py, functools, itertools, funcy, hask, Toolz. Узнаем возможности каждой из библиотеки, а также как в динамическом язык имитировать мощную систему типов. Затронем характеристики функционального программирования и проверим помогают ли библиотеки выполнить.
Получаем текст веб-страниц из Python и как это работаетPyNSK
Докладчик:
Юра Бабуров aka buriy
Описание:
Мы рассмотрим python-библиотеку под названием readability-lxml (https://github.com/buriy/python-readability) , её применение и механизм работы для задачи извлечения текстов новостных страниц.
Докладчик:
Александр Сапронов
Описание:
Мы вместе пройдем по популярным задачам — от парсинга сайтов до научных вычислений и рассмотрим мощь языка Python
Commit ускоривший python 2.7.11 на 30% и новое в python 3.5PyNSK
Автор доклада: Александр Сапронов.
Обзорный мини-доклад. В докладе вы найдете причину релиза 2.7.11 и новинки Python 3.5
Доклад сделан на 2 встрече сообщества PyNSK
Рассмотрю с практической стороны создание своего предметно-ориентированного языка. Продемонстрирую почти готовое решение возникшей задачи и расскажу, в каких случаях может потребоваться внедрение DSL.
Докладчик: Михаил Воротынцев (AgoraDoxa)
Видео: https://www.youtube.com/watch?v=Qf0TjcBG1oI
Introduction to Python and Web ProgrammingDavid Neiss
Slides created for the San Diego Python Users Group to teach our "Intro To Python" class. We have held the class twice already and will continue to do so as there continues to be interest in learning Python.
Why Python Web Frameworks Are Changing the Webjoelburton
An overview and histroy of Python web frameworks, and a discussion of the features of Python that provide for such a strong set of frameworks. Presented at Pycon NZ 2009.
A talk given at the NYC Python Meetup Event on July 9, 2013. This talk covers the importance of a web framework in communicating between web developers and clients.
Экстремальное проектирование: как делать хорошие продукты, когда всё катится ...Alexey Borodkin
Краснознаменный имени Владимира Ильича доклад про проектирование в страшных и ужасных условиях, читанный мною на ульяновской Стачке в марте 2017 года. В программе - как проектировать без ТЗ, по готовому дизайну, вверх тормашками, в космосе и без друзей.
В презентации:
• Что такое Концепция требований, для чего она нужна и что туда должно войти?
• Какие техники сбора и анализа требований можно использовать на старте проекта?
• Как можно формировать ТЗ к такому проекту и что туда должно войти?
• Какие моменты нужны учесть и какие инструменты можно использовать при управлении требований?
* Показаны и рассказаны реальные примеры докладчика.
5 правил успешной разработки приложений для бренда Heads&Hands
Презентация о правилах разработки мобильных приложений для крупных брендов. Основные ошибки и проблемы, с которыми сталкивается компания-разработчик и способы их решения.
15 шагов к быстрым сделкам на тендерных площадкахConformato
Анастасия Новикова на Conformato Conference 2014 рассказывала о быстрых сделках 15 апреля, а 17 - продолжала свой доклад по многочисленным просьбам.
Доклад на тему "15 шагов к быстрым сделкам на тендерных площадках" содержит алгоритм, который эффективно работает и указывает на типичные ошибки.
Помимо этого Анастасия сразу же предлагает пути их решения.
=Чтобы посмотреть видеозапись доклада, зарегистрируйтесь здесь: http://goo.gl/uK0rmY =
1. Краткое введение в Agile и Scrum
2. Как и какие риски снижает применение Scrum?
3. Как планировать риски на итерацию и как это объяснить заказчику?
a. Стоит ли говорить заказчику о том, что вы планируете риски, и, если стоит, то как?
b. Что делать с «мега срочными» задачами от заказчика в середине итерации и как аргументированно сказать «нет»?
4. Что делать, что объём незапланированных задач больше объема запланированных?
5. Способы снижения рисков:
a. Снижение вероятности рисков
b. Снижение влияния на производительность команды
6. Управление рисками в самоорганизуемой команде
Опыт разработки SEO софта на примере FastTrust и ComparseRАлександр Алаев
Рассказываю про свой непростой опыт разработки десктопных программ на примере FastTurst и ComparseR. Всем, кто собирается заняться разработкой инди приложения или сервиса рекомендую.
Николай Фоминых (Python Developer @ Murano Software) для первой IT-встречи в лаборатории спутниковой океанографии http://solab.rshu.ru/ru/news/sol-first-it-talk/
Спикер:
Антон Воронюк
Руководитель академии «WebPromoExperts»
От спикера:
Ошибок в интернет-маркетинге много, давайте поговорим как их не допустить
На вебинаре Вы узнаете:
Ошибка многорукого многонога
Ошибка креативщика
Ошибка задрота
Ошибка рекламиста-маркетолога
Ошибка SEOшника
еще 4 ошибки
Данный вебинар будет интересен:
Интернет-маркетологам;
Владельцам бизнеса и руководителям;
Начинающим специалистам.
Докладчик: Данил Руденко
О докладе:
По некоторым оценкам, больше половины профессий будет автоматизировано – это и есть максимальный объём, на который может быть увеличен рынок алгоритмов машинного обучения, ярчайшем представителем которого являются нейронные сети.
В докладе мы поговорим об общей концепции нейронных сетей, рассмотрим основные Python - фреймворки для машинного обучения, а также реализуем решение задачи классификации изображений с применением Keras.
Докладчик: Данил Руденко
О докладе:
У нашего зоопарка опять проблемы, которые необходимо решить максимально технологично!
На первом докладе мы поговорили о сверточных нейронных сетях, в этот раз рассмотрим такие виды нейронных сетей как автоэнкодеры и GAN’ы( генеративные состязательные сети). Также углубимся немного в Keras, напишем кастомный загрузчик данных и немного посмотрим на Jupyter Notebook.
Видео: https://youtu.be/tu-ee_4uAGY
Asyncio для процессинга распределенной базы данныхPyNSK
Докладчик: Никита Семенов
О докладе:
Появление asyncio стало новой вехой в истории питона. По-настоящему удобный и эффективный способ запускать асинхронный код.
В своем докладе я познакомлю слушателя с базовым синтаксисом, парадигмами и примитивами, чтобы можно было начать использовать всю мощь asyncio уже сегодня.
Для этого я возьму децентрализованные базы данных с web-интерфейсом, раскиданные по нескольким серверам, и покажу как их можно эффективно запроцесить только при помощи стандартных методов питона 3.4+ и aiohttp.
Видео: https://youtu.be/rpiHVA6vRTY
Докладчик: Станислав Каблуков
О докладе:
Расскажу о своём опыте использования Python для разработки игр. В каких игровых движках и программах для моделирования используется Python.
Как и почему стоит использовать python для создания игр, и в каких случаях лучше отказаться от данной идеи. О плюсах и минусах использования Python.
В докладе будет про: python, blender, Ren'py, KivEnt, Boo, UE4 и д.р.
Видео: https://youtu.be/2RrZx_J5twU
Python инструменты для нагрузочного тестированияPyNSK
В докладе я расскажу об использовании yandex.tank с BFG и locustio для нагрузочного тестирования.
Докладчик: Иван Гребенщиков
Видео: https://youtu.be/-kWm5V9pyCY
Как показать релевантный текст для пользователя? Собрать данные, написать разные тексты, а потом написать кучу IF'ов?
В докладе я расскажу, как мы, в Welltory, делаем настройку контента под пользователя.
Поведаю о том, как content writer'ы могут писать 100 вариантов текстов на одно событие в системе.
И конечно, расскажу с чего начать вам.
Докладчик: Александр Сапронов
Видео: https://youtu.be/sG6kUxq6gDY
В докладе я расскажу об устройстве одноплатного компьютера и его периферии на примере raspbery pi.
Установку на него дистрибутива операционной системы, python 3 и управление с помощью него периферией (i2c spi uart и отдельными pin). А ещё я это покажу в живую
Докладчик: Иван Бакланов
Видео: https://www.youtube.com/watch?v=1WiIMeWHMY8
В докладе мы рассмотрим создание переносимого дистрибутива Python для любых нужд и операционных систем (Windows & Linux). Познакомимся с существующими и альтернативными решениями. Сравним их достоинства и недостатки.
Докладчик: Григорий Кареев (Odin)
Видео: https://www.youtube.com/watch?v=fvBJG_IKvaQ
Как Python Дайджест работает с внешней статикойPyNSK
Докладчик:
Александр Сапронов
Описание:
В мини-докладе я рассмотрю простой велосипед (django-remdow), который позволяет в автоматическом режиме скачивать внешнюю статику. А также приведу простые инструменты для автоматической оптимизации вашего сайта.
Применение behave+webdriver для тестирования Web-проектовPyNSK
Докладчик:
Иван Гребенщиков
Описание:
Современные веб-проекты представляют из себя совсем не набор статических страниц, что повышает сложность их функционального тестирования.
В докладе будет рассмотрена связка инструментов behave+webdriver, способе их применения, возможные проблемы и пути их решения.
Докладчик:
Игорь Стариков
Описание:
Не секрет, что Питон, благодаря своим свойствам, имеет широчайшую область применения. Не являются исключением и мультимедийные (в том числе игровые) приложения.
В ходе этого выступления:
1. вы узнаете о некоторых средствах и принципах их построения, а также о том, как упомянутые средства могут использовать функции внешних библиотек, написанных на других языках программирования;
2. а я получу, наконец, достижение из одной известной игры, не запуская её.
Докладчик:
Александр Кацко
Описание:
Как только речь заходит про создание API, особенно для веб или мобильных приложений, то многие, не задумываясь, выбирают принцип REST. Но всегда ли это правильный выбор?
В докладе рассмотрим случаи, для которых хорошо подходит JSON-RPC, посмотрим примеры реализации на Django.
Докладчик:
Антон Голов
Описание:
Поговорим о некоторых функциях для интеграции TestRail c внешними системами и автоматизации деятельности QA. Будет немного про Google Docs, и некоторый набор методов работы с Testrail, рассмотрим возможности работы с системами автоматизированного тестирования.
"Модифицируй это!" или "Больше магии Python с помощью изменения AST"PyNSK
Докладчик:
Александр Маршалов (ЦФТ)
Описание: Мы узнаем, что из себя представляет дерево синтаксического разбора (AST / Abstract Syntax Tree) в языке Python
и какие магические возможности можно получить с помощью модификации AST.
Докладчик:
Богомолов Иван
Описание:
Краткий обзор разных вариантов использования gDrive API, так же вы узнаете как получить доступ к gDrive API, конечно же с примерами подключения, авторизации и выполнения различных запросов на питоне.
Докладчик:
Владимир Донец (kwimba.ru)
Описание: Слышали про магию в Python? Одно из магических заклинаний называется дескрипторы. Мощная фича языка, которая позволяет определять свое поведение атрибута объекта при доступе к этому атрибуту.
Сложно звучит? А вы знали, что дескрипторами уже наверняка пользовались, если хотя бы раз писали на Python. Я расскажу о том, что такое дескрипторы и как их осознанно можно применять в собственном коде.
Автор:
Евгений Петренко (https://vk.com/mrevgenx)
Описание:
В докладе расскажу, как добиться дополнительного ускорения сложных вычислений. Будут разобраны подводные камни многопоточности в CUDA, перечислены особенности оптимизиции программ для графического процессора и представлены полезные средства отладки и профилирования. Дополнительно приведу примеры из собственного опыта распараллеливания и оптимизации такого рода программ.
Докладчик: И. Стариков
Если поразмыслить, то приложения и библиотеки с открытым исходным кодом уже давно и по праву можно считать двигателем области программного обеспечения. Именно открытый исходный код можно рассматривать, как средство передачи опыта, позволяющее, помимо прочего, учиться на ошибках других. Давайте попытаемся понять, как делиться опытом наиболее эффективно, при этом обеспечивая повышение уровня доступности и популярности разрабатываемого вами ПО.
1. Чем Python плох для стартапа?
Александр Сапронов:
a@sapronov.me
ru.linkedin.com/in/alexsapronov
2. Хто я такой?
- Пишу код за деньги в Welltory.com
- В основном на Python
- Делаю Python Дайджест
- Организую встречи PyNSK
- Делал конференцию
PyCon Siberia 2016
- Люблю делать всякую движуху 2
3. Очемэто Как живет проект в первый год
Почему в первый год не важен язык?
Почему Python подходит для бизнеса?
Почему менять стэк разработки больно?
Почему вы захотите поменять Python?
P.S. Доклад несерьезный 3
5. Что такое Welltory
● Стартап
● Активная разработка началась ~1 год назад
● Собираем данные о жизни пользователя
● Обрабатываем данные - чистим, сжимаем
● Анализируем - строим корреляции
● Строим рекомендации - сообщаем юзеру о проблемах здоровья
Welltory - персональный аналитик здоровья
5
9. Программист
Не знаю какие данные будем хранить,
Не знаю сколько юзеров ждем.
Не хочу переписывать много раз
А что если….
Не взять MongoDB и Tornado!?
Они же быстрые и масштабируются, их
используют в продакшене
9
10. MongoDB для стартапа
- Можно сваливать в БД
данные и не думать
- Не надо админа, чтобы
начать работать
- Легко масштабировать
- Модно, чо
- Нет хорошей системы
constraints. Загадите базу
- Аналитик знает SQL, но не
знает монгу
- Без JSON Schema вы
запутаетесь в коллекциях
+ -
10
11. Tornado для стартапа
- Работает быстро
- Гибкий
- Живой проект
- Асинхронщина
- Не популярен как Django
- Нет CRUDL админки
- Хочешь <что-то>? Пиши
сам
+ -
11
12. В итоге
- Но ни разу не масштабировали ее
- Писали валидацию данных руками
- Стали использовать JSON Schema,
потому что структура нужна же
- Использовали дополнительно
PostgreSQL и конвертировали
данные туда, потому что SAAS’ы
Выбрали MongoDB
- Но ни разу даже 10rps не было
- Пришлось писать Oauth2 с нуля
- Пришлось писать механизм сессий
самим
- Написали асинхронные клиенты для
популярных API
Выбрали Tornado
12
13. В итоге
Удалось переписать за 3 недели * 2 программиста
Скорость разработки увеличилась в 4 раза
На самом деле:
13
15. Типизация в Python
- Гибкость в разработке
- Скорость разработки
- Читаемые ошибки
- Легкая в освоении
- Вы ловите ошибки в продакшене
- Вы точно(!) сложите None и set
- Медленней чем C
- Без культуры разработки - вы
+ -
Динамическая сильная неявная
15
17. Программист
У меня нет времени на тесты
Зачем тесты? Есть же тестировщики
Я не делаю ошибок
*лять, на дворе воскресенье, а я
правлю 100500-ую ошибку из Sentry
17
18. Тесты для стартапа
- Дешевое регресс
тестирование
- Меньше дурацких багов
- МОЖНО БОЛЬШЕ ФИЧ
- Где найти время?
- Где найти денег?
- НУЖНО БОЛЬШЕ ФИЧ
+ -
18
19. В итоге
- Тесты - часть разработки
- Тесты “проданы” бизнесу (бизнес одобряет)
- Пацан накодил - пацан протестил (видео)
- Баг - пишешь сначала тест
- Цепочка dev -> qa > dev -> qa -> dev…
сократилась в 3 раза
Results (95.02s):
1091 passed
19
20. А что он тормозит?
Давай перепишем на * ?
Ситуация #4
21. Команда маркетинга
Мы хотим нагнать дофигилиард юзеров,
мы не упадем?
Мы опять упали, программисты - *?№!
Почему так медленно
данные считаются?!
Сделайте что-нибудь, емае!
Мы не можем продавать.
21
23. В итоге
- Не переписали проект на другой язык
- Но мы:
- Добавили еще тестов
- Начали делать нагрузочные тесты
- Пересмотрели архитектуру системы
- Привлекли крутого админа для настройки
мониторингов
- Начали экспериментировать с языками на JVM
23