Search
Write a publication
Pull to refresh
5
0
Станислав Томилов @zeezdev

full stack разработчик

Send message

Как не облажаться с типами данных в PostgreSQL

Level of difficultyMedium
Reading time19 min
Views9.9K

Недавно вышла отличная книга PostgreSQL Mistakes and How to Avoid Them от Jimmy Angelakos — системного архитектора, практика и давнего участника сообщества PostgreSQL. Книга подробно разбирает распространённые ошибки, с которыми сталкиваются разработчики и администраторы при работе с PostgreSQL, и предлагает практичные решения: от тонкостей конфигурации и миграции до антипаттернов в SQL и выбора типов данных.

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

timestamp without time zone может ломать логику расчёта интервалов;

money — это не то, чем кажется (и почему он опасен);

char(n) и varchar(n) не дают ожидаемой экономии и даже вредны;

serial — это прошлый век, а identity — настоящее.

Глава будет полезна всем, кто работает с PostgreSQL в проде — особенно backend-разработчикам, независимо от языка и фреймворка. Если вы проектируете схемы БД, пишете SQL-запросы или просто хотите избежать неприятных грабель — стоит прочитать.

Читать далее

CRDT: Conflict-free Replicated Data Types

Reading time10 min
Views53K

Как считать хиты страницы google.com? А как хранить счётчик лайков очень популярных пользователей? В этой статье предлагается рассмотреть решение этих задач с помощью CRDT (Conflict-free Replicated Data Types, что по-русски переводится примерно как Бесконфликтные реплицированные типы данных), а в более общем случае — задачи синхронизации реплик в распределённой системе с несколькими ведущими узлами.
Читать дальше →

Самый полный Роадмеп бэкенд-разработчика на Python с нуля 2025

Level of difficultyEasy
Reading time40 min
Views32K

Этот роадмэп мы начали собирать ещё в прошлом году вместе с нашей командой мидл-бэкендеров. Хотелось системно оформить весь стек технологий, с которым реально работает современный backend-разработчик на Python — от базовых тем вроде HTTP и SQL до CI/CD, микросервисной архитектуры, Kubernetes, облаков, безопасности и брокеров сообщений.

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

Читать далее

Anki — настолько круто, что я даже представить не мог

Reading time4 min
Views201K

Если вдруг кто не знает, Anki - это бесплатная opensource программа для запоминания слов (и не только). Есть версии под декстоп и мобилы. Она довольно популярна при этом имеет интуитивно-НЕпонятный интерфейс. Мне понадобилось много лет, чтобы понять, насколько она крута, т.к. базовые статьи и туториалы этого не описывают. А многие люди используют ее даже не понимая ее возможностей.

Впервые про Anki я услышал много лет назад. Может быть 10 или больше, точно сказать сложно. Прочитал здесь на Хабре, что есть такая крутая штука как интервальное повторение, и что Anki как раз такая программа, которая использует этот механизм. Помню что в статье рассказывалось только про версию под декстоп.

Читать далее

Postman логирует все ваши секреты и переменные окружения

Reading time2 min
Views15K

Изначально я расследовал сообщение о том, что Postman не соответствует стандартам HIPAA. Я выяснил, что Postman не просто полностью непригоден для тестирования медицинских приложений — этот инструмент фактически полностью игнорирует конфиденциальность своих пользователей и, скорее всего, сохранил каждый секретный ключ, который вы когда-либо ему передавали.

Читать далее

Эволюция программирования: как парадигмы украли нашу свободу

Level of difficultyEasy
Reading time11 min
Views9.7K

Представьте: вы — инженер-программист из 60-х. Ваш код — это дикие прерии, где goto прыгает через функции как ковбой через барную стойку, а память — ваше личное ранчо. Вас внезапно переносят в 2023 год. Вас окружают фразы вроде «SOLID», «иммутабельность», «реактивные потоки». Вы пытаетесь написать пару строк на Python, но слышите: «Стоп. Мутировать переменные? В 2023-то? Это же грех!».

Что случилось с нашей свободой?

