Pull to refresh
73
Karma
0
Rating
Никита Соболев @sobolevn

CTO at wemake.services

  • Followers 204
  • Following

Делаем тесты частью приложения

Website development *Python *Django *Functional Programming *
Translation

Сегодня я собираюсь обсудить абсолютно новую для многих пользователей (особенно для питонистов) идею: интеграцию тестов в ваше приложение.

Итак, давайте начнем.

Читать далее
Total votes 9: ↑7 and ↓2 +5
Views 3.2K
Comments 2

Исправь код, продай техническую фигню, покрути рулетку на Russian Python Week 2020

Конференции Олега Бунина (Онтико) corporate blog Website development *Python *Development Management *
Рефакторинг — сложная вещь. У каждого разработчика свои критерии хорошего, плохого и красивого кода. Из-за двух строк можно развернуть холивар на две страницы комментариев на Хабре. Почему бы тогда не сделать «Битву рефакторинга»? Мы и сделаем — с 14 по 18 сентября на Russian Python Week 2020 запускаем такую битву. На битве каждый может улучшить или «разбомбить» код своего коллеги в прямом эфире. Что это за формат и как пройдет, расскажем дальше.


Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 1.5K
Comments 0

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

Конференции Олега Бунина (Онтико) corporate blog Abnormal programming *Python *Development Management *
На конференциях обычно принято рассказывать об успехах: «Мы обучили нейросеть на пяти миллионах Террабайт данных, чтобы отличать красную машину от белой и продали проект Amazon за 5 млрд долларов» Об ошибках при этом не принято рассказывать. Максимум, что встречается: «Мы немного напортачили, но за полчаса разобрались, ничего особенного».



Когда вокруг только истории «успешного успеха» даже сеньоры и техлиды чувствуют себя неуверенно — ведь они сравнивают успех спикера со своими ошибками. И сравнение не в пользу участников. Мы решили сломать эту тенденцию и на Russian Python Week запускаем целую секцию под кодовым названием «FailPy». Она будет посвящена провалам Python-разработчиков. Расскажем зачем и для кого это нужно.
Читать дальше →
Total votes 31: ↑30 and ↓1 +29
Views 6.1K
Comments 5

Какая асинхронность должна была бы быть в Python

Конференции Олега Бунина (Онтико) corporate blog Website development *Python *Programming *Functional Programming *
В последние несколько лет ключевое слово async и семантика асинхронного программирования проникла во многие популярные языки программирования: JavaScript, Rust, C#, и многие другие. Конечно, в Python тоже есть async/await, они появились в Python 3.5.

В этой статье хочу обсудить проблемы асинхронного кода, порассуждать об альтернативах и предложить новый подход поддерживать и синхронные, и асинхронные приложения одновременно.
Читать дальше →
Total votes 23: ↑17 and ↓6 +11
Views 8.2K
Comments 14

Священный холивар «Python vs Go»

Конференции Олега Бунина (Онтико) corporate blog Website development *Python *Programming *Go *
Выбери, на какой стороне ты, и встань на защиту своего любимого языка в решающей битве на Russian Python Week.



Что будет?


Бескомпромиссная интеллектуальная битва двух противоборствующих лагерей. Никто заранее не знает, кто победит.

Холивар «Python vs Go» на Russian Python Week не будет:

  • мнением одного «эксперта»;
  • выступлением одного спикера, в котором, пускай и аргументированно, победитель заранее известен;
  • сравнением на синтетических тестах;
  • набором бенчамрков, которые заведомо выгодны для одного участника.

Битву начнут два представителя Python- и Go-сообщества, но каждый участник сможет повлиять на её ход. Конечное решение останется за вами.
Total votes 35: ↑19 and ↓16 +3
Views 10K
Comments 24

9 лучших опенсорс находок за март 2020

Website development *Python *JavaScript *Programming *Software

Доброго карантинного апреля, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за март 2020.


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Rust, TypeScript, JavaScript, Go, Python.
Тематика: веб разработка, тестирование, инструменты разработчика, администрирование и документирование.


Прошлый выпуск (аж ноябрь 2019!).

Читать дальше →
Total votes 46: ↑45 and ↓1 +44
Views 21K
Comments 8

Как заставить машину написать тесты из кода за тебя

