Декомпозиция систем по ограниченным контекстам DDD — глубокое погружение
"Отдайте этот функционал в другую системы - он относится к ним" - ворчал мой собеседник. Ему с пылом отвечали: "Так быть не должно. Мы сами должны его сделать!" Спор грозил затянуться до вечера. Ни одна из сторон не могла привести ни одного настоящего аргумента, почему новый функционал нужно поместить в ту или иную автоматизированную систему.
Проблема была в том, что никто не понимал как правильно делить системы на части и по каким признакам включать в них новые модули. У собеседников не было никакой единой простой методики.
Но методика на самом деле есть, и весьма неплохая. Называется она Предметно Ориентированным Дизайном (Domain Driven Design, DDD). С помощью DDD деление большой системы на (микро)сервисы становится простым и понятным.
Читать статью
"Отдайте этот функционал в другую системы - он относится к ним" - ворчал мой собеседник. Ему с пылом отвечали: "Так быть не должно. Мы сами должны его сделать!" Спор грозил затянуться до вечера. Ни одна из сторон не могла привести ни одного настоящего аргумента, почему новый функционал нужно поместить в ту или иную автоматизированную систему.
Проблема была в том, что никто не понимал как правильно делить системы на части и по каким признакам включать в них новые модули. У собеседников не было никакой единой простой методики.
Но методика на самом деле есть, и весьма неплохая. Называется она Предметно Ориентированным Дизайном (Domain Driven Design, DDD). С помощью DDD деление большой системы на (микро)сервисы становится простым и понятным.
Читать статью
Telegraph
Декомпозиция систем по ограниченным контекстам DDD — глубокое погружение
"Отдайте этот функционал в другую системы - он относится к ним" - ворчал мой собеседник. Ему с пылом отвечали: "Так быть не должно. Мы сами должны его сделать!" Спор грозил затянуться до вечера. Ни одна из сторон не могла привести ни одного настоящего аргумента…
👍9
Пишем плагин для IntelliJ IDEA. Ускоряем написание тестов на DTO
Когда пишешь тесты на обширную модель (DTO), ловишь себя на мысли, что сосредоточен не на тестовых данных, а на том, как ловчее избавить себя от написания boilerplate-кода.
Как это сделать? Поискать готовое решение (плагин).
А если его нет? Тогда – написать плагин.
А если не умеешь? Стоит хотя бы начать :)
Читать статью
Когда пишешь тесты на обширную модель (DTO), ловишь себя на мысли, что сосредоточен не на тестовых данных, а на том, как ловчее избавить себя от написания boilerplate-кода.
Как это сделать? Поискать готовое решение (плагин).
А если его нет? Тогда – написать плагин.
А если не умеешь? Стоит хотя бы начать :)
Читать статью
👍6
Семь принципов хорошей разработки
Принципы разработки программного обеспечения играют решающую роль при создании высококачественных, удобных в сопровождении и эффективных программных систем. К этим принципам относятся: DRY. KISS, YAGNI, SLAP, SOLID. О них и пойдет речь в данной статье.
Читать статью
Принципы разработки программного обеспечения играют решающую роль при создании высококачественных, удобных в сопровождении и эффективных программных систем. К этим принципам относятся: DRY. KISS, YAGNI, SLAP, SOLID. О них и пойдет речь в данной статье.
Читать статью
👍7🔥1
🎄Трогайте, это на Новый год!
Профессия «Java-разработчик»
🎁 Получите скидку до 30 000 р. и доступ ко второй профессии в подарок + 1 из 4 бонусов на выбор!
Освойте язык крупного бизнеса и финансовых технологий и научитесь разрабатывать веб-приложения на фреймворке Spring.
Уже во время обучения вы вступите в программу «Карьерный трек», чтобы найти свою первую работу в IT.
Вы научитесь подбирать правильные структуры для хранения и обработки данных, познакомитесь с автоматизированным тестированием и напишите свои первые модульные тесты.
📌 Пройдите 5 бесплатных уроков и поймите, подходит ли вам профессия!
Реклама. АНПОО "ХЕКСЛЕТ КОЛЛЕДЖ". ИНН 7839056670.
Профессия «Java-разработчик»
🎁 Получите скидку до 30 000 р. и доступ ко второй профессии в подарок + 1 из 4 бонусов на выбор!
Освойте язык крупного бизнеса и финансовых технологий и научитесь разрабатывать веб-приложения на фреймворке Spring.
Уже во время обучения вы вступите в программу «Карьерный трек», чтобы найти свою первую работу в IT.
Вы научитесь подбирать правильные структуры для хранения и обработки данных, познакомитесь с автоматизированным тестированием и напишите свои первые модульные тесты.
📌 Пройдите 5 бесплатных уроков и поймите, подходит ли вам профессия!
Реклама. АНПОО "ХЕКСЛЕТ КОЛЛЕДЖ". ИНН 7839056670.
👍4
Используем аннотацию @Transactional like a pro
Привет! Меня зовут Никита Летов, я тимлид бэкенд-разработки мобильного приложения Росбанка для физических лиц. Этот пост входит в серию постов по разработке бэкенд-микросервисов на Java и Spring и является адаптацией моего доклада с JPoint 2022.
Также хочу предупредить, что данный пост не cookbook и не предоставляет идеально приготовленное решение какой-либо бизнес-проблемы. Это разбор одной технологии, которая при правильном использовании может помочь вам в решении реальной проблемы. А может и не помочь — всё зависит от ее природы.
Читать статью
Привет! Меня зовут Никита Летов, я тимлид бэкенд-разработки мобильного приложения Росбанка для физических лиц. Этот пост входит в серию постов по разработке бэкенд-микросервисов на Java и Spring и является адаптацией моего доклада с JPoint 2022.
Также хочу предупредить, что данный пост не cookbook и не предоставляет идеально приготовленное решение какой-либо бизнес-проблемы. Это разбор одной технологии, которая при правильном использовании может помочь вам в решении реальной проблемы. А может и не помочь — всё зависит от ее природы.
Читать статью
👍8😢2
Microservices | Вопросы с Собеседований
- Подборка вопросов по микросервисной архитектуре с реальных собеседований
- Авторские статьи по архитектуре, проектированию, базам данных
- Автор - Lead Developer с 8 лет опыта на Java/Kotlin
- Подборка вопросов по микросервисной архитектуре с реальных собеседований
- Авторские статьи по архитектуре, проектированию, базам данных
- Автор - Lead Developer с 8 лет опыта на Java/Kotlin
👍4❤3
15 советов для развития экспертизы в Java
Предложенная сегодня статья достаточно детально, подробно и обоснованно расписывает необходимые шаги, которые нужно предпринять, чтобы стать экспертом в Java. 😃
Приятного чтения!
Читать статью
Предложенная сегодня статья достаточно детально, подробно и обоснованно расписывает необходимые шаги, которые нужно предпринять, чтобы стать экспертом в Java. 😃
Приятного чтения!
Читать статью
👍6🔥1
Абстрактные классы и интерфейсы в Java
В каких случаях стоит использовать абстрактный класс, а в каких — интерфейс? Давайте разбираться, в чем между ними разница.
Читать статью
В каких случаях стоит использовать абстрактный класс, а в каких — интерфейс? Давайте разбираться, в чем между ними разница.
Читать статью
Telegraph
Абстрактные классы и интерфейсы в Java
В каких случаях стоит использовать абстрактный класс, а в каких — интерфейс? Давайте разбираться, в чем между ними разница. Абстрактные классы и интерфейсы встречаются повсюду как в Java-приложениях, так и в самом Java Development Kit (JDK). Каждый из них…
👍6❤1
«Обработка тысяч одновременных записей и обеспечение согласованности данных»
• Разберем уровни изоляции транзакций
• Физический состав работы с базой данных
• Locks: pessimistic, optimistic & advisory
Рассмотрим потенциальные проблемы при работе со связкой java->database. Выполним тысячи апдейтов над одними и теми же строками и покажем наиболее распространенные подходы для достижения согласованности и производительности.
Ведущий: Роман Оборин, Senior Software Engineer
Опыт программирования на Java — 6 лет (Tesco, BNP paribas, Natera)
Реклама. ООО "Платформа непрерывного обучения" ИНН 7839405924
erid: 2VtzquvJnbX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Мессенджеры на работе — это не прокрастинация, или как мы сделали сервис для автотестирования
Однажды у нас появилась идея отправлять отчеты о выполнении автотестов в мессенджер Telegram. Постепенно эта идея переросла в сервис, который который позволяет запускать тесты, оповещать об ошибках и получать отчеты в любом мессенджере, где есть возможность интегрировать бота. Помимо доступа к результатам автотестов, бот получил интеграцию с Jira и другими инструментами, которые мы используем в РТЛабс.
В данной серии статей мы хотим рассказать нашу историю о том, с чего все начиналось, какие у нас были идеи, какие ошибки мы совершали и как мы их решили в итоговой реализации.
Читать статью
Однажды у нас появилась идея отправлять отчеты о выполнении автотестов в мессенджер Telegram. Постепенно эта идея переросла в сервис, который который позволяет запускать тесты, оповещать об ошибках и получать отчеты в любом мессенджере, где есть возможность интегрировать бота. Помимо доступа к результатам автотестов, бот получил интеграцию с Jira и другими инструментами, которые мы используем в РТЛабс.
В данной серии статей мы хотим рассказать нашу историю о том, с чего все начиналось, какие у нас были идеи, какие ошибки мы совершали и как мы их решили в итоговой реализации.
Читать статью
Telegraph
Мессенджеры на работе — это не прокрастинация, или как мы сделали сервис для автотестирования
Однажды у нас появилась идея отправлять отчеты о выполнении автотестов в мессенджер Telegram. Постепенно эта идея переросла в сервис, который который позволяет запускать тесты, оповещать об ошибках и получать отчеты в любом мессенджере, где есть возможность…
👍3🔥1
Как написать на Java функцию, подобную sizeof в C
Если вы только начинаете изучать Java и уже имеете опыт программирования на С, то можете заметить разницу между этими двумя языками. К примеру, String — это объект в Java, а не массив символов с конечным NULL. Аналогично, в Java нет оператора sizeof(). Все примитивы имеют заранее определенный размер, например int — 4 байта, char — 2 байта, short — 2 байта, long и float — 8 байт и так далее.
Читать статью
Если вы только начинаете изучать Java и уже имеете опыт программирования на С, то можете заметить разницу между этими двумя языками. К примеру, String — это объект в Java, а не массив символов с конечным NULL. Аналогично, в Java нет оператора sizeof(). Все примитивы имеют заранее определенный размер, например int — 4 байта, char — 2 байта, short — 2 байта, long и float — 8 байт и так далее.
Читать статью
Telegraph
Как написать на Java функцию, подобную sizeof в C
Если вы только начинаете изучать Java и уже имеете опыт программирования на С, то можете заметить разницу между этими двумя языками. К примеру, String — это объект в Java, а не массив символов с конечным NULL. Аналогично, в Java нет оператора sizeof(). Все…
👍2❤1
Hibernate: заполняем пробелы
Я не гуру разработки и не читал книжку по Hibernate на 800 страниц. Я просто любознательный малый, который решил немного хлебнуть из бездонной бочки знаний по разработке на Java. Эта статья рассчитана на Junior разработчиков, которые хотят заполнить пробелы по Hibernate. Если это будут читать более опытные разработчики: напишите замечания по техническому наполнению статьи. Буду вам очень признателен. Со вступлением все. Поехали)
Читать статью
Я не гуру разработки и не читал книжку по Hibernate на 800 страниц. Я просто любознательный малый, который решил немного хлебнуть из бездонной бочки знаний по разработке на Java. Эта статья рассчитана на Junior разработчиков, которые хотят заполнить пробелы по Hibernate. Если это будут читать более опытные разработчики: напишите замечания по техническому наполнению статьи. Буду вам очень признателен. Со вступлением все. Поехали)
Читать статью
Telegraph
Hibernate: заполняем пробелы
Я не гуру разработки и не читал книжку по Hibernate на 800 страниц. Я просто любознательный малый, который решил немного хлебнуть из бездонной бочки знаний по разработке на Java. Эта статья рассчитана на Junior разработчиков, которые хотят заполнить пробелы…
👍5
Telegram-бот счётчик сообщений на Java и Spring Boot
В этой статье я покажу, как написать Telegram-бот на Java с использованием Spring Boot, PostgreSQL и JPA. Также создадим исполняемый jar-файл. Сам же бот будет подсчитывать сообщения от пользователей и записывать эти данные в БД.
Читать статью
В этой статье я покажу, как написать Telegram-бот на Java с использованием Spring Boot, PostgreSQL и JPA. Также создадим исполняемый jar-файл. Сам же бот будет подсчитывать сообщения от пользователей и записывать эти данные в БД.
Читать статью
Telegraph
Telegram-бот счётчик сообщений на Java и Spring Boot
В этой статье я покажу, как написать Telegram-бот на Java с использованием Spring Boot, PostgreSQL и JPA. Также создадим исполняемый jar-файл. Сам же бот будет подсчитывать сообщения от пользователей и записывать эти данные в БД. Создаём Spring проект на…
👍6
🧠 Учитесь программировать на курсе Java-разработчик с трудоустройством. Вы пройдёте путь от новичка до junior-специалиста и сможете зарабатывать до 100 000 рублей уже в начале карьеры.
Вы с нуля освоите Java, SQL, Spring и Git. Создадите поисковый движок для портфолио и разработаете backend-составляющую для книжного интернет-магазина — аналога ЛитРес.
Бонусы для участников курса:
✅ первые 6 месяцев — бесплатно;
✅ новая работа уже через 8 месяцев
✅ удобная рассрочка и скидка;
✅ гарантия трудоустройства от Центра карьеры Skillbox. Если вы не выйдете на работу, мы вернём вам деньги за курс;
✅ год бесплатного английского.
Узнать подробнее о курсе и получить специальную скидку можно здесь: https://epic.st/cKniM
☃️🎁Начните год с новых знаний! Новогодняя скидка до 60% и второй курс в подарок!
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Вы с нуля освоите Java, SQL, Spring и Git. Создадите поисковый движок для портфолио и разработаете backend-составляющую для книжного интернет-магазина — аналога ЛитРес.
Бонусы для участников курса:
✅ первые 6 месяцев — бесплатно;
✅ новая работа уже через 8 месяцев
✅ удобная рассрочка и скидка;
✅ гарантия трудоустройства от Центра карьеры Skillbox. Если вы не выйдете на работу, мы вернём вам деньги за курс;
✅ год бесплатного английского.
Узнать подробнее о курсе и получить специальную скидку можно здесь: https://epic.st/cKniM
☃️🎁Начните год с новых знаний! Новогодняя скидка до 60% и второй курс в подарок!
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
👍2
Создаем базовый репозиторий на основе Spring Data JPA
Сегодня мы разберемся в том, как создать свой собственный базовый репозиторий, который вы cможете настроить под каждый объект вашей сущности. 😳
Поможет в этом деле Thorben Janssen, известный эксперт в Spring Data JPA.
Приятного чтения!
Читать статью
Сегодня мы разберемся в том, как создать свой собственный базовый репозиторий, который вы cможете настроить под каждый объект вашей сущности. 😳
Поможет в этом деле Thorben Janssen, известный эксперт в Spring Data JPA.
Приятного чтения!
Читать статью
👍3
Пишем Java REST API на основе Spring Boot
Предложенное сегодня руководство научит вас создавать безопасные REST API с защитой на основе OAuth 2.0 и JWT аутентификацией, а также упаковывать результат в нативные образы Spring Boot. 😳
Хорошей практики!
Читать статью
Предложенное сегодня руководство научит вас создавать безопасные REST API с защитой на основе OAuth 2.0 и JWT аутентификацией, а также упаковывать результат в нативные образы Spring Boot. 😳
Хорошей практики!
Читать статью
👍3
Присоединяйтесь к нашему бесплатному курсу и начните увлекательное путешествие в мир Java!
Изучайте основы, создавайте программы, разбирайтесь с методами и анализируйте ошибки в коде. Практика, упражнения и проверочные тесты помогут вам освоить навыки программирования.
🎓 Чему вы научитесь:
— Создавать программы с использованием основных конструкций языка.
— Разделять код на методы для повторного использования.
— Анализировать ошибки в коде с использованием отладочной печати.
💼 Включено в курс:
29 уроков (видео и/или текст), 35 упражнений в тренажере, 95 проверочных тестов + дополнительные материалы.
Вы с нами?😉
Реклама. АНПОО "ХЕКСЛЕТ КОЛЛЕДЖ". ИНН 7839056670.
Изучайте основы, создавайте программы, разбирайтесь с методами и анализируйте ошибки в коде. Практика, упражнения и проверочные тесты помогут вам освоить навыки программирования.
🎓 Чему вы научитесь:
— Создавать программы с использованием основных конструкций языка.
— Разделять код на методы для повторного использования.
— Анализировать ошибки в коде с использованием отладочной печати.
💼 Включено в курс:
29 уроков (видео и/или текст), 35 упражнений в тренажере, 95 проверочных тестов + дополнительные материалы.
Вы с нами?😉
Реклама. АНПОО "ХЕКСЛЕТ КОЛЛЕДЖ". ИНН 7839056670.
👍3
Обнаружение и предотвращение утечек памяти в Java
Несмотря на наличие в Java надежной автоматической сборки мусора, утечки памяти в этом языке остаются сложной проблемой для разработчиков. Такие утечки происходят, когда объекты больше не нужны приложению, но на них по-прежнему ссылаются другие объекты, что не позволяет сборщику мусора освободить занимаемую ими память. Со временем это может привести к значительному снижению производительности приложения и даже к его аварийному завершению из-за исключения OutOfMemoryError. Цель данной статьи — разобраться в тонкостях утечек памяти в Java, изучить методы их обнаружения и стратегии предотвращения.
Читать статью
Несмотря на наличие в Java надежной автоматической сборки мусора, утечки памяти в этом языке остаются сложной проблемой для разработчиков. Такие утечки происходят, когда объекты больше не нужны приложению, но на них по-прежнему ссылаются другие объекты, что не позволяет сборщику мусора освободить занимаемую ими память. Со временем это может привести к значительному снижению производительности приложения и даже к его аварийному завершению из-за исключения OutOfMemoryError. Цель данной статьи — разобраться в тонкостях утечек памяти в Java, изучить методы их обнаружения и стратегии предотвращения.
Читать статью
Teletype
Обнаружение и предотвращение утечек памяти в Java
Несмотря на наличие в Java надежной автоматической сборки мусора, утечки памяти в этом языке остаются сложной проблемой для...
👍6🔥2
Java-разработчики, вас зовут в Тинькофф
Участвуйте в Java Weekend Offer, если ваш опыт больше 3 лет. Пройдите все этапы собеседования за выходные и, если все понравится, получите оффер.
Сможете решать сложные задачи, расти в сильной команде, работать на топовом стеке и пользоваться бенефитами.
Выбирайте удобную дату и пробуйте свои силы. Оставьте заявку до 14 февраля
АО «Тинькофф Банк», ИНН 7710140679
Участвуйте в Java Weekend Offer, если ваш опыт больше 3 лет. Пройдите все этапы собеседования за выходные и, если все понравится, получите оффер.
Сможете решать сложные задачи, расти в сильной команде, работать на топовом стеке и пользоваться бенефитами.
Выбирайте удобную дату и пробуйте свои силы. Оставьте заявку до 14 февраля
АО «Тинькофф Банк», ИНН 7710140679
👍4😢1
Особое мнение: смотрим на нагрузочные тесты как на функциональные
Что делать, если у команды появилась потребность регулярно оценивать производительность приложения и в динамике сравнивать быстродействие с прошлыми прогонами, а внедрять для этого решение enterprise-уровня - это как из пушки по воробьям? Мы решили пойти немного неочевидным, но продуктивным путём, воспользовавшись опытом реализации функциональных тестов и их интеграции в систему CI/CD, ведь, в сущности, почему нужно обязательно смотреть на тестирование производительности, как на что-то особенное? Что из этого получилось, и с какими проблемами при этом пока ещё приходится мириться - читайте в статье.
Читать статью
Что делать, если у команды появилась потребность регулярно оценивать производительность приложения и в динамике сравнивать быстродействие с прошлыми прогонами, а внедрять для этого решение enterprise-уровня - это как из пушки по воробьям? Мы решили пойти немного неочевидным, но продуктивным путём, воспользовавшись опытом реализации функциональных тестов и их интеграции в систему CI/CD, ведь, в сущности, почему нужно обязательно смотреть на тестирование производительности, как на что-то особенное? Что из этого получилось, и с какими проблемами при этом пока ещё приходится мириться - читайте в статье.
Читать статью
Telegraph
Особое мнение: смотрим на нагрузочные тесты как на функциональные
Всем привет! В команде Мир Plat.Form я занимаюсь системами сертификации эмиссии – наш отдел разрабатывает программные продукты для внутренних и внешних пользователей, автоматизирующие сертификацию всего, что в конечном итоге превращается в «кредитку» в вашем…
👍5