За последние 70 лет программирование из искусства постепенно превращалось в ремесло со своими жёсткими требованиями и правилами. Мы больше не взламываем реальность — мы строим мосты по ГОСТу.

Читать далее

За полчаса установил DeepSeek 1.5B, пока вы искали GPT подешевле

Level of difficultyEasy
Reading time11 min
Views83K

DeepSeek 1.5B — маленький, но шустрый собрат больших языковых моделей. Работает локально, не требует железа на киловатт.

Внутри — инструкция по установке, настройке и запуску DeepSeek 1.5B на Ubuntu 24.04 с Ollama и Open WebUI.

Читать далее

Как проводит свободное время среднестатистическая семья зумеров-айтишников

Level of difficultyEasy
Reading time3 min
Views127K

В свободное от работы время зумеры-айтишники пилят игру в Telegram Mini App, и нет, это не тапалка!

Про игру
 
Может быть вы помните, а может и не знали, но в 80-е была популярна элегантная стратегическая игра Trax. 

Ее придумал Дэвид Смит – дипломированный бухгалтер, семьянин, бизнесмен и даже автор песен. Он опубликовал более 20 игр, но считает Trax своей лучшей придумкой. 
Вокруг неё формировались клубы в разных странах, организовывались турниры по электронной почте и даже чемпионаты мира. Из года в год Trax стабильно входил в топы лучших игр на протяжении 80-х и получал многочисленные награды.

И вот спустя годы давно запылившаяся, но когда-то популярная игра Тракс вдруг попалась моему мужу Кириллу, точнее его другу ака одногруппнику из ИТМО, при очень интересных обстоятельствах. Как-то раз он попал на комиссию по отчислению в ИТМО, где случайным образом попадался один из двух билетов:
первый - сделать бесконечные крестики нолики, где нужно сложить диагональ в 10 крестиков (по крайней мере так запомнил мой муж), а другой бесконечный Тракс в консольном варианте. Посмеялись, поиграли и затянуло. Тогда игра была доступна только в двух вариантах: настольная и ПО на Винду. Возможности поиграть онлайн не было, за исключением изощренных способов, например транслировать экран и под диктовку выставлять ходы оппонента или через TeamViewer. И тогда в голове Кирилла появилась мысль – а почему бы не запилить веб-версию Тракса.

Кирилл изначально бэкендер, но когда мы работали в одном IT-стартапе и над своими пет-проектами он подкачал навыки фронтедера и ступил на путь фулл-стек разработчика. И вот когда ему стало хватать навыков для написания этой игры в вэбе, он принялся за дело.

Читать далее

Почему мы отказались от выражения «assert» в Python

Level of difficultyEasy
Reading time5 min
Views11K

В текущем проекте на Python мы полностью отказались от использования выражений с ключевым словом assert, и в этой статье я расскажу почему.

Рассмотрим кейсы где использование выражений assert уместно, а где оно может выстрелить в ногу, и как этого избежать.

Читать далее

Не нужно становиться тимлидом

Level of difficultyEasy
Reading time4 min
Views68K

Последнее время вышло много статей на тему тимлидства. Где-то спорили о написании кода тимлидами, где-то говорили о найме, где-то обсуждали пипл-менеджмент. Но давайте подумаем, есть ли вообще смысл становиться тимлидом.

Читать далее

Как общаться с руководителем

Level of difficultyEasy
Reading time7 min
Views16K
Напишу несколько простых и избитых правил общения между руководителем и подчинёнными. Вы могли их видеть так или иначе много раз, но иногда, в моменты грусти по поводу собственного коллектива (такие моменты бывают у абсолютно всех руководителей!) хочется порефлексировать, конкретизировать и положить на бумагу мысли по этому поводу.

Ниже представленные правила, наверное, должны немного корректироваться вместе с рангом: я пишу из позиции линейного руководителя (тимлида), который управляет непосредственно исполнителями (разработчиками и тестировщиками). Скорее всего, на уровне топ-менеджмента есть свои важные нюансы. Однако в общем и целом идеи останутся теми же.

КДПЖ
Читать дальше →

