Как называется шаблон проектирования, у которого есть внешний объект-строитель, последовательно задающий параметры сложного объекта?
Anonymous Quiz
73%
Builder
22%
Factory Method
3%
Prototype
1%
Mediator
0%
Посмотреть ответ
✍3👍3🎉2
Архитектура приложений простыми словами. Часть 3. Отличие Микросервисов от Монолита.
Сегодня давайте сравним два популярных подхода к разработке приложений: микросервисы и монолит.
Монолит:
🔹 Один блок
Весь код, базы данных и компоненты находятся в одном приложении.
🔹 Простота начала
Создание и развертывание монолита обычно проще.
🔹 Единое развертывание
Приложение разворачивается целиком, что может быть проще для управления.
🔹 Обслуживание
Если один единый монолитный сервис сломался, то все приложение не будет работать до исправления проблемы.
Микросервисы:
🔹 Множество компонентов
Приложение разбито на небольшие независимые микросервисы.
🔹 Масштабируемость
Микросервисы могут быть масштабированы независимо.
🔹 Гибкость
Возможность использовать разные технологии для разных микросервисов.
🔹 Обслуживание
Если сломался один или даже несколько отдельных сервисов, то приложение может продолжать свою работу в целом.
Как выбрать подход?
🔹 Монолит, если вы только начинаете и хотите простоту разработки и развертывания.
🔹 Микросервисы, если проект сложный, требует гибкости и быстрого масштабирования.
Важно подбирать подход в зависимости от целей, размера проекта и команды разработчиков. Оба варианта имеют свои плюсы и минусы. Помните, в разработке нет одного "правильного" пути – нужно выбирать наиболее подходящий для конкретной ситуации!
✅ JavaStart. Подписаться
Сегодня давайте сравним два популярных подхода к разработке приложений: микросервисы и монолит.
Монолит:
🔹 Один блок
Весь код, базы данных и компоненты находятся в одном приложении.
🔹 Простота начала
Создание и развертывание монолита обычно проще.
🔹 Единое развертывание
Приложение разворачивается целиком, что может быть проще для управления.
🔹 Обслуживание
Если один единый монолитный сервис сломался, то все приложение не будет работать до исправления проблемы.
Микросервисы:
🔹 Множество компонентов
Приложение разбито на небольшие независимые микросервисы.
🔹 Масштабируемость
Микросервисы могут быть масштабированы независимо.
🔹 Гибкость
Возможность использовать разные технологии для разных микросервисов.
🔹 Обслуживание
Если сломался один или даже несколько отдельных сервисов, то приложение может продолжать свою работу в целом.
Как выбрать подход?
🔹 Монолит, если вы только начинаете и хотите простоту разработки и развертывания.
🔹 Микросервисы, если проект сложный, требует гибкости и быстрого масштабирования.
Важно подбирать подход в зависимости от целей, размера проекта и команды разработчиков. Оба варианта имеют свои плюсы и минусы. Помните, в разработке нет одного "правильного" пути – нужно выбирать наиболее подходящий для конкретной ситуации!
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3👍3👨💻2
Pattern matching для instanceof (Java 16+): что делает запись if (obj instanceof String s)?
Anonymous Quiz
29%
Проверяет тип, но не даёт обратиться как к String
4%
Выполняет каст только внутри блока else
51%
Проверяет тип и автоматически приводит obj к s
2%
Работает только для final классов
15%
Посмотреть ответ
✍3👍3🎉1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4🤓4💯2
IS-A отношения в Java простыми словами. Часть 1.
IS-A отношения в Java – это способ показать, что конкретный объект является типом другого объекта.
Давайте посмотрим, как ключевое слово extends используется для достижения наследования в Java.
public class Animal {
}
public class Mammal extends Animal {
}
public class Reptile extends Animal {
}
public class Dog extends Mammal {
}
На основе приведенного на Картинке примера, в объектно-ориентированных терминах верно следующее:
Класс Животное – суперкласс.
Млекопитающее – подкласс Животного.
Рептилия и Млекопитающее – подклассы Животного.
Собака является подклассом Млекопитающего и Животного.
✅ JavaStart. Подписаться
IS-A отношения в Java – это способ показать, что конкретный объект является типом другого объекта.
Давайте посмотрим, как ключевое слово extends используется для достижения наследования в Java.
public class Animal {
}
public class Mammal extends Animal {
}
public class Reptile extends Animal {
}
public class Dog extends Mammal {
}
На основе приведенного на Картинке примера, в объектно-ориентированных терминах верно следующее:
Класс Животное – суперкласс.
Млекопитающее – подкласс Животного.
Рептилия и Млекопитающее – подклассы Животного.
Собака является подклассом Млекопитающего и Животного.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3👍3👨💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5💯4👍1
Как из List<List<Integer>> получить плоский List<Integer> с помощью Stream API?
Anonymous Quiz
51%
flatMap(List::stream)
21%
map(List::stream)
4%
reduce(Integer::sum)
12%
collect(Collectors.toMap(...))
13%
Посмотреть ответ
👍3✍2🎉2👨💻1
Какой уровень изоляции транзакций предотвращает “phantom reads”?
Anonymous Quiz
19%
READ COMMITTED
24%
REPEATABLE READ
39%
SERIALIZABLE
11%
READ UNCOMMITTED
8%
Посмотреть ответ
✍3👍3🎉2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😁3💯3✍2
Please open Telegram to view this post
VIEW IN TELEGRAM
Что напечатает код выше?
Anonymous Quiz
22%
true true true
13%
true true false
4%
true false false
13%
false false false
31%
true false true
4%
Exception будет
12%
Посмотреть ответ
✍4👍2🎉1
🔍 Ответ на задачу про сравнение строк в Java
Давайте разберемся, что напечатает приведённый код!
Этот код выводит на экран:
true — В первом сравнении (a == b), оба операнда являются строковыми литералами, и компилятор оптимизирует их, так что они указывают на один и тот же объект в строковом пуле.
false — Во втором сравнении (a == d), d создается путем конкатенации на этапе выполнения, из-за чего она не будет указывать на тот же объект в строковом пуле, что и a.
true — В третьем сравнении (a.equals(d)), метод equals сравнивает содержимое строк, а не их ссылки, потому этот результат будет true, так как содержимое одинаково.
Интересно, правда? 😄 Не забудьте, что использование оператора == для сравнения строк может привести к неожиданным результатам. Для проверки эквивалентности строк на уровне содержимого всегда используйте equals. ✅
✅ JavaStart. Подписаться
Давайте разберемся, что напечатает приведённый код!
String a = "ab";
String b = "a" + "b";
String c = "a";
String d = c + "b";
System.out.println(a == b);
System.out.println(a == d);
System.out.println(a.equals(d));
Этот код выводит на экран:
true — В первом сравнении (a == b), оба операнда являются строковыми литералами, и компилятор оптимизирует их, так что они указывают на один и тот же объект в строковом пуле.
false — Во втором сравнении (a == d), d создается путем конкатенации на этапе выполнения, из-за чего она не будет указывать на тот же объект в строковом пуле, что и a.
true — В третьем сравнении (a.equals(d)), метод equals сравнивает содержимое строк, а не их ссылки, потому этот результат будет true, так как содержимое одинаково.
Интересно, правда? 😄 Не забудьте, что использование оператора == для сравнения строк может привести к неожиданным результатам. Для проверки эквивалентности строк на уровне содержимого всегда используйте equals. ✅
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6✍2👨💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4💯4👍1