Чашечка Java
8.55K subscribers
3.87K photos
13 videos
56 files
6.33K links
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
Учить Python или Java? Вот в чём вопрос

Постарались собрать все аргументы, что выбрать новичкам — Python или Java — но вы тоже добавляйте в комментариях.

Читать: «Учить Python или Java? Вот в чём вопрос»
Ракету пустил и забыл. Или как заставить DI работать

Ваш первый день на работе. Вчера вы рассказывали про чистую архитектуру, SOLID принципы, и про то, как создавать аккуратную и масштабируемую архитектуру.

Сегодня нужно написать простенький экран, который будет отображать список. Вы с огромным энтузиазмом начинаете реализовывать прекрасный список - каталог товаров магазина. Один запрос, один список. Все сделали красиво, фрагмент создался, подтянул из DI ViewModel, которая в свою очередь передала остальным слоям, чтоб загрузить данные по АПИ и закешировать их. Все эти компоненты правильно освобождаются, так как все это сделано как надо отдельным Субкомпонентом с отдельным скоупом.

Следующий день, оказалось, что к списку нужно добавить расценки, однако их можно загружать только отдельным запросом. Этот запрос оказался тяжелым на сервере, так что каждый ответ может приходить дольше чем обычно, и сам запрос ко всему списку разбит на несколько подзапросов. При отправке запроса клиент должен выслать список наиболее просматриваемых товаров пользователем. Бэк при этом очень попросил лишний раз запросы не делать, так как сервер и так не справляется.

В одночасье, мы понимаем, что наша шаблонная архитектура превращается из легкой и понятной в сложную и нечитабельную. А все потому, что нам нужно прежде всего обеспечить жизненный цикл компонентов достаточно большим, чтобы эти компоненты успели: собрать информацию для запроса, выполнить долгие запросы, а может быть и несколько за раз, при страничной загрузке, сохранить ответы сервера и закешировать их, также сформировать один общий список товаров с 2 разных запросов и, наконец, выполнить фильтрацию и сортировку конечного списка.


Читать: https://habr.com/ru/articles/754580/?utm_campaign=754580
👍2
Как принимать и выдавать JSON в качестве ответа в Spring Boot? Пример учебника

Приветствую всех, добро пожаловать в этот блог. В этом кратком руководстве мы подробно рассмотрим, какпотреблять и создавать JSON-ответы с помощью широко известного Java-фреймворка Spring Boot. Как мы все знаем, Spring Boot - это фреймворк, предназначенный для создания безопасных веб-приложений, микросервисов, REST API и готовых к производству приложений Spring. Современные приложения работают с большим объемом данных, которые они передают в формате JSON. JSON - это стандартное текстовое представление структурированных данных. Это один из популярных форматов для передачи данных через Интернет. Благодаря удобному синтаксису и небольшому весу он помогает ускорить процесс.

Вопросы и учебные пособия для собеседования по Java

Read: http://www.java67.com/2023/04/how-to-accept-and-produce-json-as.html
👍4
Чашечка Java
Photo
Топ-6 бесплатных курсов Python для начинающих изучать программирование в 2023 году - Лучшее из многого

Здравствуйте, ребята, если вы новичок и ищете лучшие бесплатные ресурсы по Python, чтобы начать свой путь в программировании, такие как книги и онлайн-курсы, то вы пришли по адресу. Ранее я уже рассказывал о нескольких бесплатных книгах по программированию на Python и некоторых лучших курсах по изучению Python, которые не были бесплатными. Некоторые из моих читателей попросили меня рассказать о бесплатных онлайн-курсах по изучению Python, и в этом был смысл. Мне лично нравится начинать с бесплатных ресурсов, и сегодня я расскажу о нескольких отличных курсах по программированию на Python,которые абсолютно БЕСПЛАТНЫ. Вы можете изучать Python на этих онлайн-курсах в удобном для вас темпе, в удобное для вас время и в удобном для вас месте, чтобы изучить Python в 2023 году. Это отличное преимущество онлайн-обучения, гибкость, которую оно обеспечивает, просто впечатляет.

