Как стать автором
Обновить
-3
0
Денис @Doman

QA

Отправить сообщение

Как быстро написать API на FastAPI с валидацией и базой данных

Время на прочтение 11 мин
Количество просмотров 19K

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

В этой статье мы разработаем простой API с помощью самого популярного стека и FastAPI. Рассмотрим важные концепции в работе с этим фреймворком, набросаем базовую структуру проекта и развернем приложение на облачном сервере. Подробности под катом!
Читать дальше →
Всего голосов 53: ↑48 и ↓5 +43
Комментарии 39

Хабр — Итоги 2023 года

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 18K

Итак, 2023 год. Обнаружена планета с высокой вероятностью существования жизни, на 3D‑принтере учатся печатать сердце, сделаны шаги в борьбе с раком и деменцией, одобрили первое лекарство от болезни Альцгеймера и разработали препарат от болезни Бехтерева, пересадили глаз целиком, запустили GPT-4 и целую кучу нейронок — и это только малая часть итогов года. 2023, как и все остальные, дал нам много нового в науке, карьере, что‑то изменил у каждого в жизни. Менялся и Хабр: где‑то заметно, где‑то не очень, на уровне логики, чтобы каждому пользователю стало чуть быстрее и чуть приятнее. Традиционно в конце года мы всех посчитали и делимся самым важным с самыми важными — с пользователями, читателями и гостями Хабра.

Читать далее
Всего голосов 149: ↑149 и ↓0 +149
Комментарии 106

Регулярные выражения для технических писателей и не только

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 4.8K

Однажды мы в documentat.io решили спасти наших техписов от рутинной ручной замены кавычек и написали для них статью про умную автозамену — с использованием регулярных выражений. Теперь решили поделиться ей на Хабре.

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

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 3

Моя любимая задачка по программированию для кодинг-интервью

Время на прочтение 10 мин
Количество просмотров 68K

За время работы в Google я провёл более двух сотен интервью. И главное, что я вынес из этой работы — проводить качественные собеседования очень непросто. Все дело в сигналах, которые мы посылаем и получаем. И у интервьюера, и у самого кандидата есть меньше часа, чтобы выложиться на полную. Порой, по разным причинам, мы получаем друг от друга ложные или неточные сигналы. Такова уж человеческая природа.

С годами я выработал вопрос по кодингу, который мне самому очень нравится. Это до жути простой и в то же время заковыристый вопрос. Решение занимает не более 30 строк кода, но зато даёт мне все нужные сигналы для вынесения верной оценки кандидату. Кроме того, мой вопрос отлично масштабируется и подходит как стажёрам, так и опытным инженерам. Здесь я не стремлюсь доказать, что мой вопрос лучше какого-то другого. Я лишь хочу объяснить, как он помогает мне как интервьюеру и на что я обращаю внимание на собеседовании по программированию.

В этой статье будут вещи, с которыми вы можете не согласиться. Это нормально. Это просто моё мнение, а так как я уже вышел на пенсию, то больше не представляю опасности ни для интервьюеров, ни для инженеров Google при принятии решений о найме! ;-)

Читать далее
Всего голосов 77: ↑63 и ↓14 +49
Комментарии 344

Асинхронный python без головной боли (часть 1)

Время на прочтение 14 мин
Количество просмотров 254K

Почему так сложно понять asyncio?

Асинхронное программирование традиционно относят к темам для "продвинутых". Действительно, у новичков часто возникают сложности с практическим освоением асинхронности.

Но будь я автором самого толстого в мире учебника по python, я бы рассказывал читателям про асинхронное программирование уже с первых страниц. Вот только написали "Hello, world!" и тут же приступили к созданию "Hello, asynchronous world!". А уже потом циклы, условия и все такое.

Съешь красную таблетку
Всего голосов 135: ↑135 и ↓0 +135
Комментарии 56

Как написать идеальный автотест: 25 джедайских принципов

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 13K

