Практичные Python-привычки, которые реально повышают качество кода

Практичные Python-привычки: явное состояние и мемоизация, асинхронность для продакшн, ошибки и raise, типизация и валидация, ленивая загрузка и кеширование
Пользователь

Практичные Python-привычки: явное состояние и мемоизация, асинхронность для продакшн, ошибки и raise, типизация и валидация, ленивая загрузка и кеширование

В современном ИТ сложилась парадоксальная ситуация.
С одной стороны, неплохой уровень заботы о сотрудниках, продвинутая служба HR, хорошие зарплаты и неплохие условия труда. С другой, высокий уровень выгорания, несчастья и болезней, даже хуже, чем в прочих отраслях.
Парадокс объясняется просто: в современном ИТ отвратительная организация. Настолько отвратительная, что многих её директоров впору увольнять, потому что именно они отвечают за её значительную часть, но многого не делают.
И получается, что сотрудники постоянно сталкиваются с переработками и избыточным стрессом, паническими релизами и бюрократией, совмещением и размытыми зонами ответственности. И так далее.
В статье кратко, но ёмко раскрываются 36 организационных проблем, решение которых помогут улучшить жизнь сотрудников и результаты бизнеса.
Даже если они не из ИТ-сферы.

Все мы начинали с print() для отладки, но в серьезных проектах это превращается в хаос. Стандартный logging? Мощно, но громоздко. Пора это исправить.
Loguru — это библиотека, которая делает логирование простым, как print(), и мощным, как logging, но без боли и десятков строк конфигурации. В статье покажу, как одной строкой настроить цветные логи, автоматическую ротацию файлов и ловить исключения с полным контекстом переменных. Заходите, чтобы сделать свою отладку в разы приятнее.

Привет, Хабр!
Меня зовут Дмитрий Макаров, я руководитель продукта MULTIDIRECTORY — российской службы каталогов с ядром собственной разработки.
После ухода Microsoft с российского рынка многие инженеры и администраторы столкнулись с вопросом: чем заменить Active Directory? При этом ещё нужно сохранить совместимость и привычные инструменты, обеспечить надежность и безопасность. Samba и FreeIPA казались логичным выбором, но на практике часто оказывались либо сильно устаревшими, либо слишком сложными для использования.
Мы решили начать с нуля и создать службу каталогов, которая сочетала бы знакомый функционал AD с современным стеком, гибкой архитектурой и возможностью интеграции в гибридные инфраструктуры. Так началась история MULTIDIRECTORY (MD).

Всем привет! За полтора года наша команда разработки в YADRO написала с нуля четыре полноценных приложения для операционной системы kvadraOS. Проекты разные по объему, требованиям и связям с системой, но всех их объединяет современный стек (Kotlin + Compose) и чистая архитектура.
Изначально хотела поделиться с вами историями успешных запусков, но передумала. Описание ошибок, на мой взгляд, приносит больше пользы, чем рассказы, как делать хорошо и правильно. Поэтому сконцентрировалась, наоборот, на разном и не всегда позитивном опыте планирования разработки.

Привет, Хаброжители! Сегодня у нас открылся предзаказ на книгу «Кото-математика». Хотим вам рассказать про нее побольше в этом посте.
Мяу-математика? Именно! В своей книге Дэниел М. Лук превращает скучные числа в захватывающие приключения, где каждый урок ведет... кот!
Эта книга — не просто о математике, а о том, что математика вездесуща, даже когда коты управляют миром. В книге нет заумных терминов, она написана легко, в формате веселых диалогов автора с его четырьмя котами-соавторами и бесконечным множеством их пушистых товарищей по математическим играм.
Недавно у меня был небольшой спор с экономистом клиента. Речь шла о том, как понять — сколько должно стоить изделие. Экономист утверждал, что чем тяжелее по весу изделия или, чем дороже материалы, тем оно должно быть дороже. Я же утверждаю, что стоимость изделия никак не связана с весом или стоимостью материалов, а связана с узким местом компании.
Итак, у нас две принципиальные ситуации с ценообразованием.
В мире разработки существует интересное наблюдение: чем опытнее разработчик, тем реже он вступает в бурные перепалки в комментариях к коду или в PR-обсуждениях. Вместо этого зачастую следует тишина — и внезапный коммит с изменениями. В этой статье я попробую разобраться, почему так происходит, какие механизмы внутри движут таким поведением, и что за этим стоит — от человеческих привычек до технической рациональности. Будет мой опыт, немного кода, немного философии — и, пара вопросов для вас для саморазмышления.

Итак, некоторое время назад, я осознал, что для мелкого прототипирования печатных плат мне уже не хватает возможностей ЛУТ/фоторезиста (да и сверлить всё равно потом отверстия надо), поэтому задумал я перейти на следующий уровень — делать мелкие партии печатных плат с помощью ЧПУ фрезера, который и был благополучно приобретён, модели Lunyee 3018 Pro Ultra, и весь дальнейший рассказ будет о том, что это за зверь.
Думаю, что многим будет интересно... ;-)

