Правильный ответ: 2, 3, 5, 6 Идентификатор бина (имя) используется вместо квалификатора, если нет явного квалификатора. Если найдено несколько кандидатов для внедрения по типу и не указан квалификатор в месте внедрения, квалификатор определяется по имени поля. @kodbaza ⚫️ #java #spring #quiz #dependencyInjection
КОДОВАЯ БАЗА_ ⚫ Блог программиста: архитектура, дизайн систем, алгоритмы и чистый код
Блог о разработке и программировании Архитектура, ООП, чистый код, Java, Spring Framework, Postgres и всё что около @builin Личный блог автора. Все материалы публикуются от имени автора и не отражают чью-либо позицию.
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20DYC = Document Your Code Документировать свой код — прекрасная практика, но все должно быть в меру и к месту. 1⃣ Комментарии в коде — объясняют принятые в коде особенности и допущения реализации 2⃣ Документирующие комментарии — заголовки методов и классов, которые компилируются в документ и парсятся IDE (например, javadoc) 3⃣ Сопроводительная записка (README.md) — файл в корне проекта с описанием проекта и инструкцией по его сборке и запуску 4⃣ Руководство пользователя — отдельный документ или с...
Валидация сообщений Kafka Имеем классический CRUD сервис на Spring Boot - контроллер принимает сообщения по HTTP REST API. Перед этим сообщение валидируется в соответствии с расставленными аннотациями вроде @NotEmpty, а после передается в бизнес-слой для верификации данных и выполнения операции в БД. Нужно при получении аналогичного сообщения из топика Kafka выполнить те же валидации и те же операции в бизнес-слое с минимальными изменениями кода. Цель - переиспользовать имеющийся функционал, DRY...
Файловые дескрипторы: о чем могут спросить на собеседовании? Файловый дескриптор — это просто числовой идентификатор, который операционная система использует, чтобы знать, с каким ресурсом вы работаете. Файл, сокет — это ресурсы, а дескриптор связывает ваше приложение с ними. Всё просто, но есть нюансы, которые стоит понимать. Во-первых, файловые дескрипторы — ограниченный ресурс. На практике это значит: если вы забудете закрыть файлы, даже в небольшом приложении вы рискуете столкнуться с ошибко...
SRP vs. SLAP: как не перепутать? Когда только знакомишься с принципами чистого кода, SRP и SLAP легко перепутать. Оба про порядок и ясность. Но всё же это разные вещи. Давайте разберёмся. SRP — Один класс, одна задача Single Responsibility Principle (SRP) говорит: у класса должна быть только одна причина для изменения. То есть один класс — одна задача. Если ваш класс отвечает и за логику отображения, и за работу с базой, то рано или поздно будет беда. Разделяйте обязанности! SLAP — Один уровень ...
SLAP = Single Level of Abstraction Principle SLAP — звучит больно, да? На деле всё просто. Этот принцип спасает нас от путаницы в коде и помогает писать так, чтобы читать было приятно. Внезапно, как и остальные принципы. А теперь — по порядку. Что вообще значит «уровень абстракции»? Представьте: вы пишете метод. В идеале он должен решать одну задачу на одном уровне детализации. Если метод сначала делает SQL-запрос, потом парсит JSON и в конце форматирует дату — это, мягко говоря, каша. SLAP треб...
Stream.toList() vs Stream.collect(Collectors.toList()) Есть распространенное заблуждение, что метод Stream.toList() из JDK 16 - это более короткое написание существовавшего до него collect(Collectors.toList()). Весомая причина для использования collect(Collectors.toList()) в современной Java - иногда нужен мутабельный список, а этот коллектор возвращает обычный ArrayList. Хотя строго говоря иммутабельность не гарантируется. Современный Stream.toList() возвращает иммутабельный список, что точно г...
✅ Правильный ответ: C LSP требует, чтобы объекты подклассов могли использоваться везде, где ожидаются объекты суперкласса, без изменения корректности работы программы. Если клиентский код ожидает, что любой экземпляр Bird может летать, то подставляя Ostrich, он сталкивается с неожиданным исключением. Это нарушение LSP. Вывод: для соблюдения LSP одного наследования недостаточно, нужно реализовать ожидаемую логику. @kodbaza ⚫️ #solid #lsp
Про верхние перцентили Или процентили, это то же самое — percentiles. Или квантили. 99 перцентиль — это 0.99 квантиль. При мониторинге систем количество ошибок или время выполнения запросов обычно рассчитывают в перцентилях. Например, время отклика для p95 равное 1с означает, что 95% запросов выполняются быстрее чем за 1с, а 5% выполняются за 1с или дольше. Насколько угодно дольше. Возможно ваша система устроена так, что пользователь с большим количеством данных получает большую задержку. И ве...