
Aleh
20.04.2017
13:10:05
вопрос "сколько у тебя денег?" все понимают вполне конкретно

Sergey
20.04.2017
13:10:38
думаю тут есть фронтэнды и фулстеки. такой вопрос. что у фронтов спрашивают на собесах?

f4rt~
20.04.2017
13:10:46

Google

f4rt~
20.04.2017
13:10:47
:D

Ilia
20.04.2017
13:10:47

Oleg
20.04.2017
13:10:49
Тоже вопрос:
1) Есть монго и туда пишутся логи по типу
2) Нужно это все отображать и сделать поиск по полям надо что-то типа конфигуратора для отображения фронта
т е массив ключей по которым идет поиск и массив ключей по которым идет отображение
Как это все в классы праильно одеть
Поидее получается что-то типа фабрики

Aleh
20.04.2017
13:11:57

da horsie
20.04.2017
14:09:44
Cash это именно наличные.

Sergey
20.04.2017
15:06:48
самый нормальный вариант
но не отражает что баланс должен быть больше нуля

f4rt~
20.04.2017
15:16:15

Sergey
20.04.2017
16:00:27

Sergei
20.04.2017
19:21:52
Сделай Money как value object, и кошелёк Wallet который будет аггрегировать обьекты Money, потом спросишь у кошелька есть ли у него деньги или нет.

Google

Sergei
20.04.2017
19:22:23
т.к. в реальной жизни нет купюры номиналом 0

Aleh
20.04.2017
19:24:45
это решение какой-то другой задачи
тут суть вполне простая, есть несколько сервисов, которые проводят оплату и им надо передавать сумму денег строго больше 0, для этого неплохо бы тип соответствующий завести и заворачивать деньги в это

Sergey
20.04.2017
19:25:55
и пусто в кошельке

Aleh
20.04.2017
19:26:08
есть и отрицательный, если ты кому-то должен, это вполне норм ситуация
ну как, не для тебя конечно)

Sergey
20.04.2017
19:26:26
PositiveAmount
вполне норм
я было сомневался поскольку у нуля знака нет но именно это с точки зрения семантики дает право говорить что "положительное это больше нуля"

Sergei
20.04.2017
19:28:19

Aleh
20.04.2017
19:29:31
объект PositiveAmount можно получить из объекта Money, я это имел ввиду

Sergei
20.04.2017
19:33:19

Aleh
20.04.2017
19:33:52
так, окей, и?
я хочу выразить контракт максимально в интерфейсе

Sergei
20.04.2017
19:49:16

Aleh
20.04.2017
19:49:26
?
пока не понял

Sergei
20.04.2017
19:50:05
взять деньги, положить деньги, взять кредит и т.д.

Google

Sergei
20.04.2017
19:50:19
невозможность взять кредит если у тебя определённый отрицательный баланс
Т.е. UserBalance или UserAccount и еще Money это две отдельные сущности.

Aleh
20.04.2017
19:51:32
ну Money это vo скорее всего)
в любом случае не понимаю, причем здесь user

Sergei
20.04.2017
19:52:12

Aleh
20.04.2017
19:52:28
ну в моем языке, я те исключения, что есть отбрасываю и не использую

Sergei
20.04.2017
19:52:58

Aleh
20.04.2017
19:53:22
есть грубо говоря такой интерфейс
interface CardPayment {
pay(amount: PositiveAmount, cardDetails: CardDetails): void
}
чем ты предлагаешь его заменить?

Sergei
20.04.2017
19:55:19
Ну для начала позитивАмаунт заменить на Money

Aleh
20.04.2017
19:55:34
ну тогда проверки придется в каждую реализацию пихать
и они будут уже невыраженными в интерфейсе

Sergei
20.04.2017
19:57:06
потом это как бы действие, которое происходит, это можно заменить на pay() метод который будет у обьекта Сard
а проверки можно делать где то в одном месте

Aleh
20.04.2017
19:57:46
карточка сама платить не умеет, нужен провайдер

Sergei
20.04.2017
19:58:08
пусть будет Provider

Aleh
20.04.2017
19:58:09
если хочешь, в имя интерфейса можно добавить CardPaymentProvider
и их может быть много: paypal, stripe, payoneer и прочие

Google

Sergei
20.04.2017
19:59:35
как вообще провайдер взаимодействует с картой в реальном мире, конкретно, какова предметная область?

Aleh
20.04.2017
19:59:51
провайдеру просто передаются данные карты и сумма для оплаты
соответственно в моем варианте PositiveAmount представляет сумму для оплаты, уже точно больше нуля и париться об этом в реализациях не надо, а Card данные карточки опять же уже точно правильные с известными платежными системами, проверками срока действия и т.д.

Sergei
20.04.2017
20:05:47
Вроде бы звучит нормально
но вообще, что ты моделируешь, сначала нужен был баланс и деньги, теперь провайдер.
нужна общая картина

Aleh
20.04.2017
20:06:30

Sergei
20.04.2017
20:06:42
И провайдер вроде бы должен знать про карту, и как это отразить

Admin
ERROR: S client not available

Aleh
20.04.2017
20:06:46

Sergei
20.04.2017
20:08:35
Назови Amount

Aleh
20.04.2017
20:08:42

Sergei
20.04.2017
20:08:59
сумма не может быть отрицательной

Aleh
20.04.2017
20:09:19
-1 + -2
изи

Sergei
20.04.2017
20:09:48
это просто числа
а мы говорим о деньгах

Aleh
20.04.2017
20:09:59
new sum(-1, -2)

Google

Sergei
20.04.2017
20:10:13
class Money

Aleh
20.04.2017
20:10:21
сумма по счетам отрицательная может быть
и она также представляется объектом класса денег
и нулевая может быть

Sergei
20.04.2017
20:10:48
не обьектом а их отсутствием

Aleh
20.04.2017
20:10:59
не понял

Sergei
20.04.2017
20:11:54
представь какую то яму которую тебе нужно заполнить кирпичами, ты можешь вынимать кирпичи из неё и делать глубину этой ямы ниже уровня земли, можешь набросать так много кирпичей что сделаешь на месте этой ямы гору кирпичей.
при том у тебя нет нулевого и отрицательного кирпича, их не существует

Aleh
20.04.2017
20:12:42
на прошлой неделе один господин тоже приводил какие-то аналогии
в итоге диалог у нас совсем не пошел
короче аналогии не оч затея

Sergei
20.04.2017
20:13:23
абстрактное мышление же

Aleh
20.04.2017
20:13:26

Sergei
20.04.2017
20:13:41
причем баланс к деньгам?

Max
20.04.2017
20:14:01

Aleh
20.04.2017
20:14:03
скорее даже в реальном мире, в чем выражается баланс счета?

Sergei
20.04.2017
20:14:57

Aleh
20.04.2017
20:15:07
деньгами короч

Max
20.04.2017
20:15:27

Aleh
20.04.2017
20:15:50
о, пошли проф. термины в ход ))