Привет! Меня зовут Дмитрий Трофимов (@angryqa во ВКонтакте или @trofimovdigital на просторах интернета). Я тимлид отдела автоматизации тестирования в VK ID. С командой мы проделали большой путь при внедрении автотестов в наш продукт, и на этом пути мастерски овладели принципами написания идеальных тестов, которыми спешу поделиться с вами.

Читать далее
Всего голосов 35: ↑34 и ↓1 +33
Комментарии 8

Grafana и автотесты: учимся измерять работу тестов

Время на прочтение 8 мин
Количество просмотров 16K
Управление — трудоёмкая работа, которая усложняется при отсутствии подходящего инструмента. Легко упустить из виду постоянно меняющиеся компоненты и сложно быть в курсе событий: что-то обязательно проходит незамеченным.

Grafana позволяет собрать на одном экране разную информацию:
  • результаты тестов в режиме реального времени,
  • срезы по окружениям, браузерам и чему угодно ещё,
  • скорость выполнения тестов,
  • покрытие тестами страниц и действий на них,
  • результаты релизов.

Этот список можно продолжать и вводить новые метрики для задач тестирования. Расположение метрик на одном экране позволяет получать прозрачные отчёты о тестировании, которые понятны и инженерам, и руководителям. Главное в этом деле — научиться измерять и правильно подсвечивать проблемы. Тогда управлять тестированием станет проще.

На примерах наших тестов покажу, как Grafana помогает в анализе результатов автотестирования, чтобы точнее понимать, что происходит.

image
Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Комментарии 8

CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

Время на прочтение 6 мин
Количество просмотров 49K

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

В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привык полагаться. Если тут нет вашего любимого - дайте мне знать в комментариях :)

Читать далее
Всего голосов 114: ↑107 и ↓7 +100
Комментарии 83

Что читать техлиду: 7 увлекательных книг

Время на прочтение 6 мин
Количество просмотров 27K

Какие качества отличают хорошего технического лида? Уверены, как минимум инициативность, стратегическое видение, интерес к новым практикам и инструментам, идущие рука об руку с желанием постоянно развиваться. Немалую роль в lifelong learning техлида могут сыграть правильно подобранные книги.

Немет, Луц, Лав, Танненбаум, Страуструп, Олифер, Лукас — вот лишь некоторые известные авторы, о которых мы сегодня не будем говорить. Надеемся, что раз вы стали лидером технической команды, то с фундаментальной литературой в своей области знаний знакомы не понаслышке.

Под катом рекомендуем 7 изданий о soft-skills, методологиях, управлении командами и проектами.

Читать далее
Всего голосов 64: ↑62 и ↓2 +60
Комментарии 16

5 способов выбрать тему для выступления на ИТ-конференции

Время на прочтение 7 мин
Количество просмотров 4.3K

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

Под катом рассказываем, как найти увлекательную тему для технического доклада или экспертной статьи. Материалы будут полезны не только начинающим спикерам, но и опытным разработчикам, специалистам DevRel, Tech PR, а также всем, кто развивает личный бренд или бренд компании-работодателя.

Читать далее
Всего голосов 34: ↑31 и ↓3 +28
Комментарии 0

Что будет, если от разработчиков не отстать: умирающая команда

Время на прочтение 11 мин
Количество просмотров 60K
Мне досталась команда, которая болела. Все понимали, что происходит, никому не нравилось, что творится в команде, и традиционно менеджеры такие команды сильно режут. Но здесь были шансы вылечить и без ампутаций.


Источник

15 человек, из них — один руководитель проекта, три фронта, два бэка, три аналитика, девопс. Симптомы обычные: процессы всем не нравятся, соседи — козлы, потому что не то и не так делают, а как нужно — не знают, ответственности ни на ком толком нет ни за что.

Вроде бы когда-то это был настроенный конвейер, но теперь его куски — как будто в разных зданиях. Особо не заботятся о том, что было «до» и что будет «после». А если всё падает, то люди поднимают руки: «Я не виноват. Я не знаю, как поднять».

