Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.86K photos
38 videos
42 files
2.64K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
☕️ Цепочка обязанностей (Chain of responsibility) - Предназначен для организации в системе уровней ответственности.
☕️ Команда (Command) - Представляет действие. Объект команды заключает в себе само действие и его параметры.
☕️ Интерпретатор (Interpreter) - Решает часто встречающуюся, но подверженную изменениям, задачу.
☕️ Итератор (Iterator) - Представляет собой объект, позволяющий получить последовательный доступ к элементам объекта-агрегата без использования описаний каждого + __из объектов, входящих в состав агрегации.
☕️ Посредник (Mediator) - Обеспечивает взаимодействие множества объектов, формируя при этом слабую связанность и избавляя объекты от необходимости явно ссылаться друг на друга.
☕️ Хранитель (Memento) - Позволяет не нарушая инкапсуляцию зафиксировать и сохранить внутренние состояния объекта так, чтобы позднее восстановить его в этих состояниях.
☕️ Наблюдатель (Observer) - Определяет зависимость типа «один ко многим» между объектами таким образом, что при изменении состояния одного объекта все зависящие от него оповещаются об этом событии.
☕️ Состояние (State) - Используется в тех случаях, когда во время выполнения программы объект должен менять своё поведение в зависимости от своего состояния.
☕️ Стратегия (Strategy) - Предназначен для определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости.
☕️ Шаблонный метод (Template method) - Определяет основу алгоритма и позволяет наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом.
☕️ Посетитель (Visitor) - Описывает операцию, которая выполняется над объектами других классов. При изменении класса Visitor нет необходимости изменять обслуживаемые классы.
ОГО! Спасибо! Очень приятно. Если хотите, можете тоже поддержать нас пожертвованием в ВК: vk.com/proglib
#вопросы_с_собеседований
1. Как перебрать все ключи Map?
2. Как перебрать все значения Map?
#вакансия #java #lead #senior #финтех #удаленка #офис #москва
Позиция - техлид Java
З/П: до 250к
Формат работы: #fulltime, #удаленка #офис
Компания: WalletOne

Всем привет!
Меня зовут Александр - я руковожу проектным департаментом в WalletOne (финтех).
Сейчас у нас открыто новое международное платежное направление, под которые мы активно набираем команду и ищем Техлида Java, способного погрузиться в предметную область, в синхронизации с другими командами холдинга развивать общую микросервисную архитектуру компании и создавать новые сервисы, общие для всех проектов.

Что предстоит делать?
- проектировать и разрабатывать новые сервисы и платформы с применением микросервисного подхода к архитектуре.
- участвовать в формировании единой архитектуры холдинга. Предлагать свое видение.
- организовать работу команды для проектирования и реализации задач
- планировать и оценивать сроки выполнения и трудоемкость технических задач
- выстраивать эффективный процесс разработки внутри команды и отвечать за ее взаимодействие с другими подразделениями
- делать код-ревью и контролировать качество кода – своего и коллег.

Что мы ожидаем?
- опыт разработки с использованием технологий: Java Spring Boot, Kotlin, ORM, REST-сервисы, unit testing, mocking, integration testing,
- навыки построения HA-приложений: RabbitMQ, ActiveMQ, MongoDB
- опыт работы с PostgreSQL
- опыт работы в качестве архитектора или ведущего разработчика с проектами, доведенными до production
- опыт проектирования микросервисной архитектуры приложений. Знание и применение паттернов проектирования.
- опыт разработки высоконагруженных и горизонтально масштабируемых приложений
- опыт многопоточного программирования
- опыт работы с Docker и инструментами оркестрации

Подробности готов обсудить в личке.

Контакты:
Телеграм: @alexkorneev

