Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
HustleCoder

Clean Coder

  • 1
    вклад
  • 29
    вопросов
  • 2
    ответа
  • 50%
    решений
Комментарии
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Как быстро и эффективно мокать реляционные БД для тестов?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Сергей Водаков, Это понятно, я про другое. Допустим, что тестируемая функция инсертит в БД новую запись. Как мне проверить, что она заинсертила то что нужно?
    Написано более двух лет назад
  • Как быстро и эффективно мокать реляционные БД для тестов?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    А как через мокито потом состояние проверить?
    Написано более двух лет назад
  • Что дает паттерн билдер по сравнению с обычными сеттерами?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Спасибо большое!
    Написано более двух лет назад
  • Что дает паттерн билдер по сравнению с обычными сеттерами?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Максим Федоров, но вообще, я уловил ваше идею. Сеттеров следует избегать, т.к. они нарушают инкапсуляцию, поэтому сложные объекты лучше создавать через билдер.
    Написано более двух лет назад
  • Что дает паттерн билдер по сравнению с обычными сеттерами?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Максим Федоров, ну пользователь же может менять свой возраст в уже созданном профиле. Где эту бизнес-логику (18+ и т.п.) прописывать тогда?
    Написано более двух лет назад
  • Что дает паттерн билдер по сравнению с обычными сеттерами?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Максим Федоров, ну вроде как сеттеры и нужны, чтобы делать какую-то бизнес-логику, иначе смысла в них вправду нет. Например:

    public void setAge(int age) {
    if (age > 0) {
    this.age = age;
    } else {
    print("Возраст не может быть отрицательным!"); }
    }
    Написано более двух лет назад
  • Что дает паттерн билдер по сравнению с обычными сеттерами?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Евгений Шатунов, спасибо, что такое инвариант я понял, но с моим вопросом пока связать никак не могу. Единственное, о чем я пока сделал вывод, что с помощью билдера можно сделать иммутабельный объект, а для использования сеттеров нужен мутабельный.
    Написано более двух лет назад
  • Что дает паттерн билдер по сравнению с обычными сеттерами?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Saboteur, Тогда в каких ситуациях удобнее использовать билдер вместо сеттеров? Извините за настойчивость, просто хочу разобраться.
    Написано более двух лет назад
  • Что дает паттерн билдер по сравнению с обычными сеттерами?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Евгений Шатунов, как я понял из вики, это свойство, которое должно сохраняться.
    Написано более двух лет назад
  • Что дает паттерн билдер по сравнению с обычными сеттерами?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Так свойства могут быть и не public, и сеттеры могут содержать любую бизнес-логику. В чем преимущество тогда?
    Написано более двух лет назад
  • Что дает паттерн билдер по сравнению с обычными сеттерами?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Евгений Шатунов, или вы имеете ввиду, что в первом случае мы можем объявить object как final, а во втором уже не можем?
    Написано более двух лет назад
  • Что дает паттерн билдер по сравнению с обычными сеттерами?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Евгений Шатунов, только то, что в википедии написано. Но как это относится к билдеру?
    Написано более двух лет назад
  • Какой выбрать проект Java core?

    HustleCoder
    Clean Coder @HustleCoder
    Araya, я изначально предложил сделать веб-интерфейс. Но если нужно строго в пределах Java Core, то я вижу только 2 варианта - либо консоль, либо Swing. Можете предложить лучшее решение?
    Написано более двух лет назад
  • Какой выбрать проект Java core?

    HustleCoder
    Clean Coder @HustleCoder
    Araya, аргументы?
    Написано более двух лет назад
  • Какой выбрать проект Java core?

    HustleCoder
    Clean Coder @HustleCoder
    Сергей Горностаев, тогда на Swing.
    Написано более двух лет назад
  • Как писать тесты на клиент-серверное соединение (сокеты)?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    ну как, чтобы с клиента слать запросы не сервер и сверять ответы
    Написано более двух лет назад
  • Как писать тесты на клиент-серверное соединение (сокеты)?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    это скорее интеграционный тест
    Написано более двух лет назад
  • Почему неправильно работает этот код?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Спасибо, по ссылке есть очень удачная иллюстрация, которая все объясняет.
    Написано более двух лет назад
  • Почему неправильно работает этот код?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Денис Загаевский, да, я понимаю это. Я также знаю, что если мы передаем в функцию переменную ссылочного типа, то мы получаем хоть и копию, но копию ссылки на тот же передаваемый объект, следовательно, можем менять его состояние.

    Моя проблема, судя по всему, заключалась в том, что я воспринимал выражение вида a = 9, как изменение состояния переданного объекта, а, по факту, это есть создание нового инстанса в куче и перевод локальной ссылки на него.
    Написано более двух лет назад
  • Почему неправильно работает этот код?

    HustleCoder
    Clean Coder @HustleCoder Автор вопроса
    Я не изменяю внутренности, я просто перевожу ссылку с одной объекта на другой. Например, вот так работает
    public class Main {    
    	public static void main(String[] args) {
    	    Integer a = 10;
    	    a = 9;
    	    System.out.println(a); // => 9
    	}
    }


    а вот так почему-то нет

    public class Main
    {
        public static void change(Integer a) {
            a = 9;
        }
        
    	public static void main(String[] args) {
    	    Integer a = 10;
    	    change(a);
    	    System.out.println(a); // => 10
    	}
    }


    Не могу понять, в чем разница, и почему второй вариант не работает.
    Написано более двух лет назад
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • Yorido Satoshi
    • 13 ответов
    • 0 вопросов
  • Evgenii
    • 11 ответов
    • 0 вопросов
  • Enokin
    Владислав
    • 8 ответов
    • 0 вопросов
  • pantsarny
    • 7 ответов
    • 0 вопросов
  • Drno
    • 7 ответов
    • 0 вопросов
  • Vindicar
    Vindicar
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

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