Объекты как параметры методов
В Java объекты могут использоваться как параметры методов, что позволяет передавать данные и взаимодействовать с ними внутри методов. Это один из основных способов работы с данными в ООП.
Параметры методов представляют собой значения, которые передаются методу при его вызове. Они объявляются в заголовке метода и позволяют методу получать информацию, необходимую для выполнения своей задачи.
#код
В Java объекты могут использоваться как параметры методов, что позволяет передавать данные и взаимодействовать с ними внутри методов. Это один из основных способов работы с данными в ООП.
Параметры методов представляют собой значения, которые передаются методу при его вызове. Они объявляются в заголовке метода и позволяют методу получать информацию, необходимую для выполнения своей задачи.
#код
Шпаргалка по структурам данных в Java
К каждому собеседованию важно готовиться и проще всего это делать, когда перед глазами есть готовый материал. В данной публикации я хочу поделиться с вами своей шпаргалкой, которую использую перед собеседованиями для повторения структур данных в Java.
Смотреть статью
К каждому собеседованию важно готовиться и проще всего это делать, когда перед глазами есть готовый материал. В данной публикации я хочу поделиться с вами своей шпаргалкой, которую использую перед собеседованиями для повторения структур данных в Java.
Смотреть статью
Сколько вы тратите времени в день на работу по факту?
#интерактив
#интерактив
Адаптер
Адаптер — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе. Он позволяет «преобразовать» интерфейс одного класса в интерфейс другого класса таким образом, чтобы они могли взаимодействовать без изменения существующего кода.
Паттерн Адаптер включает в себя два вида адаптеров:
☕ Классовый адаптер: использует наследование для адаптации интерфейса исходного класса к целевому интерфейсу. То есть, он наследует исходный класс и реализует целевой интерфейс.
☕ Объектный адаптер: использует композицию, чтобы включить объект исходного класса в адаптер и реализует целевой интерфейс.
#код
Адаптер — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе. Он позволяет «преобразовать» интерфейс одного класса в интерфейс другого класса таким образом, чтобы они могли взаимодействовать без изменения существующего кода.
Паттерн Адаптер включает в себя два вида адаптеров:
☕ Классовый адаптер: использует наследование для адаптации интерфейса исходного класса к целевому интерфейсу. То есть, он наследует исходный класс и реализует целевой интерфейс.
☕ Объектный адаптер: использует композицию, чтобы включить объект исходного класса в адаптер и реализует целевой интерфейс.
#код
Подборка лучших статей «Библиотеки программиста» за сентябрь: сохраняй в заметки, чтобы не пропустить #самыйсок
📕 ТОП-9 книг по языку программирования Go в 2023 году: от новичка до профессионала
🐍 Дорожная карта Python-разработчика в 2023 году
🎓💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ
☕🛣️ Дорожная карта Java-разработчика в 2023 году
🦸⚡ 9 способов настройки градиента цели для поддержания мотивации
⚒️ ТОП-27 плагинов для Visual Studio Code в 2023
🔎💼🗺️ Как программисту искать (и найти) работу за границей в 2023 году
🔝 Приоритизация задач по методу MoSCoW: как за 5 минут научиться грамотно расставлять приоритеты
🤖 Создание собственного ИИ-бота на Python за 33 строчки кода
📊 Как я входил в IT? Результаты опроса «Библиотеки программиста»
📕 ТОП-9 книг по языку программирования Go в 2023 году: от новичка до профессионала
🐍 Дорожная карта Python-разработчика в 2023 году
🎓💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ
☕🛣️ Дорожная карта Java-разработчика в 2023 году
🦸⚡ 9 способов настройки градиента цели для поддержания мотивации
⚒️ ТОП-27 плагинов для Visual Studio Code в 2023
🔎💼🗺️ Как программисту искать (и найти) работу за границей в 2023 году
🔝 Приоритизация задач по методу MoSCoW: как за 5 минут научиться грамотно расставлять приоритеты
🤖 Создание собственного ИИ-бота на Python за 33 строчки кода
📊 Как я входил в IT? Результаты опроса «Библиотеки программиста»
Micronaut
Micronaut — это относительно новый фреймворк для разработки микросервисов на Java.
Основные преимущества — высокая производительность, низкое потребление памяти, интеграция с популярными технологиями микросервисов.
Фреймворк активно развивается и используется в продакшене несколькими крупными компаниями.
Области применения:
— Разработка высокопроизводительных микросервисов. Micronaut оптимизирован для создания легковесных микросервисов с минимальным использованием ресурсов.
— Построение serverless-приложений. Благодаря низким накладным расходам при старте фреймворк хорошо подходит для бессерверных архитектур на основе функций.
— Быстрая разработка микросервисов. Фреймворк содержит много готовой инфраструктуры для разработки, позволяя быстрее создавать сервисы.
— Интеграция с GraalVM. Micronaut оптимизирован для работы со средой исполнения GraalVM, что дает дополнительное ускорение.
#код
Micronaut — это относительно новый фреймворк для разработки микросервисов на Java.
Основные преимущества — высокая производительность, низкое потребление памяти, интеграция с популярными технологиями микросервисов.
Фреймворк активно развивается и используется в продакшене несколькими крупными компаниями.
Области применения:
— Разработка высокопроизводительных микросервисов. Micronaut оптимизирован для создания легковесных микросервисов с минимальным использованием ресурсов.
— Построение serverless-приложений. Благодаря низким накладным расходам при старте фреймворк хорошо подходит для бессерверных архитектур на основе функций.
— Быстрая разработка микросервисов. Фреймворк содержит много готовой инфраструктуры для разработки, позволяя быстрее создавать сервисы.
— Интеграция с GraalVM. Micronaut оптимизирован для работы со средой исполнения GraalVM, что дает дополнительное ускорение.
#код
Упрощаем работу с Excel с помошью Apache POI: готовый шаблонный код
Пошаговое практическое руководство c преобразованием шаблона poiTemplate.xlsx в Excel документ с возможностью программной модификации страниц. Также код может послужить образцом применения паттерна стратегия.
Читать статью
Пошаговое практическое руководство c преобразованием шаблона poiTemplate.xlsx в Excel документ с возможностью программной модификации страниц. Также код может послужить образцом применения паттерна стратегия.
Читать статью
ServletConfig
ServletConfig используется для настройки сервлетов при их инициализации.
Основные моменты, которые следует знать о ServletConfig:
— ServletConfig предоставляет сервлету доступ к инициализационным параметрам. Эти параметры определяются в дескрипторе развертывания (например, web.xml).
— Для получения экземпляра ServletConfig используется метод getServletConfig(), вызываемый в методе инициализации сервлета init().
— Через ServletConfig можно получить доступ к контексту сервлета с помощью метода getServletContext().
— Можно получить значение инициализационного параметра по имени с помощью метода getInitParameter().
— Можно перечислить все инициализационные параметры методом getInitParameterNames().
#код
ServletConfig используется для настройки сервлетов при их инициализации.
Основные моменты, которые следует знать о ServletConfig:
— ServletConfig предоставляет сервлету доступ к инициализационным параметрам. Эти параметры определяются в дескрипторе развертывания (например, web.xml).
— Для получения экземпляра ServletConfig используется метод getServletConfig(), вызываемый в методе инициализации сервлета init().
— Через ServletConfig можно получить доступ к контексту сервлета с помощью метода getServletContext().
— Можно получить значение инициализационного параметра по имени с помощью метода getInitParameter().
— Можно перечислить все инициализационные параметры методом getInitParameterNames().
#код
Какие коллекции синхронизированы?
Vector — синхронизированный аналог ArrayList.
Hashtable — синхронизированный аналог HashMap.
Stack — синхронизированный стек на основе Vector.
Collections.synchronizedList() — возвращает синхронизированный список на основе переданного в нее списка.
Collections.synchronizedSet() — то же самое для множества.
Collections.synchronizedMap() — для отображения.
Синхронизация в этих коллекциях реализована с помощью внутренних блокировок, которые упорядочивает доступ к коллекции из разных потоков.
Обычно предпочтительнее использовать несинхронизированные коллекции и синхронизировать доступ к ним самостоятельно при необходимости, чтобы не терять производительность.
Это можно сделать с помощью методов synchronizedCollection(), synchronizedList(), synchronizedSet(), synchronizedMap().
#вопросы_с_собеседований
Vector — синхронизированный аналог ArrayList.
Hashtable — синхронизированный аналог HashMap.
Stack — синхронизированный стек на основе Vector.
Collections.synchronizedList() — возвращает синхронизированный список на основе переданного в нее списка.
Collections.synchronizedSet() — то же самое для множества.
Collections.synchronizedMap() — для отображения.
Синхронизация в этих коллекциях реализована с помощью внутренних блокировок, которые упорядочивает доступ к коллекции из разных потоков.
Обычно предпочтительнее использовать несинхронизированные коллекции и синхронизировать доступ к ним самостоятельно при необходимости, чтобы не терять производительность.
Это можно сделать с помощью методов synchronizedCollection(), synchronizedList(), synchronizedSet(), synchronizedMap().
#вопросы_с_собеседований
SQLException
SQLException — это класс исключений, используемый для обработки ошибок, связанных с работой с базами данных.
Обычно он возникает при выполнении запросов к БД через JDBC и сигнализирует об ошибках соединения с БД, синтаксических ошибках в SQL запросе, проблемах с транзакциями и т.д.
Здесь мы подключаемся к БД, выполняем запрос INSERT и отлавливаем возможную ошибку через блок catch по SQLException.
Если запрос выполнится успешно, ничего не будет выведено в консоль.
Если произойдет ошибка, например, из-за неправильного SQL синтаксиса, будет выведена информация об исключении.
SQLException — это класс исключений, используемый для обработки ошибок, связанных с работой с базами данных.
Обычно он возникает при выполнении запросов к БД через JDBC и сигнализирует об ошибках соединения с БД, синтаксических ошибках в SQL запросе, проблемах с транзакциями и т.д.
Здесь мы подключаемся к БД, выполняем запрос INSERT и отлавливаем возможную ошибку через блок catch по SQLException.
Если запрос выполнится успешно, ничего не будет выведено в консоль.
Если произойдет ошибка, например, из-за неправильного SQL синтаксиса, будет выведена информация об исключении.
Может ли Java быть быстрой? Сравнение производительности Helidon Níma и Spring
Java долгое время была и остается фаворитом в enterprise решениях, но все чаще в высоконагруженных проектах предпочтение отдается более "производительным" языкам, таким как Go, а порой даже C++. Но вдруг Java тоже может быть быстрой?
Читать статью
Java долгое время была и остается фаворитом в enterprise решениях, но все чаще в высоконагруженных проектах предпочтение отдается более "производительным" языкам, таким как Go, а порой даже C++. Но вдруг Java тоже может быть быстрой?
Читать статью
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека шарписта
Библиотека мобильного разработчика
Библиотека хакера
Библиотека devops’a
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook
🔸Instagram
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека шарписта
Библиотека мобильного разработчика
Библиотека хакера
Библиотека devops’a
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🗺️ Дорожная карта: что это, как ее составить и почему она обязательно нужна разработчику
Откройте для себя секретное оружие успешного программиста — дорожную карту, которая поможет составить пошаговый план действий на ближайшие несколько лет. В данной статье разберемся, зачем она нужна, как правильно ее составить и где «подглядеть» роадмап для айтишников всех направлений 🤫
📌 Примеры дорожных карт и полезные материалы по теме:
🤩 Подборка дорожных карт для разработчиков
👉 Дорожная карта Frontend-разработчика в 2022 году
🏃 8 шагов от новичка до профессионала: дорожная карта разработчика на C#
👨💻 Как стать фрилансером и где найти первый заказ: дорожная карта
🍏 Карьерный гид от новичка до профи: дорожная карта iOS-разработчика
☕ Дорожная карта Java-разработчика в 2023 году
🧔 Повышение до тимлида: дорожная карта
🐍 Дорожная карта Python-разработчика
🤝 5 soft skills, которые помогут тебе дорасти до Senior-разработчика
Откройте для себя секретное оружие успешного программиста — дорожную карту, которая поможет составить пошаговый план действий на ближайшие несколько лет. В данной статье разберемся, зачем она нужна, как правильно ее составить и где «подглядеть» роадмап для айтишников всех направлений 🤫
📌 Примеры дорожных карт и полезные материалы по теме:
🤩 Подборка дорожных карт для разработчиков
👉 Дорожная карта Frontend-разработчика в 2022 году
🏃 8 шагов от новичка до профессионала: дорожная карта разработчика на C#
👨💻 Как стать фрилансером и где найти первый заказ: дорожная карта
🍏 Карьерный гид от новичка до профи: дорожная карта iOS-разработчика
☕ Дорожная карта Java-разработчика в 2023 году
🧔 Повышение до тимлида: дорожная карта
🐍 Дорожная карта Python-разработчика
🤝 5 soft skills, которые помогут тебе дорасти до Senior-разработчика
Очередной #дайджест по Java:
☕ Автоматизация разработки с помощью подхода DB-first
Интеграция с БД — привычно сложная и хрупкая часть большинства кодобаз, постоянно отвлекающая внимание разработчиков и раздувающая сроки.
☕ Java: что нужно знать новичку?
Необходимые знания одного из самых популярных языков.
☕ Какую IDE для Java выбрать?
Какую IDE выбрать для начинающего Java-разработчика?
☕ Особенности разработки автотестов различными инструментами, а также статистика по использованию
Однозначным плюсом внедрения автотестов на проекте является сокращение времени на тестирование и сокращение возможности ошибки при тестировании человеком.
☕ Автоматизация разработки с помощью подхода DB-first
Интеграция с БД — привычно сложная и хрупкая часть большинства кодобаз, постоянно отвлекающая внимание разработчиков и раздувающая сроки.
☕ Java: что нужно знать новичку?
Необходимые знания одного из самых популярных языков.
☕ Какую IDE для Java выбрать?
Какую IDE выбрать для начинающего Java-разработчика?
☕ Особенности разработки автотестов различными инструментами, а также статистика по использованию
Однозначным плюсом внедрения автотестов на проекте является сокращение времени на тестирование и сокращение возможности ошибки при тестировании человеком.
Как часто вы обращаетесь к документации?
#интерактив
#интерактив
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Trie
Trie (дерево префиксов) — это структура данных в виде дерева, используемая для хранения ассоциативных данных, например словарей.
Она позволяет эффективно хранить и находить слова по их префиксам.
Trie состоит из узлов, каждый из которых может ссылаться на несколько дочерних узлов. Каждая ветвь от корня до листа представляет одно слово, а символы слова образуют путь от корня до узла-листа.
Узлы, которые являются концом слова, помечаются специальным флагом.
Поиск слова заключается в прохождении от корня по ветвям символов этого слова. Добавление нового слова — добавление отсутствующих узлов для его символов.
Trie оптимальна для хранения словарей и поиска по префиксам благодаря эффективности этих операций.
В Java для реализации Trie удобно использовать HashMap в узлах для связей с дочерними узлами.
#код
Trie (дерево префиксов) — это структура данных в виде дерева, используемая для хранения ассоциативных данных, например словарей.
Она позволяет эффективно хранить и находить слова по их префиксам.
Trie состоит из узлов, каждый из которых может ссылаться на несколько дочерних узлов. Каждая ветвь от корня до листа представляет одно слово, а символы слова образуют путь от корня до узла-листа.
Узлы, которые являются концом слова, помечаются специальным флагом.
Поиск слова заключается в прохождении от корня по ветвям символов этого слова. Добавление нового слова — добавление отсутствующих узлов для его символов.
Trie оптимальна для хранения словарей и поиска по префиксам благодаря эффективности этих операций.
В Java для реализации Trie удобно использовать HashMap в узлах для связей с дочерними узлами.
#код
Может ли один блок catch отлавливать несколько исключений (с одной и разных веток наследований)?
Да, в Java один блок catch может обрабатывать сразу несколько типов исключений.
Это работает следующим образом:
— При определении блока catch в круглых скобках перечисляются классы исключений через вертикальную черту "|" . Это могут быть классы исключений как с одной ветки наследования, так и с разных.
— Когда во время выполнения программы возникает исключение, Java проверяет, подходит ли оно под один из указанных в catch типов. Если подходит — выполняется код внутри данного блока catch.
Это позволяет избежать дублирования кода обработки в случаях, когда разные исключения должны обрабатываться одинаково.
#вопросы_с_собеседований
Да, в Java один блок catch может обрабатывать сразу несколько типов исключений.
Это работает следующим образом:
— При определении блока catch в круглых скобках перечисляются классы исключений через вертикальную черту "|" . Это могут быть классы исключений как с одной ветки наследования, так и с разных.
— Когда во время выполнения программы возникает исключение, Java проверяет, подходит ли оно под один из указанных в catch типов. Если подходит — выполняется код внутри данного блока catch.
Это позволяет избежать дублирования кода обработки в случаях, когда разные исключения должны обрабатываться одинаково.
#вопросы_с_собеседований
DoubleAdder
DoubleAdder — это класс из пакета java.util.concurrent, предназначенный для эффективного параллельного суммирования значений типа double.
DoubleAdder оптимизирован для многопоточных приложений, когда нужно подсчитать сумму или другое агрегатное значение из большого числа потоков.
Преимущества:
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Хорошо масштабируется на большом количестве CPU ядер.
#код
DoubleAdder — это класс из пакета java.util.concurrent, предназначенный для эффективного параллельного суммирования значений типа double.
DoubleAdder оптимизирован для многопоточных приложений, когда нужно подсчитать сумму или другое агрегатное значение из большого числа потоков.
Преимущества:
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Хорошо масштабируется на большом количестве CPU ядер.
#код
Пишем простую интеграцию с GitHub используя feign и jsonschema2pojo maven plugin
В эпоху микросервисов приходится все чаще и чаще писать интеграции для их взаимодействия как между собой, так и со сторонними системами. Кто-то создаёт отдельные библиотеки с интеграцией и переиспользует их в нескольких микросервисах, кто-то захламляет проект огромным количеством POJO классов, некоторые же создают один POJO класс с множеством вложенных классов. В этой статье автор делится подходом, используя который вы сможете спрятать большую часть кода, которая мешает чтению и пониманию проекта.
Читать статью
В эпоху микросервисов приходится все чаще и чаще писать интеграции для их взаимодействия как между собой, так и со сторонними системами. Кто-то создаёт отдельные библиотеки с интеграцией и переиспользует их в нескольких микросервисах, кто-то захламляет проект огромным количеством POJO классов, некоторые же создают один POJO класс с множеством вложенных классов. В этой статье автор делится подходом, используя который вы сможете спрятать большую часть кода, которая мешает чтению и пониманию проекта.
Читать статью
Пробовали ли программировать на планшете?
#интерактив
#интерактив