-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


TDD vs не TDD

Пятница, 04 Сентября 2020 г. 15:16 + в цитатник
korvin:
Цитата Fester @
Все знают публичные поля класса Request (имя и тип), но никто не знает какие из этих публичных полей используются функцией submit

Все используются, именно поэтому Request является типом аргумента submit. Это её (submit) область определения.

Цитата Fester @
а, скажем, доступ к файловой системе нужно.

Конечно, ведь это внешний ресурс с побочными эффектами.

Цитата Fester @
Ты понимаешь, что вместо вызова некой функции (в данном случае canWithdraw) ты предлагаешь создать некое поле, которое должно заполняться гезультатом работы этой функции.

Ну тебе ж не нравилось, что я вызываю простую чистую функцию. Вот тебе альтернативное решение.

Цитата Fester @
При этом мало того, что функцию все равно придется вызывать (в продуктивном коде)

И что? Это дело этой функции, с точки зрения submit это просто bool.

Цитата Fester @
так еще у тебя и Request'e добавится куча полей.

Какая куча полей?

Цитата Fester @
Смотри свой собственный код, у тебя у Account есть как минимум две функции: hasSameOwnerAs и canWithdraw

И что? Если они будут внешние, что принципиально изменится?

Ну вынеси их в статику
    class Account {
    public final ID id;
    public final Money balance;
    ...
    public static boolean haveSameOwners(Account a, Account b) { ... }
    public static boolean canWithdraw(Account a, Money amount) { ... }
    }

Что-то поменялось?

Цитата Fester @
Ясен хрен, что тут должна быть абстракция.

:facepalm: с хера ли? Тебе что, инъекцию абстракций сделали?

Цитата Fester @
Т.е. Request - это тоже нифига не plain data объект!

:facepalm: откуда такой глупый вывод?

Цитата Fester @
Это должен быть интерфейс типа

Нет, не должен.

Цитата Fester @
ingle Responsibility Principle ничего не говорит о том, что в классе должна быть одна функция.

Не говорит. Он говорит, что в классе не должно быть десяток каких-то функций, не имеющих отношения к классу.

https://forum.sources.ru/index.php?showtopic=419507&view=findpost&p=3838285

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку