Код-ревью
Что думаете? Пиши ответы в комментарии.
@Override
public Optional<Ticket> create(IsSeatTakenDto isSeatTakenDto,
Ticket ticket, HttpSession session) {
if (isSeatTaken(isSeatTakenDto)) {
return Optional.empty();
}
try (var connection = sql2o.open()) {
var sql = "INSERT INTO " +
"tickets(session_id, row_number, place_number, user_id)" +
" VALUES (:sessionId, :rowNumber, :placeNumber, :userId)";
var query = connection.createQuery(sql, true)
.addParameter("sessionId", ticket.getSessionId())
.addParameter("rowNumber", ticket.getRowNumber())
.addParameter("placeNumber", ticket.getPlaceNumber())
.addParameter("userId", session.getAttribute("id"));
int generatedId = query.executeUpdate().getKey(Integer.class);
ticket.setId(generatedId);
}
return Optional.of(ticket);
}
Что думаете? Пиши ответы в комментарии.
Продолжаем тренироваться. Перепишите код через Stream API.
@Override
public List<UserDTO> getPostsByUserId(List<Integer> userIds) {
Map<Integer, UserDTO> userMap = new HashMap<>();
postRepository.findByUserIdIn(userIds).forEach(post -> {
int userId = post.getUser().getId();
userMap.computeIfAbsent(userId, id ->
new UserDTO(userId, post.getUser().getFullName(), new ArrayList<>()
)).getPosts().add(post);
});
return new ArrayList<>(userMap.values());
}
Добавили статистику по прогрессу в разделе вопросы на интервью.
👍Пробуйте https://job4j.ru/profile/interview/16
👍Пробуйте https://job4j.ru/profile/interview/16
Потренируемся?
Метод падает с OutOfMemoryError
Что вызывает ошибку? Как поправить?
Метод падает с OutOfMemoryError
fun notifyByTaskUpdate(task: Task) {
scope.launch {
val template = """
Обновлено описание урока ${task.name} [#${task.number}]
https://job4j.ru/profile/exercise/${task.topicId}/task-view/${task.id}"
""".trimIndent()
userRepository
.findAllByActiveAndPayments()
.filter { messengerRepository.isUserNotificationOn(it.id) }
.forEach {
bot?.send(it.id, template)
}
}
}Что вызывает ошибку? Как поправить?
Обновление платформы
Добавили сложность вопросов к собеседованиям.
5 уровней: Entry, Junior, Middle, Senior, Expert.
👍 Тренируй вопросы в соответствии со своим уровнем!
➡️ https://job4j.ru/profile/interview/28
Добавили сложность вопросов к собеседованиям.
5 уровней: Entry, Junior, Middle, Senior, Expert.
👍 Тренируй вопросы в соответствии со своим уровнем!
➡️ https://job4j.ru/profile/interview/28
🔥7👍4
Ребята, вебинар на сегодня переноситься на завтра. В 19 00 так же.
✨ Сегодня, 17 ноября 2024 года, в 19:00 состоится вебинар на тему:
«Первые рабочие месяцы на новом месте»
💬 Приглашённый гость:
Антон Кунах — эксперт с более чем 6-летним опытом работы в IT. В его профессиональном портфолио: Тинькофф, Яндекс, СберТех и T1 Consulting.
💡 Что обсудим:
🔹 Подготовка к собеседованию, успешное прохождение этапов и работа с отказами.
🔹 Как распознать «красные флаги» компании, куда не стоит идти.
📋 Основные темы вебинара:
✅ Адаптация в новом коллективе: как привыкнуть к команде и сразу стать полезным.
✅ От ожиданий к реальности: что делать, если проект не оправдал надежд.
✅ Этапы успешного онбординга: от знакомства с процессами до быстрого перехода к задачам.
✅ Освоение технологического стека: как быстро адаптироваться к новым инструментам и технологиям (Java, Spring, Kafka, Docker и др.).
✅ Роль тимлида в адаптации: как поддерживать и развивать команду в условиях изменений.
👥 Для кого:
Для тех, кто готовится к переходу на новую работу, меняет сферу или хочет улучшить навыки адаптации в IT.
💰 Стоимость участия: 500 рублей.
📩 Для регистрации пишите в личные сообщения [@parsentev](https://t.me/parsentev).
Не упустите шанс разобраться в ключевых аспектах первых рабочих месяцев! 🚀
«Первые рабочие месяцы на новом месте»
💬 Приглашённый гость:
Антон Кунах — эксперт с более чем 6-летним опытом работы в IT. В его профессиональном портфолио: Тинькофф, Яндекс, СберТех и T1 Consulting.
💡 Что обсудим:
🔹 Подготовка к собеседованию, успешное прохождение этапов и работа с отказами.
🔹 Как распознать «красные флаги» компании, куда не стоит идти.
📋 Основные темы вебинара:
✅ Адаптация в новом коллективе: как привыкнуть к команде и сразу стать полезным.
✅ От ожиданий к реальности: что делать, если проект не оправдал надежд.
✅ Этапы успешного онбординга: от знакомства с процессами до быстрого перехода к задачам.
✅ Освоение технологического стека: как быстро адаптироваться к новым инструментам и технологиям (Java, Spring, Kafka, Docker и др.).
✅ Роль тимлида в адаптации: как поддерживать и развивать команду в условиях изменений.
👥 Для кого:
Для тех, кто готовится к переходу на новую работу, меняет сферу или хочет улучшить навыки адаптации в IT.
💰 Стоимость участия: 500 рублей.
📩 Для регистрации пишите в личные сообщения [@parsentev](https://t.me/parsentev).
Не упустите шанс разобраться в ключевых аспектах первых рабочих месяцев! 🚀
Telegram
Петр Арсентьев
https://job4j.ru/ - Программируй вместе с нами
👍4
💼 На золотом крыльце сидели: ПМ, аналитик и программист...
Почему важно правильно позиционировать себя на IT-рынке?
Недавно провел собеседование, где кандидат уверенно начинал как разработчик, а в середине вдруг заявил, что больше аналитик и ПМ. 🤔
В итоге это стало его ключевой ошибкой.
👉 Как не запутаться в ролях и не потерять фокус на карьере? Разбираю ошибки и делюсь советами.
🎥 Смотри видео на YouTube: https://youtu.be/eR6goNmx3ig
📚 Хочешь стать программистом? Начни с курса по Java: https://job4j.ru/
#Собеседование #Разработчик #Java #ITКарьера #Job4j
Почему важно правильно позиционировать себя на IT-рынке?
Недавно провел собеседование, где кандидат уверенно начинал как разработчик, а в середине вдруг заявил, что больше аналитик и ПМ. 🤔
В итоге это стало его ключевой ошибкой.
👉 Как не запутаться в ролях и не потерять фокус на карьере? Разбираю ошибки и делюсь советами.
🎥 Смотри видео на YouTube: https://youtu.be/eR6goNmx3ig
📚 Хочешь стать программистом? Начни с курса по Java: https://job4j.ru/
#Собеседование #Разработчик #Java #ITКарьера #Job4j
YouTube
На золотом крыльце сидели: ПМ, аналитик и программист ... | Ошибки в позиционировании на IT-рынке
🔹 **Как правильно позиционировать себя на собеседовании?**
В этом видео я делюсь реальной историей собеседования с кандидатом, который вначале показал отличные знания, но затем заявил, что больше аналитик и ПМ, чем разработчик. Почему важно четко понимать…
В этом видео я делюсь реальной историей собеседования с кандидатом, который вначале показал отличные знания, но затем заявил, что больше аналитик и ПМ, чем разработчик. Почему важно четко понимать…
👍3
Когда ты полностью полагаешься на IDEA ))
import org.jvnet.hk2.annotations.Service;
import org.springframework.beans.factory.BeanNameAware;
import ru.job4j.content.Content;
@Service
public class BotCommandHandler implements BeanNameAware {
private String beanName;
😁4
✨ Друзья! ✨
Только что заметил, что забыл открыть доступ к разделу «Корутины», а также к проекту и контрольным вопросам по Kotlin.
🔥 Сейчас все добавлено! 🔥
Только что заметил, что забыл открыть доступ к разделу «Корутины», а также к проекту и контрольным вопросам по Kotlin.
🔥 Сейчас все добавлено! 🔥
👍4🔥2
💡 Как наладить полезные связи и ускорить карьерный рост? 💡
Вчера на вебинаре о адаптации на новом месте наш гость Антон рассказал, как правильно выстраивать нетворкинг и почему это один из ключевых навыков для профессионального роста.
🚀 Уже в субботу, 23 ноября, в 19:00 мы проведем новый вебинар, где подробно разберем:
✅ Как завязывать полезные знакомства.
✅ Какие инструменты помогают в нетворкинге.
✅ Как превращать связи в новые карьерные возможности.
🎟 Вход свободный!
📌 Присоединяйтесь по ссылке: https://t.me/+m-R1k8jptX0yNzMy
Вчера на вебинаре о адаптации на новом месте наш гость Антон рассказал, как правильно выстраивать нетворкинг и почему это один из ключевых навыков для профессионального роста.
🚀 Уже в субботу, 23 ноября, в 19:00 мы проведем новый вебинар, где подробно разберем:
✅ Как завязывать полезные знакомства.
✅ Какие инструменты помогают в нетворкинге.
✅ Как превращать связи в новые карьерные возможности.
🎟 Вход свободный!
📌 Присоединяйтесь по ссылке: https://t.me/+m-R1k8jptX0yNzMy
Telegram
job4j_meetup_7 | Нетворкинг в IT | 23.11.2024 19:00
Петр Арсентьев invites you to join this group on Telegram.
🔥 История успеха: как я нашла путь в разработку
Все началось с полного выгорания на работе ручным тестировщиком. Я устала от бессмысленности своей работы и решилась на рискованный шаг — уволиться без нового места. Без поддержки моего молодого человека, в том числе финансовой, вряд ли бы что-то получилось.
📌 Путь был нелегким:
- Интенсивные занятия на курсе и постоянное самообучение.
- Провалы на собеседованиях, разочарование и борьба с собой.
- Депрессия, страх лайвкодинга и пробел в опыте работы.
⚡️ Что помогло:
- Знания с курса, дополнительные материалы и советы HR по резюме.
- Использование инструментов вроде ChatGPT и StackOverflow.
- Готовность брать на себя задачи, даже если казалось, что шансов мало.
💡 Результат:
Меня взяли программистом-тестировщиком, и я наконец начала заниматься тем, что действительно люблю. Сначала это были модульные тесты, а сейчас — полноценная разработка. Более того, меня впервые повысили внутри компании!
Теперь я горжусь своей работой и чувствую, что все усилия были не напрасны.
---
✨ Рекомендации на основе этой истории
1. Не бойтесь менять свою жизнь
Если работа вызывает выгорание, рассмотрите смену сферы деятельности.
2. Поддержка близких важна
Открыто говорите с родными о своих планах, их помощь — ваш ресурс.
3. Учитесь постоянно
Курсы, самообучение и практика дают необходимые навыки.
4. Работайте над резюме
Уберите пробелы, акцентируйте внимание на своих сильных сторонах.
5. Учитесь на ошибках
Провалы на собеседованиях — это опыт, который делает вас сильнее.
6. Практикуйте стрессовые ситуации
Тренируйте решение задач под давлением, чтобы не бояться лайвкодинга.
7. Используйте доступные инструменты
ChatGPT, StackOverflow и другие ресурсы помогают решать задачи быстрее.
8. Идите к цели через смежные направления
Если не получается сразу попасть в разработку, попробуйте автотестирование.
9. Работайте над устойчивостью
Здоровая психика и уверенность в себе — ключ к успеху.
10. Не занижайте планку
Верьте в себя и помните, что трудности — временные.
---
💬 Поделитесь своей историей: как вы преодолевали трудности на пути к своей мечте?
Все началось с полного выгорания на работе ручным тестировщиком. Я устала от бессмысленности своей работы и решилась на рискованный шаг — уволиться без нового места. Без поддержки моего молодого человека, в том числе финансовой, вряд ли бы что-то получилось.
📌 Путь был нелегким:
- Интенсивные занятия на курсе и постоянное самообучение.
- Провалы на собеседованиях, разочарование и борьба с собой.
- Депрессия, страх лайвкодинга и пробел в опыте работы.
⚡️ Что помогло:
- Знания с курса, дополнительные материалы и советы HR по резюме.
- Использование инструментов вроде ChatGPT и StackOverflow.
- Готовность брать на себя задачи, даже если казалось, что шансов мало.
💡 Результат:
Меня взяли программистом-тестировщиком, и я наконец начала заниматься тем, что действительно люблю. Сначала это были модульные тесты, а сейчас — полноценная разработка. Более того, меня впервые повысили внутри компании!
Теперь я горжусь своей работой и чувствую, что все усилия были не напрасны.
---
✨ Рекомендации на основе этой истории
1. Не бойтесь менять свою жизнь
Если работа вызывает выгорание, рассмотрите смену сферы деятельности.
2. Поддержка близких важна
Открыто говорите с родными о своих планах, их помощь — ваш ресурс.
3. Учитесь постоянно
Курсы, самообучение и практика дают необходимые навыки.
4. Работайте над резюме
Уберите пробелы, акцентируйте внимание на своих сильных сторонах.
5. Учитесь на ошибках
Провалы на собеседованиях — это опыт, который делает вас сильнее.
6. Практикуйте стрессовые ситуации
Тренируйте решение задач под давлением, чтобы не бояться лайвкодинга.
7. Используйте доступные инструменты
ChatGPT, StackOverflow и другие ресурсы помогают решать задачи быстрее.
8. Идите к цели через смежные направления
Если не получается сразу попасть в разработку, попробуйте автотестирование.
9. Работайте над устойчивостью
Здоровая психика и уверенность в себе — ключ к успеху.
10. Не занижайте планку
Верьте в себя и помните, что трудности — временные.
---
💬 Поделитесь своей историей: как вы преодолевали трудности на пути к своей мечте?
🔥8👍6
### Вопрос на собеседовании 💼
Как правильно переопределить `equals` в следующей структуре?
### Ответ ✅
Переопределение
1. Тип объекта, чтобы предотвратить
2. Поля, которые нужно сравнивать, включая вложенные узлы.
3. Защиту от циклических ссылок.
Корректная реализация может выглядеть так:
Объяснение:
- Сравниваем текущий объект с переданным (
- Проверяем, что объект не
- Сравниваем
---
Больше вопросов с собеседований на платформе: [Job4j](https://job4j.ru/profile/interview) 🚀
Как правильно переопределить `equals` в следующей структуре?
class TreeNode {
private int value;
private TreeNode left;
private TreeNode right;
public TreeNode(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public TreeNode setValue(int value) {
this.value = value;
return this;
}
public TreeNode getLeft() {
return left;
}
public TreeNode setLeft(TreeNode left) {
this.left = left;
return this;
}
public TreeNode getRight() {
return right;
}
public TreeNode setRight(TreeNode right) {
this.right = right;
return this;
}
@Override
public boolean equals(Object o) {
// TODO - implement this
return false;
}
}### Ответ ✅
Переопределение
equals должно учитывать:1. Тип объекта, чтобы предотвратить
ClassCastException.2. Поля, которые нужно сравнивать, включая вложенные узлы.
3. Защиту от циклических ссылок.
Корректная реализация может выглядеть так:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
TreeNode treeNode = (TreeNode) o;
return value == treeNode.value &&
(left == null ? treeNode.left == null : left.equals(treeNode.left)) &&
(right == null ? treeNode.right == null : right.equals(treeNode.right));
}
Объяснение:
- Сравниваем текущий объект с переданным (
this == o).- Проверяем, что объект не
null и принадлежит тому же классу (getClass()).- Сравниваем
value, а также рекурсивно проверяем левый и правый узлы, учитывая возможное их отсутствие (null).---
Больше вопросов с собеседований на платформе: [Job4j](https://job4j.ru/profile/interview) 🚀
👍9
### 🧩 Тренды в программировании: от ООП к проектированию компонентов
Когда мы начинали изучать программирование, многие из нас уделяли огромное внимание объектно-ориентированному программированию (ООП). Это была основа: инкапсуляция, наследование, полиморфизм. 8 лет назад я посвятил большую часть своего курса именно этим темам, чтобы научить студентов создавать грамотный дизайн.
Но сегодня я замечаю важный тренд: роль ООП начинает отступать на второй план. Все больше разработчиков работают с готовыми решениями, такими как фреймворки и инструменты. Создание крупных систем теперь строится не вокруг отдельных классов, а вокруг взаимодействия крупных компонентов — микросервисов, API и облачных сервисов.
🤔 Почему так происходит?
1. Фреймворки решают многое за нас. Spring, Hibernate, Kubernetes и другие инструменты закрывают базовые задачи, что снижает необходимость проектировать сложные библиотеки с нуля.
2. Рост популярности микросервисов. Архитектура систем теперь основывается на взаимодействии автономных компонентов, а не на детальной проработке низкоуровневого дизайна.
3. Функциональное программирование. С появлением новых возможностей Java, Kotlin и других языков многие задачи решаются проще через функции, потоки и реактивные подходы.
⚠️ Но это не значит, что ООП больше не нужно.
- Принципы проектирования остаются важными для понимания основ работы фреймворков.
- Хороший код на уровне микросервиса или библиотеки без ООП просто не построить.
- Способность спроектировать грамотную архитектуру остается редким, но крайне ценным навыком.
🎯 Что важно сегодня:
Современный разработчик должен уметь не только писать код, но и:
- проектировать систему на уровне крупных компонентов;
- понимать, как связаны микросервисы и фреймворки;
- работать с CI/CD, DevOps и облачными решениями.
### 💡 А что вы думаете?
- Нужны ли сегодня глубокие знания ООП?
- Или лучше сразу фокусироваться на практических решениях и фреймворках?
Напишите свое мнение в комментариях👇
#программирование #тренды #ООП #архитектура #фреймворки #Java #Spring
Когда мы начинали изучать программирование, многие из нас уделяли огромное внимание объектно-ориентированному программированию (ООП). Это была основа: инкапсуляция, наследование, полиморфизм. 8 лет назад я посвятил большую часть своего курса именно этим темам, чтобы научить студентов создавать грамотный дизайн.
Но сегодня я замечаю важный тренд: роль ООП начинает отступать на второй план. Все больше разработчиков работают с готовыми решениями, такими как фреймворки и инструменты. Создание крупных систем теперь строится не вокруг отдельных классов, а вокруг взаимодействия крупных компонентов — микросервисов, API и облачных сервисов.
🤔 Почему так происходит?
1. Фреймворки решают многое за нас. Spring, Hibernate, Kubernetes и другие инструменты закрывают базовые задачи, что снижает необходимость проектировать сложные библиотеки с нуля.
2. Рост популярности микросервисов. Архитектура систем теперь основывается на взаимодействии автономных компонентов, а не на детальной проработке низкоуровневого дизайна.
3. Функциональное программирование. С появлением новых возможностей Java, Kotlin и других языков многие задачи решаются проще через функции, потоки и реактивные подходы.
⚠️ Но это не значит, что ООП больше не нужно.
- Принципы проектирования остаются важными для понимания основ работы фреймворков.
- Хороший код на уровне микросервиса или библиотеки без ООП просто не построить.
- Способность спроектировать грамотную архитектуру остается редким, но крайне ценным навыком.
🎯 Что важно сегодня:
Современный разработчик должен уметь не только писать код, но и:
- проектировать систему на уровне крупных компонентов;
- понимать, как связаны микросервисы и фреймворки;
- работать с CI/CD, DevOps и облачными решениями.
### 💡 А что вы думаете?
- Нужны ли сегодня глубокие знания ООП?
- Или лучше сразу фокусироваться на практических решениях и фреймворках?
Напишите свое мнение в комментариях👇
#программирование #тренды #ООП #архитектура #фреймворки #Java #Spring
👍4
🚀 Сегодня, 23 ноября, в 19:00 мы проведем новый вебинар, где подробно разберем:
✅ Как завязывать полезные знакомства.
✅ Какие инструменты помогают в нетворкинге.
✅ Как превращать связи в новые карьерные возможности.
🎟 Вход свободный!
📌 Присоединяйтесь по ссылке: https://t.me/+m-R1k8jptX0yNzMy
✅ Как завязывать полезные знакомства.
✅ Какие инструменты помогают в нетворкинге.
✅ Как превращать связи в новые карьерные возможности.
🎟 Вход свободный!
📌 Присоединяйтесь по ссылке: https://t.me/+m-R1k8jptX0yNzMy
🎥 На золотом крыльце сидели: ПМ, аналитик и программист... | Ошибки в позиционировании на IT-рынке
Это тот же самый разбор, что и в предыдущем видео, только теперь на других платформах. Если вам удобнее смотреть на ВК или RuTube — ловите ссылки! 👇
📹 Смотрите видео:
👉 На платформе ВК: [vk.com](https://vk.com/video298358674_456239270)
👉 На платформе RuTube: [rutube.ru](https://rutube.ru/video/eedb5a6e40e211ce7f0958a26ab834fb/)
Как вам удобнее смотреть видео? Делитесь в комментариях! ⬇️
Это тот же самый разбор, что и в предыдущем видео, только теперь на других платформах. Если вам удобнее смотреть на ВК или RuTube — ловите ссылки! 👇
📹 Смотрите видео:
👉 На платформе ВК: [vk.com](https://vk.com/video298358674_456239270)
👉 На платформе RuTube: [rutube.ru](https://rutube.ru/video/eedb5a6e40e211ce7f0958a26ab834fb/)
Как вам удобнее смотреть видео? Делитесь в комментариях! ⬇️
VK Видео
На золотом крыльце сидели: ПМ, аналитик и программист ... | Ошибки в позиционировании на IT-рынке
🔹 **Как правильно позиционировать себя на собеседовании?** В этом видео я делюсь реальной историей собеседования с кандидатом, который вначале показал отличные знания, но затем заявил, что больше аналитик и ПМ, чем разработчик. Почему важно четко понимать…
🔥7
🎥 Новое видео на канале!
🔥 Три темы, которые помогут вам взглянуть на развитие и программирование под новым углом:
1️⃣ Закаливание – как привычка к холоду помогает укрепить тело и дух.
2️⃣ ООП – почему объектно-ориентированный подход уходит на второй план.
3️⃣ Компонентный подход – новая эра проектирования: гибкость и масштабируемость на первом месте.
📺 Смотри видео здесь: [https://youtu.be/LQ39a_bvRws](https://youtu.be/LQ39a_bvRws)
💬 Делитесь своим мнением в комментариях: согласны ли вы, что компонентный подход вытесняет ООП? 👇
#Закаливание #Программирование #Компоненты #Проектирование
🔥 Три темы, которые помогут вам взглянуть на развитие и программирование под новым углом:
1️⃣ Закаливание – как привычка к холоду помогает укрепить тело и дух.
2️⃣ ООП – почему объектно-ориентированный подход уходит на второй план.
3️⃣ Компонентный подход – новая эра проектирования: гибкость и масштабируемость на первом месте.
📺 Смотри видео здесь: [https://youtu.be/LQ39a_bvRws](https://youtu.be/LQ39a_bvRws)
💬 Делитесь своим мнением в комментариях: согласны ли вы, что компонентный подход вытесняет ООП? 👇
#Закаливание #Программирование #Компоненты #Проектирование
YouTube
Тренды в программировании: от ООП к проектированию компонентов День моржа
### 🧩 Тренды в программировании: от ООП к проектированию компонентов
Когда мы начинали изучать программирование, многие из нас уделяли огромное внимание объектно-ориентированному программированию (ООП). Это была основа: инкапсуляция, наследование, полиморфизм.…
Когда мы начинали изучать программирование, многие из нас уделяли огромное внимание объектно-ориентированному программированию (ООП). Это была основа: инкапсуляция, наследование, полиморфизм.…
👍5🔥1
Скоро 1 декабря, а это значит, что приближается мой дедлайн по новому блоку CI/CD.
К сожалению, я не укладываюсь в сроки, но зато блок становится больше похожим на полноценный курс по DevOps, а не просто на тему CI/CD.
Что будет в блоке?
Я планирую показать весь процесс развертывания сервисов на Java с нуля. Мы разберем:
- выбор и настройку хостинга, включая работу через SSH;
- локальную установку и настройку Jenkins для сборки проектов;
- создание бекапов баз данных и использование Liquibase для управления миграциями;
- работу с Docker, настройку переменных окружения для микросервисов;
- основы Kubernetes.
Этот блок даст все необходимые знания, чтобы уверенно войти в DevOps в контексте Java-проектов.
К сожалению, я не укладываюсь в сроки, но зато блок становится больше похожим на полноценный курс по DevOps, а не просто на тему CI/CD.
Что будет в блоке?
Я планирую показать весь процесс развертывания сервисов на Java с нуля. Мы разберем:
- выбор и настройку хостинга, включая работу через SSH;
- локальную установку и настройку Jenkins для сборки проектов;
- создание бекапов баз данных и использование Liquibase для управления миграциями;
- работу с Docker, настройку переменных окружения для микросервисов;
- основы Kubernetes.
Этот блок даст все необходимые знания, чтобы уверенно войти в DevOps в контексте Java-проектов.
🔥23👍5❤4
💼 Подготавливаемся к собеседованию!
📌 Вопрос: Как создать свою аннотацию в Java?
💡 *Аннотации помогают добавлять метаданные к коду, а в этом вопросе важно уметь не только создать свою аннотацию, но и обработать её с помощью рефлексии.*
🚀 Разберитесь с основами:
1. Объявление аннотации: используйте
2. Обработка аннотации: примените API рефлексии для выполнения логики на основе аннотации.
3. Примеры: создайте аннотацию для логирования, проверок прав доступа или любой другой задачи.
🧑💻 Готовы проверить свои знания?
👉 Ответьте на этот вопрос и получите обратную связь:
[🔗 Перейти на платформу](https://job4j.ru/profile/interview/29/question/764)
📌 Вопрос: Как создать свою аннотацию в Java?
💡 *Аннотации помогают добавлять метаданные к коду, а в этом вопросе важно уметь не только создать свою аннотацию, но и обработать её с помощью рефлексии.*
🚀 Разберитесь с основами:
1. Объявление аннотации: используйте
@interface, @Target и @Retention.2. Обработка аннотации: примените API рефлексии для выполнения логики на основе аннотации.
3. Примеры: создайте аннотацию для логирования, проверок прав доступа или любой другой задачи.
🧑💻 Готовы проверить свои знания?
👉 Ответьте на этот вопрос и получите обратную связь:
[🔗 Перейти на платформу](https://job4j.ru/profile/interview/29/question/764)
👍3
🚀 Готовимся к собеседованию!
💡 Вопрос: Что такое JNDI и зачем его используют?
Если не знаешь или хочешь освежить знания — это важная тема для Java-разработчиков, особенно тех, кто работает с корпоративными приложениями. JNDI помогает находить и управлять ресурсами, такими как базы данных, очереди сообщений, и другие службы.
🔍 Проверь свои знания и узнай больше на платформе:
👉 [job4j.ru/profile/interview/30/question/785](https://job4j.ru/profile/interview/30/question/785)
📚 Подготовься к собеседованию вместе с нами!
💡 Вопрос: Что такое JNDI и зачем его используют?
Если не знаешь или хочешь освежить знания — это важная тема для Java-разработчиков, особенно тех, кто работает с корпоративными приложениями. JNDI помогает находить и управлять ресурсами, такими как базы данных, очереди сообщений, и другие службы.
🔍 Проверь свои знания и узнай больше на платформе:
👉 [job4j.ru/profile/interview/30/question/785](https://job4j.ru/profile/interview/30/question/785)
📚 Подготовься к собеседованию вместе с нами!
👍5