Рубрика «Moscow Python Conf++»

На конференциях обычно принято рассказывать об успехах: «Мы обучили нейросеть на пяти миллионах Террабайт данных, чтобы отличать красную машину от белой и продали проект Amazon за 5 млрд долларов» Об ошибках при этом не принято рассказывать. Максимум, что встречается: «Мы немного напортачили, но за полчаса разобрались, ничего особенного».

«Я что-то накодил и все упало»: провалы в Python-разработке на Russian Python Week 2020 - 1

Когда вокруг только истории «успешного успеха» даже сеньоры и техлиды чувствуют себя неуверенно — ведь они сравнивают успех спикера со своими ошибками. И сравнение не в пользу участников. Мы решили сломать эту тенденцию и на Russian Python Week запускаем целую секцию под кодовым названием «FailPy». Она будет посвящена провалам Python-разработчиков. Расскажем зачем и для кого это нужно.
Читать полностью »

Синий кит — отличный пример того, как проектирование сложного проекта пошло не по плану. Кит внешне похож на рыбу, но он млекопитающее: кормит детенышей молоком, у него есть шерсть, а в плавниках до сих пор сохранились кости предплечья и кистей с пальцами, как у сухопутных. Он живет в океанах, но не может дышать под водой, поэтому регулярно поднимается на поверхность глотнуть воздуха, даже когда спит. Кит самое большое животное в мире, длиной с девятиэтажный дом, а массой как 75 автомобилей Volkswagen Touareg, но при этом не хищник, а питается планктоном.

Когда разработчики работали над китом, то не стали писать все с нуля, а использовали наработки из старых проектов. Он словно слеплен из несовместимых частей кода, которые не тестировались, а все проектирование сводилось к выбору фреймворка и к срочному «велосипедированию» уже в продакшне. В итоге получился проект красивый внешне, но с кусками дремучего легаси и костылей под капотом.

Инструменты Domain Driven Design - 1

Для создания проектов, которые помогают бизнесу зарабатывать, а не похожих на морское животное, которое не может дышать под водой, есть DDD. Это подход, который фокусируется не на инструментах или коде, а на изучении предметной области, отдельных бизнес-процессов и на том, как код или инструменты работают для бизнес-логики.

Что такое DDD и какие инструменты в нем есть, мы расскажем в статье на основе доклада Артема Малышева. Подход DDD в Python, инструменты, подводные камни, контрактное программирование и проектирование продукта вокруг решаемой проблемы, а не используемого фреймворка — все это под катом.
Читать полностью »

Legacy-код — это «старый» код, возраст которого может быть как 2 месяца, так и 10 лет. Часто его писали разработчики, о которых в компании смутно помнят. Возможно, их вообще не было, а legacy-код родился вместе со Вселенной во время Большого Взрыва. С тех пор требования к нему менялись много раз, код правили в режиме «нужно было еще вчера», а документацию никто не писал, как и тесты. Legacy-код запутан и хрупок, в нем не видно ни начала, ни конца. Как к нему подступиться?

Укрощая зверя: legacy-код, тесты и вы - 1
Здесь и далее кадры из сериала «Рик и Морти». Авторы Джастин Ройланд и Дэн Хармон.

Подбираться к нему нужно с тестов, но готовьтесь к боли. Проблемы начнутся уже с того момента, как вы решите взяться за такой проект. Вам нужно понять, зачем вы хотите за него браться, убедить руководство одобрить тестирование legacy-кода, а коллег — помочь. После этого возникнут вопросы, с чего начать изучение, какие тесты запустить первыми и как все не сломать? Но главное — как не впасть в отчаяние, когда поймете, что работе нет конца.

Кирилл Борисов 12 лет в индустрии, за эти годы прошел долгий путь по костылям, битому коду и гниющим каркасам старых систем: от монолитных учетных систем до микросервисов авторизации. Путешествие наградило его опытом и историями, которыми он поделится в виде ценных советов.Читать полностью »

Мы строили-строили, и наконец построили: расписание Moscow Python Conf++ собрано, проверено, перепроверено и опубликовано. Не то чтобы работа Программного комитета на этом заканчивалась (за два-то месяца до конференции, ну-ну), но 10 месяцев явно потрачено не зря, и я с нетерпением жду результата, заложив все возможное для общения разработчиков друг с другом.

Сейчас расскажу, какой получилась программа конференции, и выбора у нас просто не останется. На площадке в центре Москвы будет: 3 потока докладов, поток воркшопов и митапов, 4 Core-разработчика (я до сих пор не знаю, считать ли Python Core-разработчиком заведующего разработкой Pytest и Hypothesis), 6 зарубежных спикеров с нетривиальным опытом, доклады от Microsoft, Wargaming, JetBrains, Parallels, EPAM, Booking.com, Tinkoff и других не менее интересных компаний. Ни одной проходной темы, я проверил. Каждый докладчик по-своему интересен, и каждая тема точно найдет тех, кому есть что обсудить со спикером. В этой статье я максимально кратко расскажу обо всех наших гостях: акцент на спикерах, по темам вы и сами сориентируетесь.

На Moscow Python Conf++ приходите поговорить с разработчиками языка - 1
Читать полностью »

Темные силы не дремлют. Они пробираются в дивное королевство Python и используют черную магию, чтобы осквернить главную реликвию — чистый код. Однако опасны не только злые чары.

Сегодня я расскажу о страшных чудовищах, которые, возможно, уже обжились в вашем коде и готовы устанавливать свои правила. Здесь нужен герой, который защитит безмятежный мир от злобных тварей. И именно вы станете тем, кто сразится с ними!

Чистое зло Python - 1

Читать полностью »

Мы всегда хотим писать код быстро, но за это приходится платить. На обычных высокоуровневых гибких языках можно быстро разрабатывать программы, но после запуска они работают медленно. Например, чудовищно медленно cчитать что-то тяжелое на чистом Python. Си-подобные языки работают гораздо быстрее, но в них легче наделать ошибок, поиск которых сведет весь выигрыш в скорости на нет.

Обычно эта дилемма решается так: сначала пишут прототип на чем-то гибком, например, на Python или R, а потом переписывают на C/C++ или Fortran. Но этот цикл слишком длинный, можно ли обойтись без этого?

А что, если без Python? Julia для машинного обучения и вообще - 1

Возможно, решение есть. Julia — высокоуровневый и гибкий, но при этом быстрый язык программирования. В Julia есть множественная диспетчеризация, встроенный умный компилятор и инструменты метапрограммирования. Подробнее о том, что есть в Julia, расскажет Глеб Ивашкевич (phtRaveller) — основатель datarythmics, которая занимается разработкой систем машинного обучения для промышленности и других отраслей, в прошлом физик.

Глеб объяснит, зачем нужны новые языки и почему иногда Python не хватает. Расскажет, что в Julia интересного, о ее сильных и слабых сторонах, сравнит с другими языками, и покажет, какая у языка перспектива в машинном обучении и вычислениях вообще.

Дисклеймер. Здесь не будет разбора синтаксиса. читатели опытные разработчики, поэтому нет смысла показывать, как написать цикл, например.
Читать полностью »

Знакомы ли вы с историей Python packaging? Ориентируетесь ли в форматах пакетов? Знаете ли, что распутывать клубок зависимостей придется даже когда кажется, что вот оно чудо — zero dependency? Уверен, что знакомы со всем этим не так хорошо, как автор библиотеки DepHell.

Хаос зависимостей в Python - 1

Мне удалось поговорить с Никитой Вороновым, больше известным как Gram или orsinium, и расспросить его о теме будущего доклада и болях плохих решений резолвинга зависимостей. Мы поговорили о DepHell, pip, принципе first match wins, о Гвидо и сообществе, Pipflie, инкрементальном развитии Python, какое решение из Go можно было бы взять в Python, и о будущем экосистемы в плане работы с зависимостями.
Читать полностью »

Вы скажете, какое вообще дело мобильному разработчику до того, на чем написан бэкенд. Главное, чтобы API туда был удобный, понятный, гибкий. А нам так не кажется.

Мы в AppsConf думаем, что всем нам необходимо иногда выходить за пределы мобильной разработки и прокачивать шляпку буквы T в модели T-shape. Вот, например, познакомиться с серверными языками чуть глубже, чем: «Я слышал, что Ruby умер». И чуть шире — то есть не только, с популярными, но и из вторых рядов и даже андеграундными.

Чтобы и вы прониклись идеей Introductory-трека, записали интервью с Никитой Соболевым. Собирались говорить о языках программирования, а получилось о программистах. Заходите под кат, если считаете, что лучше быть просто хорошим разработчиком, а не Android- или iOS-разработчиком, а особенно, если не согласны с этим. Пятница — самое время поспорить.
Читать полностью »

Самыми горячими темами Moscow Python Conf++ оказались асинхронная разработка, а также сопоставление Python, его лучших практик и инструментария с аналогами из других языков, и его место в ландшафте современной разработки. Плюс мы пригласили выступить Бенджамина Петерсона, одного из разработчиков CPython, Григория Бакунова из Яндекса и многих других очень интересных людей.

Изюминки прошедшей Moscow Python Conf++ 2019: трансформация в площадку для общения - 1

Четвёртая по счёту и вторая, устраиваемая совместно с нашей командой, Moscow Python Conf++ заметно трансформировалась. Что происходило на мероприятии, чем оно выделялось среди отраслевых IT-форумов, какой профит и удовольствие принесло участникам — в нашей короткой фотозарисовке с площадки.

Читать полностью »

Эксперимент по подготовке докладов на Moscow Python Conf ++ с нуля на финишной прямой. Слайды готовы, прогоны провели, осталось только дождаться премьеры — уже в эту пятницу 5 апреля. В расписании 24 доклада про использование Python в продакшене крупных компаний. Под катом — взгляд на организацию глазами программного комитета и смешные проблемы вроде «кого ставить в параллель хедлайнеру, чтобы не было пустых залов и обиженных спикеров».
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js