Size: a a a

Software Design/Architecture/Zen

2021 December 01

k

knopkod4v in Software Design/Architecture/Zen
то есть время стоит исключить, когда смотришь насколько кохизив объект?
Я к этому склоняюсь 🤔
источник

ET

Eugene Trunov in Software Design/Architecture/Zen
В итоге все эти «маленькие самодостаточные штуки» неизбежно стекаются в те самые utils/handlers/common/core, и уже там их все и не любят )
источник

k

knopkod4v in Software Design/Architecture/Zen
Или просто на cohesion надо смотреть не только с точки зрения кода. Если связь между кусочками стейта объекта происходит не в коде, а в голове человека (который что-то знает про бизнес-логику), который смотрит на этот стейт - это тоже считается?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Ну у меня обычно если я хочу штуки типа даты обновления форсить они в инфраструктуре - типа метаданных
источник
2021 December 03

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
На кого рассчитаны подобные сообщения в русскоязычном чате?
источник

DP

Defragmented Panda in Software Design/Architecture/Zen
Они тратят карточку мобильную и им все равно во сколько чатов слать

Карточка все равно будет забанена. затраты компа на еще один запрос - миллионные доли бакса. Прибыль ожидаемая - центы. Выгодно. Вот и шлют везде где могут. Даже в русских чатиках есть некоторый % англоговорящих.
источник

GM

Gerr Mes in Software Design/Architecture/Zen
Чтобы как можно больше функций в предметной области были чистыми, если у тебя внутри функции "берём текущее время", функция не является чистой. Это не смертельно, но если есть хороший способ сделать функцию чистой это надо делать
источник

A

Alexander in Software Design/Architecture/Zen
Ну это он и говорит. Но мой вопрос в том насколько эта независимость от дейта нужна?
источник

МФ

Максим Федоров... in Software Design/Architecture/Zen
иногда имеет смысл, тут уже говорили про платежи

видел доклад Солнцева (автор Селенида), что ловили хейзенбаг тесты, которые иногда падали, а на время критичный функционал завязан...

конкретный случай был связан с тем, что убунта при апдейте версии обновила поставщика времени и как-то хитро переключалась (разница возникала в 3 секунды: платеж был позже операции или что-то вроде того)

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

GM

Gerr Mes in Software Design/Architecture/Zen
Как минимум тестить эту функцию будет просто, снижение когнитивный нагрузки всей кодовой базы. Представьте у вас 80% кодовой базы это чистые функции. Если дата время там реально нужны можно просто передать clock
источник

МФ

Максим Федоров... in Software Design/Architecture/Zen
ну да кстати, иногда это очень важно... все ваяют свои костыли с clock или берут что-то типа Карбона, где из коробки это есть (вроде как видел в упоминании фич)
источник

МФ

Максим Федоров... in Software Design/Architecture/Zen
потому что "сейчас" в тестах — очень относительная штука
источник

SP

Sergey Protko in Software Design/Architecture/Zen
время штука сложная, если ты можешь спроектировать систему так что бы она не полагалась на "текущее время" а скорее на таймстэмпы которые приходят снаружи у тебя будет куда больше возможностей по тестируемости и гибкости системы. Есть много разных идей вокруг этой темы.

В целом рекомендую почитать чего на тему functional core imperative shell
источник

SP

Sergey Protko in Software Design/Architecture/Zen
источник

SP

Sergey Protko in Software Design/Architecture/Zen
вот хорошее на эту тему
источник

F

Fagor in Software Design/Architecture/Zen
привязка к состояниям машинки типов, не самый лучший паттерн, но в тоже время лучший чем стандартные подходы. Но при хорошем architect вам не позволят мыслить без runtime. ограничиваясь состояниями, вы можете загнать систему в "яму", по простой причине - при множестве бизнес сущностей каждая миллисекунда может быть runtime состояния системы в целом.
источник

F

Fagor in Software Design/Architecture/Zen
простой пример: тик цены в сделках в биржевых системах
источник
2021 December 04

SP

Sergey Protko in Software Design/Architecture/Zen
Сложна, непонятно о какой яме идёт разговор
источник

F

Fagor in Software Design/Architecture/Zen
ааа, да есть в моем выражении такие проблемы, по сути вы получается что система существует, по ее snapshot в runtime, а не в runtime по ее uptime. Вот этот разрыв между snapshot и uptime и есть глубина ямы. В некоторых системах он ближе к единице (отношение слепка-snapshot отчета от запаздывания наполнения и все отлично, напримерd системах управленческого учета). А вот в "живых" типа систем обработки транзакций сделок 24/7 или систем производства он отличен от единицы, то есть меньшее ее, и начинаются я проблемы в оценке, и чем ближе к нулю, тем больше проблем.
источник

RL

Romka Los in Software Design/Architecture/Zen
Это вы так описали ГЭП в eventual consistency?
источник