Проект — внутренний банка, он нужен для улучшения работы внутри компании. Традиционных решений в кровавом энерпрайзе — два: нанять новую команду (но вгружать мидла на проект такой сложности — три-четыре месяца) или же оставить проект на поддержке, через два года найти ему замену, а команду тихо похоронить в подвале. Точнее, не так: те, кто плывет по течению и не заботится о карьере, остаются тихо сидеть «на пенсии», то есть в бесконечной поддержке проекта. А самые проактивные тут же перейдут в другие команды или другие компании.

Почему процессы разваливались? На первый взгляд, потому, что была куча ненужных совещаний и встреч с теми, кого разработчики вообще не должны были видеть. Плюс местами странноватые KPI. Как это ни странно, но если психологически давить на разработчика пару лет, то ничем хорошим это не закончится. Руководство подразделения дало мне карт-бланш на исправления, и я начал разбираться, что же случилось.
Читать дальше →
Всего голосов 213: ↑209 и ↓4 +205
Комментарии 74

«Бесполезные» доклады о том, как кочегарить, инференсить и моделировать LTV: как прошёл Data Science Meet Up #2

Время на прочтение 6 мин
Количество просмотров 1.8K

11 августа мы провели Data Science Meet Up #2. Повестка митапа — работа с данными кредитных продуктов, а тематическая — киберпанк. Это был второй митап по DS, но первый тематический. Для тех, кто не смог поучаствовать, немного расскажем как прошёл митап и поделимся конспектами докладов и ссылками на записи, если захотите посмотреть какое-то выступление полностью, а не в нашем урезанном виде. Под катом: фотографии, доклады от джунов, которым не верят, что они джуны и жёсткая обратная связь от участника.

Читать далее
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 4

Стратегии тестирования микросервисов

Время на прочтение 11 мин
Количество просмотров 32K

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

Читать далее
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 4

Дизайн-система не равно UI-kit

Время на прочтение 5 мин
Количество просмотров 14K

Дизайн-системы и UI-киты сейчас воспринимаются как равнозначные или тождественные. Но это не так! Более того, смешивать их будет чистым дилетантством, что недопустимо для современных UI/UX-дизайнеров и фронтендеров. В этой заметке я — Денис Пушкарь, оунер дизайн-системы Ростелекома — объясню почему.

Читать
Всего голосов 22: ↑20 и ↓2 +18
Комментарии 13

Реверс-инжиниринг протокола записи адресов микросхемы UCS512

Время на прочтение 8 мин
Количество просмотров 3K

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

Лента, которую я использую, оснащена яркими RGB-светодиодами SMD 5060 с тремя кристаллами каждый и микросхемами управления UCS512C. Каждый пиксель управляется индивидуально и состоит из шести светодиодов.

Для передачи данных используется стандартный дифференциальный сигнал интерфейса RS48 -два сигнала управления: А и В, что позволяет передавать цифровой сигнал на большое расстояние.

Для управления светодиодной лентой может быть использован любой внешний контроллер с интерфейсом DMX512.

Все хорошо, но есть одно НО. Пиксели на ленте не имеют привычных для ДМХ512 DIP-переключателей для задания ДМХ512 адреса. Установка DMX-адресов в микросхемах UCS512C выполняется при помощи внешнего специализированного редактора. Найти описание на протокол настройки адресов микросхем UCS512C мне так и не удалось. Представленной информации достаточно для создания собственного редактора адресов микросхем UCS512C. Я не гарантирую, что точно понял алгоритм записи адресов. Поэтому, вы используете эту информацию на свой страх и риск. Информация собрана по крупицам и представлена в виде временных диаграмм работы интерфейса с некоторыми пояснениями.

На рисунке 1 представлен полностью обмен между контроллером задания адреса и лентой на микросхеме UCS512C. Далее на временных диаграммах Chenal1  - это RS485А , а Chenal2  - это RS485В. Задание адреса происходит передачей двух пакетов. На соответствующих временных диаграммах будет раскрыта структура данных пакетов более детально.

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 0

