Мы продолжаем нашу серию статей, посвящённых фундаментальным концепциям разработки. Сегодня мы поговорим о проверенных практиках, которые помогают разработчикам избегать распространённых ошибок и работать эффективнее. Мы разберём принципы SOLID, а также парадигмы YAGNI, DRY и KISS, которые особенно актуальны в объектно-ориентированном программировании.
Читать далееРаспределенные системы (aka микросервисы) набрали популярность и применяются все шире в современных реалиях. Сервисов становится больше, привычные задачи для них решаются сложнее, усложнились и вопросы аутентификации и контроля доступа.
В статье рассмотрим различные подходы использования API Gateway как части более общего API security-решения в контексте его работы с токенами доступа, выделяя преимущества, недостатки и связанные с ними вопросы безопасности. Также разберем, почему нужно ограничивать область действия access token и может ли API Gateway помочь и в данном вопросе.
Статья написана на основе материала, с которым выступал на PHDays 2025 и CodeFest 15.
Читать далееДавайте продолжим обсуждение самой неоптимизированной в мире 32-битной библиотеки для работы с плавающей запятой TinyFloat. Библиотека написана на C++ и намеренно избегает встроенных типов плавающей запятой, полагаясь исключительно на 32-битные целые числа. Цель состоит в том, чтобы сделать код максимально читабельным — без бит-хаков и хитроумных уловок.
Библиотека пишется в рамках борьбы с неграмотностью населения, поэтому, я хочу иметь подробную документацию о том, что происходит «под капотом». Оказалось, что лучший способ документировать код C++ — это полностью переписать его на Python :-)
Тема на сегодня - как работает сложение чисел с плавающей точкой и соответствующие подводные камни. Это третья статья из цикла, первые две читать тут и тут.
Читать далееВсем привет!
Сейчас я работаю Senior Java Developer в одном из банков, и за последние годы мне довелось пройти множество собеседований, столкнуться с десятками непростых вопросов и вложить кучу времени в подготовку. И со временем я заметил одну закономерность: Spring — одна из самых объёмных и любимых тем на Java‑собеседованиях, причём спрашивают её у кандидатов любого уровня.
Поэтому в этой статье я хочу помочь вам уверенно подготовиться к вопросам по Spring, также покажу примеры задач, которые дают на собеседованиях. Поехали!
Читать далееВсем привет!
Не так давно вышла статья о том, как @misterzsm нанял джуна в свой open source проект. Я и есть тот самый джун Рома (на самом деле я Рамазан).
В этой статье я бы хотел рассказать вам эту же историю, но со своей стороны. В частности, расскажу вам немного о своём бэкграунде, о том, почему я решил согласиться на это предложение, а также отвечу на некоторые комментарии из статьи Валика.
Читать далееВладельцам PlayStation в России пришлось привыкнуть к новому порядку. Раньше покупки в PS Store были делом пары минут — выбрал игру, оплатил картой и скачал. После 2022 года все усложнилось: магазин перестал принимать российские карты, часть игр исчезла из локального каталога, а официальная поддержка региона фактически прекратилась.
Но сама платформа жива: консоли продаются, обновления выходят, сетевые функции работают. И самое главное — игры все еще можно покупать. Просто теперь это делается чуть иначе.
Читать далееЯ нисколько не сомневаюсь, что системы ИИ (от ассистентов по кодированию до каркасных ИИ-систем) сегодня становятся незаменимым помощником разработчика и кардинально меняют рабочие процессы, выдавая на-гора функции, исправляя синтаксис и даже предлагая шаблоны проектирования в мгновение ока.
Но…
Читать далееПривет, Хабр! Меня зовут Валерий Пташкин, я руководитель направления в трайбе «Потребительское Кредитование» в Сбере. Статью я подготовил вместе с моими коллегами — Кириллом Макаровым и Евгением Беляевым.
Наш продукт отвечает за хранение клиентских заявок на потребительские кредиты, заявок кредитного потенциала, автокредитов, ипотечного кредитования и так далее. И в этом году мы перевели работу нашего модуля хранения с Oracle на СУБД Pangolin (сборка PostgreSQL с доработками от СберТеха).
При переезде у нас было несколько критичных требований к СУБД: способность держать достаточно высокую нагрузку (4 тысячи запросов в секунду), при этом иметь время отклика не более 100 мс для 99 % запросов, и обеспечивать максимально высокую доступность нашего сервиса как системы уровня mission critical.
В этой статье мы расскажем про состояние нашей инфраструктуры, этапы миграции, и коснёмся возможных нюансов и потенциальных рисков. Это будет полезно тем, кто тоже планирует переезд на СУБД Pangolin или другой форк PostgreSQL. Уверен, многие рекомендации будут полезны и пользователям стандартного PostgreSQL. Итак, начнём.
Читать далееС 2007 года я занимаюсь SEO и развиваю собственное рекламное агентство. Последние 9 месяцев плотно погрузился в исследование нейросетей как источника трафика, и мы с командой запустили отдельное направление GEO и AEO-продвижения. Такое решение продиктовано двумя причинами:
Читать далее
Я знаю, это будет звучать громко и самонадеянно, но все-таки я это скажу: мне кажется, я нашел ключик к проблеме объяснения и конструирования мышления. Нет, это еще не решение всей проблемы, но многообещающая возможность к нему приблизиться. Полгода назад у меня возникла идея, что в основе феномена мышления (даже у «низкоразвитых» животных вроде крабов или мышей) может лежать оперирование особого класса описательной языкоподобной структурой. Я попытался развить этот подход и обнаружил, что он как будто бы позволяет сформулировать много важных философских проблем о мышлении в виде точных математических вопросов. С тех пор мне удалось продвинутся в решении некоторых из них и получить несколько интересных, на мой взгляд, результатов на стыке логики и психологии. Я собираюсь написать серию статей, чтобы поделиться своими находками и привлечь энтузиастов вместе исследовать возможности, которые они открывают. Перед вами первая статья из этой серии.
Познакомиться с исследованиемПривет, Хабр!
Calico, Kolla, Reconciler — это названия технологических сервисов или имена героев аниме? Проверьте свою интуицию и знания в нашем новом тесте, который мы разработали в Хабре вместе с Рунити!
Мы собрали различные популярные и двусмысленные термины, чтобы выяснить, насколько хорошо вы чувствуете границу между IT-технологиями и поп-культурой. Готовы к вызову? Вперед!
Читать далееДоброго дня, всем любителям математики! Представляю вашему вниманию еще три интересные, на мой взгляд, логические задачи. Первая часть находится здесь. Спасибо всем, кто участвовал в обсуждениях и находил неточности! Итак,
Путник взбирается на высокую гору по тропе как по серпантину. На это ему необходим весь день с утра до вечера, с учетом времени на отдых и перекусы. На вершине горы находится жилище. Путник, добравшись до него, проводит в нем ночь и на следующий день с утра отправляется в обратный путь. Он также шел до вечера. Вопрос – есть ли на этом пути точка, в которой путник находился в одно и то же время дня когда поднимался и когда спускался обратно?
Наложим график функции зависимости координаты путника от времени дня в первый и второй день. Эти графики пересекутся в искомой точке.
Читать далееКоманда Spring АйО подготовила перевод статьи о том, почему архитектурный долг — это гораздо больше, чем кривой код или устаревшие паттерны. Автор показывает, как ошибки на уровнях приложений, бизнеса и стратегии усиливают друг друга и превращаются в системные риски.
Читать далееПривет! Меня зовут Маша Иванова, я старший аналитик монетизации в Авито. В статье расскажу, как несовершенство процесса логирования приводит к ошибкам в данных, как это влияет на достоверность аналитики и что мы разработали, чтобы предотвратить такие проблемы. Материал будет интересен аналитикам, QA-инженерам и разработчикам.
Читать далееСобрал обзор 10 планировщиков задач — для командной работы и для личной продуктивности. Кратко объясняю, как устроено планирование в каждом сервисе, какие фичи действительно полезны и кому что подойдёт.
Читать обзорВ какой-то момент я понял, что хочу двигаться дальше и просить повышение. Но тут случилось сокращение. Стало ясно, что, если в компании идут сокращения, просить повышение бесполезно. Пришло время искать новое место работы.
Читать далееВ начале 2000-х ИТ-индустрия пережила драматичный обвал — лопнул пузырь доткомов. Казалось, вместе с сотнями стартапов должны были исчезнуть и те, кто обеспечивал работу интернета — хостинг-провайдеры и дата-центры. Многие из них действительно не пережили кризис. Однако сама индустрия хостинга не просто устояла, но и окрепла. Почему так произошло? Попробую разобрать события дотком-эры по всему миру и разобраться, какие уроки извлекла инфраструктурная отрасль.
ЧитатьЕсть такой класс гаджетов, который не нужен рядовому потребителю. Большинство, вероятно, даже не знает об их существовании. Речь, разумеется, об IP-KVM, предоставляющих доступ к устройствам ввода-вывода. Собственно, аббревиатура KVM расшифровывается как Keyboard Video Mouse. Главная задача — дать удаленный доступ по сети без использования средств операционной системы.
Подключив такой девайс, пользователь может полностью взять под контроль компьютер или сервер, получая картинку с экрана в реальном времени. В основном это используется для удаленной установки ОС и траблшутинга, но так же хорошо подойдет и для домашних условий, если специализированное ПО вам чем-то не угодило.
Читать далееЯ часто вижу ситуацию, когда менеджмент во всем винит руководителей проектов. Уволили одного, поставили другого, «более опытного». А он тоже почему-то не справился. Опять накормил завтраками, обещая, что вот-вот и все будет. Тем временем, проект, на который постоянно назначают новых РП, уже в настолько глубокой Ж, что… все, включая заказчика, хотят его закрыть. Списать десятки миллионов в убытки и снова всех уволить. Нанять нормальных, ответственных людей!
Сегодня поделюсь своим кейсом, как много лет назад я видел похожую ситуацию при реализации проекта по запуску системы в крупном банке. Менеджмент сменил уже ТРЕХ руководителей проекта, но «завтраки» продолжались. Сроки и бюджет росли каждый день как на дрожжах.
Веры в то, что изменить ситуацию возможно, не было ни у кого. Менеджмент винил сотрудников, которые «наврали» о реалистичности сроков. Однако я понимал, что проблема тут не в них.
В этой статье на примере этого кейса объясняю, почему проджекты не виноваты в провалах проектов. А также вкратце поделюсь, что именно я сделал, чтобы вытащить конкретно этот проект из Ж все-таки запустить банковскую систему за 4 месяца, вместо 2 лет.
Читать далееВ этой статье я руками сравнил производительность PostgreSQL на «голой» VM в Yandex Cloud и в кластере CloudNativePG в Kubernetes. Один и тот же конфиг, одинаковые ресурсы, fio и pgbench, несколько типов хранилищ — и просадка до ~40% при работе через cnpg.
Разбираемся, где теряются TPS: на диске, в сети или в оболочке k8s, показываем все цифры в таблицах и схемах прохождения запроса «до VM» и «до Pod’а» — и в конце честно отвечаем, стоит ли игра свеч.
Читать далее