Конференции Олега Бунина (Онтико) corporate blog IT systems testing *Python *Programming *Web services testing *
Мы живем в неидеальном мире. Здесь код пишут люди, а люди по своей природе склонны совершать ошибки. Все бы ничего, ошибки можно отловить на этапе тестирования и не дать им никому навредить. Можно, если писать тесты. Чего люди делать почему-то не любят. Но возможно, есть надежда — автогенерация тестов из написанного кода.

Юлия Волкова хочет проверить идею в реальности и пробует переложить на машину создание тестов на основе кода, причем без использования дополнительных инструкций или контрактов. О том, какие открытия приносит путешествие в мир метапрограммирования, AST, синтаксического анализа и токенизации, и чего это все позволило добиться в автогенерации тестов, Юлия расскажет на Moscow Python Conf++. А пока я расспросил, откуда появилась сама идея — автоматизировать тестирование, что лежит в основе прототипа и с чем еще предстоит справиться.
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Views 8.5K
Comments 8

Чистое зло Python

Конференции Олега Бунина (Онтико) corporate blog Open source *Python *Programming *Perfect code *

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


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



Читать дальше →
Total votes 45: ↑33 and ↓12 +21
Views 23K
Comments 26

Когда код становится legacy и как с ним жить

Конференции Олега Бунина (Онтико) corporate blog Python *Programming *Perfect code *Designing and refactoring *
Много лет назад, я пришел в один legacy-проект, который разрабатывал Владимир Филонов (pyhoster). Так я и познакомился с одним из организаторов MoscowPython, любителем копаться во внутренностях библиотек, а потом рассказывать об этом. Иронично, что теперь он собирается рассказывать, как выжить, если вам достался legacy. Это еще раз доказывает, что legacy порождают даже те, кто потом учит, как с этим жить. Мне очень хочется расспросить Владимира о том, что такое legacy, как им поменьше зарастать, как бороться, когда уже по уши в legacy, а когда всё бросать и писать заново (спойлер: никогда).

Но сперва посмотрите ролик, чтобы прочувствовать всю боль погружения в legacy…

Total votes 28: ↑27 and ↓1 +26
Views 13K
Comments 6

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

Конференции Олега Бунина (Онтико) corporate blog Website development *Python *Programming *Go *
Знакомы ли вы с историей Python packaging? Ориентируетесь ли в форматах пакетов? Знаете ли, что распутывать клубок зависимостей придется даже когда кажется, что вот оно чудо — zero dependency? Уверен, что знакомы со всем этим не так хорошо, как автор библиотеки DepHell.



Мне удалось поговорить с Никитой Вороновым, больше известным как Gram или orsinium, и расспросить его о теме будущего доклада, болях плохих решений резолвинга зависимостей, о DepHell, pip, принципе first match wins, о Гвидо, Pipfile, инкрементальном развитии Python и будущем экосистемы.
Читать дальше →
Total votes 33: ↑31 and ↓2 +29
Views 14K
Comments 8

9 лучших опенсорс находок за ноябрь 2019

Website development *Python *JavaScript *Server Administration *Web services testing *

Доброй зимы, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за ноябрь 2019.


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Rust, TypeScript, JavaScript, Go, Python.
Тематика: веб разработка, инструменты для QA, работа с данными, инструменты разработчика и администратора.


Прошлый выпуск.

Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Views 19K
Comments 19

9 лучших опенсорс находок за октябрь 2019

Website development *Python *JavaScript *Development of mobile applications *Big Data *

Доброго ноября, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за октябрь 2019.


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Rust, Swift, TypeScript, JavaScript, Go, Scala, Python.
Тематика: веб и мобильная разработка, визуализация данных, инструменты разработчика, документация.


Прошлый выпуск.

Читать дальше →
Total votes 40: ↑37 and ↓3 +34
Views 30K
Comments 13

Complexity Waterfall and Architecture on Demand

Website development *Python *Programming *Perfect code *

Logo


When talking about "bad code" people almost certainly mean "complex code" among other popular problems. The thing about complexity is that it comes out of nowhere. One day you start your fairly simple project, the other day you find it in ruins. And no one knows how and when did it happen.


But, this ultimately happens for a reason! Code complexity enters your codebase in two possible ways: with big chunks and incremental additions. And people are bad at reviewing and finding both of them.