➡️ Подробности - https://proglib.io/vacancies/tehlid-java-wallet-one-2020-08-13
Библиотека джависта | Java, Spring, Maven, Hibernate pinned «#вакансия #java #lead #senior #финтех #удаленка #офис #москва Позиция - техлид Java З/П: до 250к Формат работы: #fulltime, #удаленка #офис Компания: WalletOne Всем привет! Меня зовут Александр - я руковожу проектным департаментом в WalletOne (финтех). …»
Библиотека джависта | Java, Spring, Maven, Hibernate via @CommentsBot
#вопросы_с_собеседований 1. Как перебрать все ключи Map? 2. Как перебрать все значения Map?
1. Использовать метод keySet(), который возвращает множество Set<K> ключей.

2. Использовать метод values(), который возвращает коллекцию Collection<V> значений.
Статические методы интерфейса похожи на методы по умолчанию, за исключением того, что для них отсутствует возможность переопределения в классах, реализующих интерфейс.

☕️ Статические методы в интерфейсе являются частью интерфейса без возможности использовать их для объектов класса реализации;
☕️ Методы класса java.lang.Object нельзя переопределить как статические;
☕️ Статические методы в интерфейсе используются для обеспечения вспомогательных методов, например, проверки на null, сортировки коллекций и т.д.
#вопросы_с_собеседований
Какой оператор позволяет принудительно выбросить исключение?
Это оператор throw:

throw new Exception();
Метод yield() служит причиной того, что поток переходит из состояния работающий (running) в состояние работоспособный (runnable), давая возможность другим потокам активизироваться. Но следующий выбранный для запуска поток может и не быть другим.

Метод sleep() вызывает засыпание текущего потока на заданное время, состояние изменяется с работающий (running) на ожидающий (waiting).
#вопросы_с_собеседований
Чем интеграционное тестирование отличается от модульного?
С технологической точки зрения интеграционное тестирование является количественным развитием модульного, поскольку так же, как и модульное тестирование, оперирует интерфейсами модулей и подсистем и требует создания тестового окружения, включая заглушки на месте отсутствующих модулей. Основная разница между модульным и интеграционным тестированием состоит в целях, то есть в типах обнаруживаемых дефектов, которые, в свою очередь, определяют стратегию выбора входных данных и методов анализа.

Допустим, есть класс, который при определенных условиях взаимодействует с web-сервисом через зависимый объект. И нам надо проверить, что определенный метод зависимого объекта действительно вызывается. Если в качестве зависимого класса передать:
☕️ реальный класс, работающий с web-сервисом, то это будет интеграционное тестирование.
☕️ заглушку, то это будет тестирование состояния.
☕️ шпиона, а в конце теста проверить, что определенный метод зависимого объекта действительно был вызван, то это будет тест взаимодействия.
Бесплатный webinar по docker'у. Обсудим:
- как задизайнить и развернуть в докере систему из БД и java микросервисов
- какие вопросы могут задать по докеру на собеседовании
- как упомянуть docker во время собеседования и получить оффер не отходя от ZOOM 😉

Присоединяйся
SQL, Structured query language («язык структурированных запросов») — формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД).
☕️ ListIterator расширяет интерфейс Iterator;
☕️ ListIterator может быть использован только для перебора элементов коллекции List;
☕️ Iterator позволяет перебирать элементы только в одном направлении при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous();
☕️ ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next().
☕️ При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.
Если вам нравится делиться знаниями, мы принесли приятную новость – прямо сейчас Geekbrains ищет 30 преподавателей, авторов и ревьюеров:

👨‍🏫 Преподаватель ведет онлайн-занятия по любимым темам и видит, как растут новые кадры.
👨‍🎤 Автор разрабатывает собственную программу и делится знаниями с новичками.
🕵️ Ревьюер дает обратную связь на практические работы студентов и помогает освоить лучшие практики.

Не страшно, если нет опыта в образовательной сфере – компания ищет профессионалов в своей отрасли, а остальному научат. Можно даже совмещать преподавание с работой.

Станьте экспертом в GeekBrains и помогите тысячам людей найти себя в IT 👉 https://proglib.io/w/55057cc5