Советы по разработке игр от создателя Civilization Сида Мейера

Время на прочтение 14 мин
Количество просмотров 31K

В своей книге «Сид Мейер: Жизнь в мире компьютерных игр» знаменитый разработчик рассказывает о ключевых моментах карьеры, много шутит и через всю книгу дает советы и лайфхаки по разработке игр. А в этой статье основные из них — перевод под катом.

Читать далее
Всего голосов 63: ↑63 и ↓0 +63
Комментарии 27

Невидимые убийцы в воздухе: как продлить себе жизнь, контролируя уровень чистого воздуха и PM₂,₅

Время на прочтение 24 мин
Количество просмотров 30K


О чем вы беспокоитесь больше: о физических упражнениях, употреблении овощей или о воздухе, которым вы дышите?

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

Давайте посмотрим на это с разумной стороны: возьмем четыре самые большие страны мира и сравним, сколько людей умерло по тем или иным причинам в 2019 году.

image

Трудно отдавать приоритет советам по здоровью. Мне сказали, что мне следует ограничить употребление соли и есть крестоцветные овощи, делать кардио, хорошо спать, ограничить употребление алкоголя, уменьшить уровень стресса и регулярно проходить медицинские осмотры. Но насколько каждая из этих рекомендаций имеет значение? Что делать в первую очередь, если вы безволосая обезьяна, склонная совершать ошибки?

Чтобы ответить на этот вопрос, нам нужны числа. Ниже я оценил, насколько различные факторы влияют на жизнь через качество воздуха.

Образ жизни
Быть викингом стоит 4 года жизни.
Жить в Дели стоит 3 года жизни.
Постоянно ездить на поезде из Ньюарка в Нью-Йорк стоит 6 месяцев жизни
Проживание в средней части США стоит 3 месяца жизни
(Вдыхать дым от чьего-то вейпа — около 0?)

Отдельно взятое событие
Если вы жили рядом с лесными пожарами на западном побережье США 2020 года, то это стоило вам 2,4 дня жизни.
Разжечь дома по-настоящему дымный огонь стоит 1 день жизни
Жечь конусное благовоние — 2,3 часа жизни
Одну ночь использовать ультразвуковой увлажнитель воздуха — 50 минут жизни
Жарить рыбу при закрытых окнах — 45 минут жизни
Жечь благовония-палочки — 27 минут жизни
Использование лака для волос — 14 минут жизни
Выкурить одну сигарету — 11 минут жизни
Задуть свечу перед сном — 10 минут жизни
Читать дальше →
Всего голосов 55: ↑46 и ↓9 +37
Комментарии 76

Ещё один Билд-светофор в офисе

Время на прочтение 2 мин
Количество просмотров 4K

В своё время меня очень вдохновила идея создания билд-светоформа, описанного моими коллегами на Хабре здесь. В моём случае получился не билд-светофор, а билд-лампа. Пример моей реализации в статье под катом.

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 15

Управляем дюймовыми жалюзи дешево

Время на прочтение 8 мин
Количество просмотров 28K

Еще летом, когда светит яркое солнце мне надоело крутить ручку закрытия/открытия жалюзи в офисе как на этой гифке и пришла идея их автоматизировать.



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

Всего голосов 22: ↑22 и ↓0 +22
Комментарии 19

Английский для работы: советы из собственного опыта

Время на прочтение 6 мин
Количество просмотров 31K
Английский востребован не только в аутсорсинговых, но и во многих продуктовых компаниях. Вписать языковые курсы в свой и без того насыщенный график – задача не простая, но реальная. В статье мы расскажем о проверенной программе обучения, раскроем особенности разных форматов занятий и перечислим полезные онлайн-ресурсы.


Читать дальше →
Всего голосов 13: ↑9 и ↓4 +5
Комментарии 11

Информация

В рейтинге
4 365-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Test Automation Engineer, Quality Assurance Engineer