Вопросы и учебные пособия для собеседования по Java

Read: http://www.java67.com/2018/02/5-free-python-online-courses-for-beginners.html
Чашечка Java
Photo
Топ-5 курсов по фреймворкам Next.js и React.js, которые нужно изучить в 2023 году - Best of Lot [UPDATED]

Если вы используете JavaScript и React или следите за новостями веб-разработки, то, возможно, знаете о Next.js, популярном фреймворке React, который помогает в рендеринге на стороне сервера, что улучшает пользовательские впечатления от времени загрузки страницы. Использование рендеринга на стороне сервера также дает преимущество в SEO: сайт становится более легко индексируемым и "ползающим". Next.jsisназывают следующей большой вещью в мире веб-разработки, и 2023 год может стать хорошим временем для изучения Next.js. Если вы хотите изучить Next.js и ищете отличные ресурсы, такие как книги, учебники, курсы и руководства, то вы пришли по адресу. В прошлом я уже рассказывал о бесплатными курсами по Reactи книгах для начинающих, а в этой статье я расскажу о некоторых из лучших онлайн-курсов по изучению Next.js с нуля.


Вопросы и учебные пособия для собеседования по Java

Read: http://www.java67.com/2020/07/top-5-courses-to-learn-nextjs-in-2020.html
10 вещей, которые веб-разработчики должны узнать в 2023 году [UPDATED]

Здравствуйте, ребята, если вы хотите стать веб-разработчиком (как фронтенд-, так и фулл-стек-разработчиком) и задаетесь вопросом, какие навыки вам следует изучить, то вы пришли по адресу. В прошлом я уже рассказывал о бесплатных курсах по веб-разработке и" Полной дорожной карте веб-разработчика" (The Complete Web Developer RoadMap), которые давали подробный обзор навыков фронтенда и бэкенда, а сегодня я собираюсь перечислить самые необходимые навыки веб-разработки для программистов и разработчиков. Это абсолютно необходимые навыки для веб-разработчика, которые не только помогут вам найти работу фронтенд-разработчика, но и помогут вам стать разработчиком полного стека в долгосрочной перспективе.
Вопросы и учебные пособия для собеседования по Java

Read: http://www.java67.com/2020/10/best-frontend-skills-web-developer.html
Как преобразовать строку в дату в Java с помощью JodaTime Пример

В этом учебном пособии по Java мы научимся разбирать строку с датой с помощью библиотеки Joda-Time. Например, мы преобразуем строку с датой "04-12-2014" в объект java.util.Date, который представляет эту дату. До появления в Java 8 нового API даты и времени Joda была единственным надежным, безопасным и простым способом разобраться с тонкостями даты и времени в Java. Собственный интерфейс даты и времени в Java был не так уж и хорош, начиная с JDK 1.1, где java.util.Date стал мутабельным объектом, и до появления Calendar в Java 1.2. Это одна из наиболее критикуемых в сообществах особенностей Java, наряду с проверяемыми исключениями и клонированием объектов.

Вопросы и учебные пособия для собеседования по Java

Read: http://www.java67.com/2015/04/how-to-parse-string-to-date-in-java.html
Как сравнивать строковые объекты в Java [Примерное руководство]

String - это специальный класс в Java, так же как и сравнение String. Когда я говорю о сравнении строковых переменных, я имею в виду либо сравнение двух строковых объектов, чтобы проверить, одинаковы ли они, т.е. содержат ли они одинаковые символы, либо сравнение их в алфавитном порядке, чтобы проверить, какой из них стоит на первом или втором месте. В этой статье мы расскажем о правильном способе сравнения String-переменных, но что такое неправильный способ? Неправильный способ - это сравнение String с помощью оператора ==. Это одна из областей, в которой практически каждый Java-программист иногда допускал ошибки, сравнивая две String-переменные с помощью оператора ==.

