Ayrat
https://youtu.be/_Rq8t3K_YsA
Roman
https://youtu.be/_Rq8t3K_YsA
годно или посмеяться?
Ayrat
сам не смотрел
Ayrat
просто вбросил
Roman
чертяга
Ayrat
ну вот щас мне делать нечего, посмотрю
Roman
флинк будем портировать?)
Anonymous
Bounded contexts. Суть в том, что сущности из реальной жизни слишком многогранны и сложны, чтобы их отразить в коде вменяемым образом. Идея разграничения контекстов заключается в том, чтобы разбить твое большое приложение на логические модули. В каждом модуле у тебя, например, будет существовать юзер. Только в модуле настроек приватности у него будет один набор свойств (настройки того, кто ему может писать, смотреть страницу и тд), а в модуле переписки совсем другой (собеседники, список диалогов, сообщений и тд). Так вот твои сущности (юзер в данном примере) дробятся на проекции по одной на каждый такой контекст. Далее, по поводу общения через контракты: Внутри таких контекстов у тебя есть всякая мудреная логика, проверка бизнес правил и прочего говна. Так вот, чтобы это случайным образом не нарушить и не обойти, один контекст (например, месседжинг) при обращении к другому (например, приватность) должен общаться через самый верхний слой того контекста, т.е. контракт. В противном случае будет дублирование логики внутри разных контекстах и баги, как неизбежное следствие.
я че-то про верхний слой нихуя не понял. можно как для аутиста, на пальцах пожалуйста?
Ayrat
флинк будем портировать?)
может лучше свагер для жирафа сделаем?
Ayrat
у флинка там ебанутое колво кода
Roman
я че-то про верхний слой нихуя не понял. можно как для аутиста, на пальцах пожалуйста?
фак, я ща занят немного. Если напомнишь на выходных, я распишу
Ayrat
и порт надо на самом деле на сишарпе писать
Ayrat
потому что ты не хочешь переделывать архитектуру или код порта чтобы потом бекпортить изменения
Roman
может лучше свагер для жирафа сделаем?
DSL для описания контрактов, из которых потом будет генериться лапша жирафа?
Ayrat
DSL для описания контрактов, из которых потом будет генериться лапша жирафа?
Вот тут вопрос. Я бы попробовал оба варианта и посмотрел какой лучше идёт
Ayrat
мне кажется что плясать свагер ОТ кода не получится
Ayrat
т.к. в жирафе всё через жопу и функция на функции функцицей погоняет
Ayrat
ну то есть это норма
Roman
потому что ты не хочешь переделывать архитектуру или код порта чтобы потом бекпортить изменения
я думал об этом, но можно попробовать минимальной кровью: типа result вместо исключений и может быть модули вместо сервисов или типа того
Ayrat
но нет контроллеров с методами
Ayrat
ну вот я потому и предлагаю
ну вот я тоже так думаю, но нет уверенности
Ayrat
мне кажется контракт ферст лучше подходит жирафу
Ayrat
код генерить на фшарпе-то непросто!!1
Roman
ну для именно кодгена там есть Myriad
Roman
но я б сначала описал дсл
Ayrat
можно взять как у сатурна
Ayrat
то есть банально взять дсл сатурна
Roman
о, надо посмотреть. Я его вообще не трогал
Ayrat
let userController = controller { subController "/comments" commentController plug [All] (setHttpHeader "user-controller-common" "123") plug [Show; Action.Index;] (setHttpHeader "user-controller-specialized" "123") index (fun ctx -> "Index handler no version" |> Controller.text ctx) show (fun ctx id -> (sprintf "Show handler no version - %i" id) |> Controller.text ctx) add (fun ctx -> "Add handler no version" |> Controller.text ctx) create (fun ctx -> "Create handler no version" |> Controller.text ctx) edit (fun ctx id -> (sprintf "Edit handler no version - %i" id) |> Controller.text ctx) update (fun ctx id -> (sprintf "Update handler no version - %i" id) |> Controller.text ctx) delete (fun ctx id -> failwith (sprintf "Delete handler no version failed - %i" id) |> Controller.text ctx) error_handler (fun ctx (ex: Exception) -> sprintf "Error handler no version - %s" ex.Message |> Controller.text ctx) }
Ayrat
в сатурне всё разбито на контроллеры, внутри ты описываешь желаемые методы. По АСТ билдера можно прям пройтись и собрать всё разом
Ayrat
в свагер
Ayrat
https://github.com/SaturnFramework/Saturn/blob/master/sample/Controller.Sample/Controller.Sample.fs
Roman
да, можно попробовать. Но потом все равно в жирафа же?
Ayrat
сатурн на жирафе работает
Ayrat
просто сам жираф из-за его хаотичности тяжело собрать в свагер
Ayrat
хотя мне кажется возможно.
Ayrat
в асп нет же дерево роутов сохраняется. И женерики в рантайме известны
Ayrat
другое дело что оттуда HTTP VERB взять вроде как нельзя
Ayrat
потому что они в рантайме по роутам могут отвалиться
Ayrat
https://youtu.be/_Rq8t3K_YsA
посмотрел видос. Полная хуита
Ayrat
вообще ни о чём
Ayrat
весь доклад - 10минут, я не шучу
Ayrat
он просто говорит - ДДД не работает, потому что нельзя отделить баундед контексты друг от друга, я подготовил короткий доклад, ожидаю большое кол-во вопросов
Shub
подожди, какие страницы, что такое капсболд и чо вообще происходит?
та самая книжка Эванса по ДДД, ну, с херовой типографикой которая. ты ее читал же?
Ayrat
я вопросы не смотрел
Ayrat
я не понимаю как можно прийти на митап с аргументацией такого уровня
Ayrat
то есть он показал один слайд и сказал, почти дословно - это не работает. Вопросы?
Shub
да. типикал митап
Ayrat
я не фанат ДДД, но надо было блять хоть какие-то аргументы привести
Shub
митап - это такое средство зарабатывания социального капитала сегодня.
Ayrat
Эт понятно.
Ivan
аргументацией нельзя доказать несуществование чего-либо. доказывать надо возможность ДДД.
Ayrat
как по этому построить что-то сложнее фантазий автора категорически неясно
Shub
был в гостях на выходных, там была девочка "фронтендер" с 0 годами опыта. подозреваю, что с буткемпа, т.к. банально не могла поддержать никакой предметный разговор. очень гордилась своим статусом "фаундер фронтенд-митапа в Вест Орандж"
Shub
хуевая книга, много воды
они все такие. точнее, там есть еще класс книг "я вам щас убедительно объясню. что НА САМОМ ДЕЛЕ имел ввиду Эванс"
Ayrat
аргументацией нельзя доказать несуществование чего-либо. доказывать надо возможность ДДД.
неправда. Научные статьи которые рассказывают о НЕУСПЕШНОСТИ каких-то экспериментов тоже полезные
Shub
поэтому ДДДшники - это церковь конца 19 века
Igor
то есть он показал один слайд и сказал, почти дословно - это не работает. Вопросы?
И все равно ему далеко до Николая, с его 10 секундным док-вом что DDD не работает https://t.me/g0lden_quotes/37
Doge
аргументацией нельзя доказать несуществование чего-либо. доказывать надо возможность ДДД.
Эээ... В чем проблема? В математике такое запросто доказывается.
Shub
Shub
вот уровень аргументации адепта, например
Shub
30% предложений - восклицательные
Doge
Это точно не цепями Маркова сгенерированно?
Vladislav
ну вот щас мне делать нечего, посмотрю
Майнер таки на кластере запустил и можно не работать?
Doge
0 информации в целях трёх абзацах
Ayrat
А я вам говорил про тренинг? Нам короче компания решила устроить JVM тренинг, т.к. мы все резко с F# на Scala пересели. Ну и вот проводили значит обсуджение что на тренинге рассказывать. Консультант говорит, давайте короче про тайп классы, про зио, про эффекты, про ФП Мы говорим, мы знаем всё про ФП, всё это нахуй не надо, давай лучше про рантайм, флаги жвм, тюнинг, профайлинг, билд системы, бест практис Консультант - ок, мы подготовим для вас программу (прошёл месяц) Консультант - вы знаете, мы не можем вам предложить ничего кроме эффектов, зио и тайп классов. Брать будете? Мы - нахуй идите, ебаные сектанты
Ayrat
хотя что можно ожидать от компании консультантов
Ayrat
подозреваю там собрались отборные сливки которые не смогли в продакшн
Ayrat
а вот ремоут дебагинг я б послушал. До сих пор не в курсе как в жабке память анализить. Ну вот дотМемори есть в дотнетиках
Ayrat
а в жабке там чо, реально всё через консольку?
Ivan
неправда. Научные статьи которые рассказывают о НЕУСПЕШНОСТИ каких-то экспериментов тоже полезные
верно, мой тезис неверен в случае легко проверяемых и доказуемых сущностей. Является ли таковой работоспособность ДДД?