Настройка SSO на KeyCloak или как я KeyCloak побеждал

Level of difficultyMedium
Reading time5 min
Views8.6K

Привет! Хочу поделиться, как я с KeyCloak-ом сражался.

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

Читать далее

Почему я не готовлюсь к алгоритмическому интервью

Level of difficultyEasy
Reading time7 min
Views50K

Почему я не готовлюсь к алгоритмическому интервью

И не очень люблю людей, которые к нему готовы. Когда я провожу интервью, то главное - это понять как человек думает и как решает проблемы.

К собеседованию

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

Reading time9 min
Views32K

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

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

Читать далее

10 не самых очевидных причин, чтобы уволиться

Level of difficultyEasy
Reading time8 min
Views39K

За 16 лет работы в компаниях разного масштаба, размаха и уровня корпоративного бескультурья мне приходилось видеть весьма экзотические причины увольнения. В топ-3 уверенно попадают увольнение из-за недостаточной высоты двери в туалете, из-за вызова скорой помощи на работу и из-за исчезновения булочек с курагой в меню столовой, отсутствия отдельного кабинета или парковочного места. Я однажды уволилась после фразы замдиректора: «И это последнее китайское предупреждение!» Не зная настоящего смысла этой идиомы, я как истинный самурай совершила карьерное харакири. Но, как нас учили на уроках истории, у каждого события есть причины, а есть повод — последняя капля, после которой срывает резьбу и вершится что-то необратимое. Конечно, булочки, такси не того класса, искры в микроволновке и проч — это всё повод. И часто бывает так, что о причинах никто ничего не знает или все узнают, но слишком поздно. 

Читать далее

Чему и почему учат тимлидов

Reading time5 min
Views11K

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

Читать далее

Как не нужно использовать паттерн Repository

Reading time7 min
Views60K
image

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

Я постараюсь рассказать, как использовал паттерн Repository в проекте, какие достоинства и недостатки были выявлены, как это повлияло на разработку в целом и какой профит был получен.
Читать дальше →

Секреты айтишной карьеры, о которых лучше не рассказывать…

Level of difficultyEasy
Reading time11 min
Views89K

Секреты айтишной карьеры, о которых лучше не рассказывать...

...но которыми всё же с нами поделился QA lead "ITQ Group" Сергей Мурашов.

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

Читать далее

Как не сжечь команду дотла, или Почему Work-life balance — задача руководителя

Level of difficultyEasy
Reading time9 min
Views21K

Всем привет! Я Саша Ворожищев, руководитель мобильной разработки в AGIMA. В интернете сотни статей о том, как важно не выматывать себя на работе, но всё без толку. Согласно недавнему исследованию Хабр Карьеры, более 90% российских IT-специалистов сталкивались с выгоранием. При этом более 40% доводят себя до поздних стадий, когда эмоциональное истощение уже перерастает в депрессию.

В этой ситуации будет полезным напомнить, что любой руководитель может влиять на состояние команды. И это важно не только с точки зрения человеколюбия, но и с точки зрения бизнеса. В конце концов энергичный сотрудник, который любит свою работу, принесет компании больше счастья, чем выгоревший и усталый. Поэтому давайте разберем, как мотивировать команду соблюдать Work-life balance.

Читать далее

Уровни изолированности транзакций для самых маленьких

Reading time5 min
Views275K


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

Немного теории


Сами транзакции особых объяснений не требуют, транзакция — это N (N≥1) запросов к БД, которые выполнятся успешно все вместе или не выполнятся вовсе. Изолированность же транзакции показывает то, насколько сильно влияют друг на друга параллельно выполняющиеся транзакции.
Выбирая уровень транзакции, мы пытаемся прийти к консенсусу в выборе между высокой согласованностью данных между транзакциями и скоростью выполнения этих самых транзакций.
Стоит отметить, что самую высокую скорость выполнения и самую низкую согласованность имеет уровень read uncommitted. Самую низкую скорость выполнения и самую высокую согласованность — serializable.
Читать дальше →

Information

Rating
10,155-th
Location
Россия
Registered
Activity