ИТ-отдел работает как часы: заявки обрабатываются за 2 часа, доступность услуг выше 99%, пользователи довольны. Но каждый месяц финансовый директор спрашивает, почему ИТ-бюджет растёт быстрее бизнеса.
ITSM-система помогла навести порядок в процессах, но не дала ответа на главный вопрос: сколько на самом деле стоит порядок и можно ли тратить меньше без потери качества?
Меня зовут Евгения Асоскова, я владелец продукта SimpleOne ITAM. Давайте поговорим о том, почему компаниям с внедрённой ITSM-системой целесообразно автоматизировать управление ИТ-активами и как это усилит возможности бизнеса.

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

Oracle снова в центре внимания. Компания, долгое время считавшаяся инфраструктурным элементом корпоративных ИТ-систем, внезапно оказалась в центре внимания ИИ.
Это история Oracle Ларри Эллисона, её многолетней трансформации и создания облака, идеально подходящего для эпохи искусственного интеллекта.

На счёт динозавров травоядных, которые особо крупные, надо понимать что это по сути бочки с шеями и кишками. У них размеры были такие, что бы переваривать много жёсткой листвы с ветками вперемешку. Точнее не листвы, а зачастую хвойные ветки, потому что до 66 000 000 лет назад доминировали хвойные деревья на планете. Питаться травой вот такое не могло, разве что трава будет 5 — 10 метров высотой. Собственно динозавры огромных размеров были подстригальщиками лесов тогдашних, делая их светлыми, не густо растущими. Когда динозавры вымерли из за удара метеорита и последующих тысяч лет извержений вулканов, деревья буквально заполонили Землю и резко обеднили количество калорий на квадратный километр.
Вот пример того что шастало — жираффатитаны, 70 тонн. С поправкой, именно этот вид жил между 143 000 000 — 144 000 000 лет назад. Но и перед ударом метеорита 66 000 000 лет, назад наподобие громадины жили.

Давайте поговорим о том, как улитка уха вычисляет звук!
Барабанная перепонка приводится в колебания изменениями давления воздуха (звуковыми волнами). Кости среднего уха усиливают и передают эти колебания в заполненную жидкостью спиралеобразную улитку. Колебания перемещаются по жидкости к базилярной мембране, которая выполняет разделение частот1: более жёсткое и лёгкое основание (base на иллюстрации) резонирует с высокочастотными компонентами сигнала, а более гибкая и тяжёлая вершина (apex) резонирует с низкими частотами. Между двумя концами резонирующие частоты логарифмически снижаются в пространстве2.
Волосковые клетки в разных частях базилярной мембраны колеблются вперёд и назад на частоте, соответствующей их расположению на мембране. Но как колебания волосковых клеток преобразуются в электрические сигналы? Этот механико-электрический процесс похож на кадры из фантастического фильма: пружины, соединённые с концами волосковых клеток, открывают и закрывают ионные каналы с частотой колебаний, что затем вызывает выброс нейромедиаторов.

В мире фронтенда уже давно стали стандартом такие инструменты, как create-react-app или vue create. Они задают несколько вопросов и за секунды разворачивают полностью настроенное рабочее окружение. Почему бы нам не создать такой же удобный помощник для своих Python-проектов?
Некоторое время назад меня попросили обосновать, почему я за Pascal при обучении программирования. А я скорее не конкретно за Pascal, я за наличие у языка для обучения программированию ряда важных свойств. Получается, я скорее против Python (шутка). В результате получилась эта мини-статья.

Человеческая история богата различными управленческими концепциями и практиками. Венцом управленческой мысли стала вторая половина ХХ века, когда проявилось «японское чудо», благодаря которому японские товары захватили мировые рынки. Немалую роль в «чуде» сыграли Кайдзен-принципы. В этой статье поговорим о применении некоторых из них для реализации ИТ-проектов.

Как превратить автотесты в живую документацию(как техническую, так и аналитическую).
Как сделать так, чтобы они рассказывали о предметной области.
И в конце концов, проверяли, что все это работает.

Enterprise Service Management продолжает развиваться как один из ведущих трендов в области корпоративной автоматизации. Истории успеха российских компаний уже показывают, что сегодня ESM становится стратегическим инструментом операционной трансформации. Самый заметный эффект достигается при комплексном подходе: единая платформа для всех подразделений плюс интеллектуальная автоматизация рутинных операций.
В этом обзоре рассмотрим архитектуру современных ITSM и ESM-платформ, как ИИ интегрируется в сервисные процессы, и что это дает бизнесу на примере реальных внедрений.

Представьте ситуацию: вы написали шикарного Telegram-бота, отладили его на своем ноутбуке с Python 3.11 и последней версией любимой библиотеки. Вы отправляете код коллеге, а у него падает с ошибкой, потому что у него Python 3.9 и какая-то зависимость встала криво. Или, что еще хуже, вы пытаетесь выкатить это на сервер, а там системный администратор смотрит на ваш requirements.txt и тяжело вздыхает, потому что для установки одной из библиотек нужна системная утилита, которой нет и не будет. Знакомо?