Read more →
Total votes 5: ↑5 and ↓0 +5
Views 1.2K
Comments 0

9 лучших опенсорс находок за сентябрь 2019

Website development *Python *JavaScript *Programming *Software

Доброго Хактоберфеста, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за сентябрь 2019.


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Python, C, Rust, Ruby, JavaScript, Go.
Тематика: веб разработка, администрирование, инструменты разработчика.


Прошлый выпуск.

Читать дальше →
Total votes 115: ↑112 and ↓3 +109
Views 52K
Comments 19

9 лучших опенсорс находок за август 2019

Website development *Python *JavaScript **nix *Rust *

Доброй осени, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за август 2019.


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Python, Rust, JavaScript, Go.
Тематика: веб разработка, администрирование, инструменты разработчика.

Читать дальше →
Total votes 76: ↑74 and ↓2 +72
Views 50K
Comments 44

Typechecking Django and DRF

Website development *Python *Django *
Tutorial

As you have already know I love optional static typing. The thing is that sometimes it is not optional, but impossible. Because we have plenty of big untyped projects in Python's ecosystem.


Django and Django-Rest-Framework were two of them. Were. Because now they can be typed! Let me introduce TypedDjango organisation and stubs for django and drf.


This is going to be a concise tutorial and getting started guide.

Read more →
Total votes 2: ↑2 and ↓0 +2
Views 4K
Comments 0

Really typing Vue

Website development *JavaScript *VueJS *TypeScript *

Logo


inb4: This is not another "setting up" a new project with Vue and TypeScript tutorial. Let's do some deep dive into more complex topics!


typescript is awesome. Vue is awesome. No doubt, that a lot of people try to bundle them together. But, due to different reasons, it is hard to really type your Vue app. Let's find out what are the problems and what can be done to solve them (or at least minimize the impact).

Read more →
Total votes 11: ↑11 and ↓0 +11
Views 6.4K
Comments 1

Исключения в Python теперь считаются анти-паттерном

Конференции Олега Бунина (Онтико) corporate blog Website development *Python *Programming *Perfect code *
Что такое исключения? Из названия понятно — они возникают, когда в программе происходит исключительная ситуация. Вы спросите, почему исключения — анти-паттерн, и как они вообще относятся к типизации? Я попробовал разобраться, и теперь хочу обсудить это с вами, хабражители.

Проблемы исключений


Трудно найти недостатки в том, с чем сталкиваешься каждый день. Привычка и зашоренность превращает баги в фичи, но давайте попробуем взглянуть на исключения непредвзято.

Исключения трудно заметить


Существует два типа исключений: «явные» создаются при помощи вызова raise прямо в коде, который вы читаете; «скрытые» запрятаны в используемых функциях, классах, методах.

Проблема в том, что «скрытые» исключения и правда трудно заметить. Покажу на примере чистой функции:

def divide(first: float, second: float) -> float:
    return first / second

Функция просто делит одно число на другое, возвращая float. Типы проверены и можно запустить что-то такое:  

result = divide(1, 0)
print('x / y = ', result)

Заметили? На самом деле до print исполнение программы никогда не дойдет, потому что деление 1 на 0 – невозможная операция, она вызовет ZeroDivisionError. Да, такой код безопасен с точки зрения типов, но его все равно нельзя использовать.
Читать дальше →
Total votes 116: ↑71 and ↓45 +26
Views 45K
Comments 149

Собеседование для собеседующих

Personnel Management *IT career


Вам знакома ситуация, что вы вышли после интервью в серьезную компанию, но чувствуете себя как школьник проваливший контрольную с суровым преподом? Или вам знакома ситуация, что кандидат так и не задал вам ни одного вопроса за все время собеседования, но почему: или ему не интересно, или он все для себя уже решил, или просто засмущался?


Собеседование – обоюдный процесс. Компания ищет себе инженера, инженер ищет себе компанию. Однако, баланс явно смещен в сторону "компания ищет", несмотря на острый кадровый голод на рынке.


В данной статье я рассмотрю, какие проблемы сейчас существуют, и предложу свой вариант улучшения: cross-interview.

Читать дальше →
Total votes 15: ↑13 and ↓2 +11
Views 20K
Comments 87
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity