ККОДОВАЯ БАЗА_ ⚫ Блог программиста: архитектура, дизайн систем, алгоритмы и чистый код

КОДОВАЯ БАЗА_ ⚫ Блог программиста: архитектура, дизайн систем, алгоритмы и чистый код

@kodbaza💻 Технологии🇷🇺 Русский📅 март 2026 г.

Блог о разработке и программировании Архитектура, ООП, чистый код, Java, Spring Framework, Postgres и всё что около @builin Личный блог автора. Все материалы публикуются от имени автора и не отражают чью-либо позицию.

📊 Полная статистика📝 Все посты
##system_design#interview#cleancode#lsp#java#quiz#slap#solid
201
Подписчики
462,2
Ср. охват
230%
Вовлечённость
20
Постов
В день

Графики

📊 Средний охват постов

📉 ERR % по дням

📋 Публикации по дням

📎 Типы контента

Лучшие публикации

20 из 20
Kkodbaza
kodbaza
4 дек., 06:00

Правильный ответ: 2, 3, 5, 6 Идентификатор бина (имя) используется вместо квалификатора, если нет явного квалификатора. Если найдено несколько кандидатов для внедрения по типу и не указан квалификатор в месте внедрения, квалификатор определяется по имени поля. @kodbaza ⚫️ #java #spring #quiz #dependencyInjection

👁 1.3K
Kkodbaza
kodbaza
20 мар., 06:01

DYC = Document Your Code Документировать свой код — прекрасная практика, но все должно быть в меру и к месту. 1⃣ Комментарии в коде — объясняют принятые в коде особенности и допущения реализации 2⃣ Документирующие комментарии — заголовки методов и классов, которые компилируются в документ и парсятся IDE (например, javadoc) 3⃣ Сопроводительная записка (README.md) — файл в корне проекта с описанием проекта и инструкцией по его сборке и запуску 4⃣ Руководство пользователя — отдельный документ или с...

👁 1.1K
Kkodbaza
kodbaza
15 авг., 07:00

Валидация сообщений Kafka Имеем классический CRUD сервис на Spring Boot - контроллер принимает сообщения по HTTP REST API. Перед этим сообщение валидируется в соответствии с расставленными аннотациями вроде @NotEmpty, а после передается в бизнес-слой для верификации данных и выполнения операции в БД. Нужно при получении аналогичного сообщения из топика Kafka выполнить те же валидации и те же операции в бизнес-слое с минимальными изменениями кода. Цель - переиспользовать имеющийся функционал, DRY...

👁 779
Kkodbaza
kodbaza
13 дек., 06:00

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

👁 572
Kkodbaza
kodbaza
10 дек., 06:01

SRP vs. SLAP: как не перепутать? Когда только знакомишься с принципами чистого кода, SRP и SLAP легко перепутать. Оба про порядок и ясность. Но всё же это разные вещи. Давайте разберёмся. SRP — Один класс, одна задача Single Responsibility Principle (SRP) говорит: у класса должна быть только одна причина для изменения. То есть один класс — одна задача. Если ваш класс отвечает и за логику отображения, и за работу с базой, то рано или поздно будет беда. Разделяйте обязанности! SLAP — Один уровень ...

👁 476
Kkodbaza
kodbaza
6 дек., 06:01

SLAP = Single Level of Abstraction Principle SLAP — звучит больно, да? На деле всё просто. Этот принцип спасает нас от путаницы в коде и помогает писать так, чтобы читать было приятно. Внезапно, как и остальные принципы. А теперь — по порядку. Что вообще значит «уровень абстракции»? Представьте: вы пишете метод. В идеале он должен решать одну задачу на одном уровне детализации. Если метод сначала делает SQL-запрос, потом парсит JSON и в конце форматирует дату — это, мягко говоря, каша. SLAP треб...

👁 455
Kkodbaza
kodbaza
29 нояб., 06:01

Stream.toList() vs Stream.collect(Collectors.toList()) Есть распространенное заблуждение, что метод Stream.toList() из JDK 16 - это более короткое написание существовавшего до него collect(Collectors.toList()). Весомая причина для использования collect(Collectors.toList()) в современной Java - иногда нужен мутабельный список, а этот коллектор возвращает обычный ArrayList. Хотя строго говоря иммутабельность не гарантируется. Современный Stream.toList() возвращает иммутабельный список, что точно г...

👁 429
Kkodbaza
kodbaza
26 июн., 07:04

✅ Правильный ответ: C LSP требует, чтобы объекты подклассов могли использоваться везде, где ожидаются объекты суперкласса, без изменения корректности работы программы. Если клиентский код ожидает, что любой экземпляр Bird может летать, то подставляя Ostrich, он сталкивается с неожиданным исключением. Это нарушение LSP. Вывод: для соблюдения LSP одного наследования недостаточно, нужно реализовать ожидаемую логику. @kodbaza ⚫️ #solid #lsp

👁 304
Kkodbaza
kodbaza
29 авг., 07:03

Про верхние перцентили Или процентили, это то же самое — percentiles. Или квантили. 99 перцентиль — это 0.99 квантиль. При мониторинге систем количество ошибок или время выполнения запросов обычно рассчитывают в перцентилях. Например, время отклика для p95 равное 1с означает, что 95% запросов выполняются быстрее чем за 1с, а 5% выполняются за 1с или дольше. Насколько угодно дольше. Возможно ваша система устроена так, что пользователь с бо‌льшим количеством данных получает бо‌льшую задержку. И ве...

👁 296

Типы хуков

Нейтральный18 | 455 просм.
Вопрос2 | 524 просм.

Длина постов

Очень длинные (1000+)11 | 429 просм.
Длинные (500-1000)5 | 300 просм.
Средние (200-500)2 | 777 просм.

Влияние эмодзи

399
С эмодзи (5)
483
Без эмодзи (15)
-17.4% охвата

Типы контента

📝
20
text
462 просм.