Блог Java | OTUS
Посты
Комментарии в коде: почему, зачем и как?

JavaDeep_20_06_Site.png

Давайте сегодня попробуем разобраться: когда комментарии полезны, когда вредны, когда нужно вводить правила написания комментариев и когда вместо комментария лучше использовать аннотации.

Ошибка порядка наследования в Liskov Substitution

JavaDeep_19.06_Site.png

Согласно тесту Тьюринга, если что-то плавает как утка, крякает как утка и летает как утка, то это что-то — утка. Но что делать, если при этом она не работает без батареек?

Если в вашем приложении объект пришёл к вам по референсу на базовый класс, но ведёт себя не так, как вы ждёте от базового класса, то у вас в приложении нарушен один из принципов SOLID — Liskov Substitution. Ошибка частая и не сразу заметная.

Давно ли вы работали с числами?

JavaDeep18.05_Site.png

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

Аннотация @Autowired: что к чему?

Spring_Deep_13.06_Site_NEW.png

Решил рассказать немного про аннотацию @Autowired. Принцип её работы очень прост.

Допустим у нас есть bean-зависимости:

@Configuration
public class Config {
    // тип бина - ServiceDependency, имя - dependency
    public ServiceDependency dependency() {
        return new ServiceDependencyImpl()
    }
}

Spring Context

SpringDeep_10.06_Site.png

Под словом «Spring» обычно подразумевают просто IoC-контейнер, помогающий структурировать Java-приложения. В действительности под словом «Spring» скрывается целый мир.

IoC-контейнер, это замечательный способ собрать приложение «по кусочкам» из разных компонентов. Spring же предоставляет удобные способы как написания данных «кусочков», так и объединения их в единое приложение. Например, у нас есть два класса.

Theories в JUnit

JavaDeep_07.06_Site.png

Часто случается, что в unit-тестировании выполняется серия тестов, которые отличаются только входными значениями и ожидаемыми результатами. Обычный @Test метод позволяет проверить поведение в одном конкретном сценарии. Что делать, если хочется протестировать некоторую функциональность на некотором множестве входных данных?

Spring Integration, EIP и Messaging

SpringDeep_06.06_Site.png

SPRING-1801-fefc46.jpg

Spring Integration – очень специфичный проект Spring. По своей сути он содержит в себе реализацию так называемых Enterprise Integration Patterns (EIP) и различные способы их настройки, включая свой собственный Java-DSL.

Чтобы разобраться, что такое Spring Integration и EIP, необходимо понять, какую проблему они решают.

Mockito: чем отличаются Mock и Spy?

JavaDeep_5.06_Site.png

Такой вопрос часто можно услышать на собеседовании, когда разговор заходит о unit-тестировании. Mockito позволяет создать объект-заглушку для интерфейса или класса. В случае Mock-объекта, единственное, что будут делать все методы такого объекта, если не определять их поведение, – возвращать значения по-умолчанию: void, default-ы для примитивов, пустые коллекции и null для всех остальных объектов.

Популярное
Сегодня тут пусто