Ilya
А ещё все объекты неявно наследуются от object!111
Hog
Ilya
Сам офигел, когда узнал.
Hog
Если все, тогда что получается - обжект наследуется сам от себя?!
Ilya
Хм.
Vladimir
Hog
Vladimir
а то)
Anatoly
Ayrat
Anatoly
а как если классы-наследники увидят?
Ayrat
так он же приватный?
Anatoly
https://sharplab.io/#v2:C4LgTgrgdgPgAgJgIwFgBQcDMACAhgIwGdgxcBjYbRbAYWwG91tnsAHMASwDddgBTWgAoAlAwC+TFlioJsAEWwhaDSSyk45gjlEodRjNGqNSkATi3CA3KqMTDLO3fTTqcJAHYV95i9kAxRWV6OzVEWQNjZh4wbAATbABebCg+AHdaADpNABYEKxtHdCA
Anatoly
хм, и правда
Anatoly
Roman
та нема защо)
Andrew
Andrew
Блять ну как так
Andrew
Как можно жить без yield! я не понимаю
Vasily
Без елды тяжко,да
Vladislav
https://github.com/dotnet/fsharp/issues/9153
Λ ll И K X
Shub
"раньше считалось, что бит неделим. но советские ученые..."
делаю тут кое-какие ревью, и наши ученые добавили новое слово в словарь энтерпрайз архитектуры: shared event streams. это когда у тебя ES, только в поток пишет кто угодно.
Shub
в результате стримы живут ВЕЧНО, как учение Маркса
Shub
еще наслаждаюсь современным пост-модерном
Shub
| Events.InventoryAdded e -> Inventory.Events.InventoryAdded e |> evolveInventory state
| Events.InventoryRemoved e -> Inventory.Events.InventoryRemoved e |> evolveInventory state
| Events.InventoryAdjusted e -> Inventory.Events.InventoryAdjusted e |> evolveInventory state
Shub
такое переосмысление тщеты всего сущего через айтишечку
Ayrat
Ayrat
Хотя это может лучше спринга на хмл
Shub
Вообще прекрасно. И никакого бойлерплейта
а теперь пройдите к следющей экспозиции под названием "НАДЕЖНОСТЬ"
stream.QueryEx(fun c ->
if c.Version = -1L
then failwithf "CartId=%s|Cart not found." <| CartId.toString cartId
Vladislav
Vasiliy
😂😂😂
Vasiliy
https://www.youtube.com/watch?v=_UkWcXizRwU немного внезапно, но какой классный трейлер. До сих пор прям мурашки от роботов
Ilya
Shub
А можно для глупых объяснить, в чём тут проблема?
намеренно роняем сервис (прям полностью, выкидывая неперехватываемое исключение) если не найдет экземпляр модели. насколько мне известно, в геймерских кругах это обозначается термином rage quit
Ilya
А, я почему-то подумал, что это норм в той ситуации, с которой код работает. Мало ли что. Ну ок.
Hog
А не. Лоханулся
Shub
что норм? уронить сервис, если кто-то удалил запись в БД?
Hog
А он не перезапустится? :)
Ilya
Ну откуда ж я знаю, что тут бд? Я вижу стрим и какую-то квери. Не факт, что там бд.
Shub
Shub
Ilya
Ну ок, убедил. Можно было тихо то же самое сделать.
Shub
мам, можно мне unit tests? нет, unit tests есть дома.
unit tests дома:
let [<Fact>] ``folding multiple events from initial state returns the latest state`` () =
let foldResult = Fold.fold Fold.initial [TestData.fcCreatedEvent; TestData.fcRenamedEvent; TestData.fcAddressChangedEvent1; TestData.fcContactChangedEvent1; TestData.fcAddressChangedEvent2; TestData.fcContactChangedEvent2]
let targetState =
{
name = Some TestData.fcName2
address = Some TestData.fcAddressChanged2.address
contact = Some TestData.fcContactChanged2.contact
} : Fold.State
test <@ targetState = foldResult @>
Shub
пОкРыЛ тЕсТаМи
Vladislav
Ayrat
Ayrat
ну то есть итоговый стейт будет сфолжен из многих
Ayrat
его одного недостаточно, но тест ок
Shub
с тем же успехом можно тестить, что NewtonsoftJson выдает валидные жсоны
Ayrat
Ayrat
тестить либы - провальное занятие да
Vladislav
А че за либа
Shub
Ayrat
но я ж ниибу, либа это или нет
Shub
просто греем проц
Shub
см. код выше - что пришло, то и пихаем. можно прислать условное событие EntityCreated посреди стрима - и оно обработается без вопросов
Ayrat
тяжело вам.
Ayrat
или может быть только тебе
Ayrat
а всем остальным ок
Shub
ну я могу поверить, что где-то там далеко, на границе атмосферы, есть юзкейс правильного ES. но в нашей репе - это мрачная, бессмысленная хуйня
Shub
вообще, привлекает в этом всем не сам код, сколько позиция людей, которые этот код пишут
Shub
это я щас ревьюил код людей, числящихся условно-нормальными в моем списке
Shub
очередное напоминание, что коллегам априори нельзя доверять, и даже наоборот - к ним следует относиться как к людям с биполярным расстройством или даже с шизоидным расщеплением личности
Vasiliy
Может они давно писали это все?
Shub
Shub
вчера или позавчера
Vasiliy
Shub
если говорить серьезно - это код ради кода. он не решает никакую проблему, ну точнее, раньше он решал, а теперь он переписывается без функциональных изменений
Shub
абсолютно тупая и бессмысленная деятельность
Shub
собственно, код это отражает
Vasiliy
хм, а зачем тогда решили трогать код?
Ayrat
Можете показать код или часть кода, которым вы гордитесь?