Вопросы и учебные пособия для собеседования по Java

Read: http://www.java67.com/2014/12/right-way-to-compare-string-in-java.html
👍1
2 способа вывода пользовательского строкового значения Java Enum

Все мы знаем, насколько мощным является тип перечисления в Java, и одним из главных достоинств перечисления является то, что оно может реализовывать интерфейс, иметь переменную экземпляра, а также переопределять любой метод внутри экземпляра перечисления. В программах на Java нам часто приходится преобразовывать Enum к типу String, иногда просто для печати значений в файл журнала, а иногда для сохранения журнала в базе данных. По умолчанию при выводе константы перечисления печатается ее буквенное значение, например, если имя экземпляра перечисления RED, то будет выведено RED. Это же значение возвращается методом name() класса java.lang.Enum. Однако бывают ситуации, когда дляконстанты перечисления требуется задать собственное строковое значение.

Вопросы и задания для собеседования по Java

Read: http://www.java67.com/2014/12/2-ways-to-print-custom-string-value-of.html
Топ-5 курсов для изучения стека MERN в 2023 году - (MongoDB, Express.js, React.js и Node.js) Лучшие из лотов

В последние годы популярность разработки стека MERN значительно возросла. Стек MERN является одним из двух популярных стеков JavaScript, наряду со стеком Стек MEANи используется для разработки одностраничных динамических веб-приложений.

АббревиатураMERN расшифровывается как MongoDB, Express.js, React.js и Node.js.

* MongoDB - популярная база данных NoSQL. Хранит данные в формате JSON.
* Express.js: Гибкий и минимальный веб-фреймворк для Node.js.
* React.js: Библиотека JavaScript, используемая для создания пользовательских интерфейсов.
* Node.js: Среда выполнения, используемая для выполнения JavaScript вне браузера.


Вопросы и учебные пособия для собеседования по Java

Read: http://www.java67.com/2020/06/top-5-courses-to-learn-mern-stack-for-web-development.html
👍1
Микросервисы в банке: на чем их лучше писать? Java/Kotlin, а может Go?

В июле в офисе РСХБ-Интех (технологической дочки Россельхозбанка) состоялся бесплатный митап для Java-разработчиков — RSHB Backend Dev Meetup. Обсудили Kotlin, Go, маппинг и разные аспекты бэкэнд-разработки. В числе докладчиков выступал Иван Кочергин, руководитель центра собственной разработки РСХБ-Интех. Иван более 10 лет занимается разработкой на Java, последние три года — на Kotlin. В своем докладе он сравнил, на чем лучше писать микросервисы в банке: Java, Kotlin или Go. Делимся расшифровкой доклада. Запись всего митапа можно посмотреть на Rutube.


Читать: https://habr.com/ru/companies/rshb/articles/747898/?utm_campaign=747898
👍3
Работа с единицами системы СИ на Java

Библиотека по работе с единица системы СИ KotUniL, разработанная изначально на Kotlin, недавно сделана мультиплатформенной. В частности, она доступна теперь и на Java и JavaScript.


Читать: https://habr.com/ru/articles/748248/?utm_campaign=748248
1
Docker больше не нужен

В этой статье мы не будем подробно разбирать базовые функции Podman и отличия этого проекта от Docker.

Такой информации хватает в интернете.

Вместо этого, мы на конкретном примере (простое Java приложение) разберем как можно заменить Docker на Podman в конвейере CI/CD,
и какие это может принести дивиденды.


Читать: https://habr.com/ru/articles/748328/?utm_campaign=748328
1
Строим свой SSO. Часть 3: Redis, Swagger, Vue.js

Всем привет, мы продолжаем строить собственный SSO Server. Сегодня мы разберем подключение Redis и Swagger к нашему проекту. А также построим собственную, красивую форму аутнетификации, используя VueJS.


Читать: https://habr.com/ru/articles/748584/?utm_campaign=748584
SpringBoot и вебсокеты: едем в кластер

Всем привет! В этой статье я бы хотел затронуть тему горизонтального масштабирования SpringBoot-приложений, использующих вебсокеты. Основная особенность таких приложений - наличие состояния (state). Вебсокеты для работы используют постоянное TCP-соединение, собственно оно и является этим состоянием. А наличие состояния обычно вызывает проблемы при масштабировании.

Stateless-сервисам все равно на какой из множества инстансов попал очередной запрос, или кто именно вычитал сообщение из очереди. Но когда на серверной стороне возникает понятие клиентской сессии, все запросы, связанные с этим клиентом, должен обрабатывать один и тот же инстанс. Либо должна быть возможность передать эту сессию на другой инстанс. Сложность реализации этого требования варьируется от "добавить одну строчку в конфиг балансировщика" до "написать подсистему мониторинга топологии сервиса и роутинга запросов, сложность которой может превышать сложность основного приложения". К счастью, для решения стандартных задач, как правило, существуют стандартные инструменты. Давайте посмотрим, что за инструменты используются при масштабировании вебсокетных приложений, написанных на SpringBoot.


Читать: https://habr.com/ru/articles/743252/?utm_campaign=743252
Как на самом деле работает Java ClassLoader system? (с картинками) — Часть 1/3, Загрузка

Так ли на самом деле работает процесс загрузки классов, как его описывает Wikipedia и Baeldung? ClassNotFoundException — это откуда и чье? Какие виды загрузчиков классов актуальны в Java 20?

Объясняем подпроцесс загрузки, из системы Java ClassLoader, на приятных Excalidraw диаграммах, со ссылками на оригинальные источники.


Читать: https://habr.com/ru/articles/748758/?utm_campaign=748758
Работа с асинхронными операциями с помощью Kotlin Coroutines

Всем привет! Меня зовут Сергей, я Android-разработчик Студии Олега Чулакова на проектах Сбера. Недавно я написал статью Многопоточность в мобильной разработке. В ней был затронут один из наиболее популярных инструментов для работы с асинхронными операциями — Kotlin Coroutines.

Сегодня я хочу углубиться в Kotlin Coroutines и разобрать их основные компоненты. Мы рассмотрим Kotlin Coroutines, предполагая, что у вас уже есть базовое понимание языка Kotlin и некоторый опыт разработки Android-приложений. Мы изучим основные концепции Kotlin Coroutines, способы работы с асинхронными операциями, управление потоком выполнения, обработку ошибок и исключений, а также многое другое.

Моя цель — помочь вам овладеть Kotlin Coroutines и научиться использовать их для упрощения и оптимизации вашего кода, обеспечения более гладкого пользовательского опыта и более эффективного управления асинхронными операциями. Приятного прочтения, мы начинаем!


Читать: https://habr.com/ru/articles/747858/?utm_campaign=747858
Добавляем поддержку пользовательского языка в IntelliJ с помощью ANTLR

В этой статье я не буду описывать как создать плагин для IntelliJ с поддержкой %lang_name% с нуля. Кроме официальной документации и туториала от JetBrains в сети есть множество статей и примеров. На Хабре тоже есть пара весьма подробных статей от @pyltsinm. Фокус будет на разработке плагина с использованием ANTLR и моём опыте в этом нелёгком деле.

Примером в этой статье будет WebCalm - плагин для IntelliJ с поддержкой JavaScript и CSS, который я сделал с помощью ANTLR.


Читать: https://habr.com/ru/articles/748622/?utm_campaign=748622
Особенности разработки автотестов различными инструментами, а также статистика по использованию

Попробуем разобраться в автоматизации тестирования ПО, сделаем обзор сервисов для автоматического тестирования, выясним, какой язык программирования лучше подходит для QA Automation. Вся информация основана в том числе на реальных событиях и моём реальном опыте.


Читать: https://habr.com/ru/articles/749322/?utm_campaign=749322