Vasily
Ужоснах
Doge
Ужоснах
https://downloads.haskell.org/~ghc/8.6.5/docs/html/users_guide/glasgow_exts.html#rewrite-rules Вот про rewrite rules в хаскеле.
Doge
https://dotty.epfl.ch/docs/reference/metaprogramming/staging.html Вот про staging
Doge
И новый инлайн: https://dotty.epfl.ch/docs/reference/metaprogramming/inline.html
Doge
А, это похоже на модификацию AST
Это правила для компилятора по которым он может переписывать данный код.
Vasily
Это правила для компилятора по которым он может переписывать данный код.
В дотнете можно анализаторы рослина для этого применить, например. В c#, правда
Doge
В дотнете можно анализаторы рослина для этого применить, например. В c#, правда
Ну тут важна достаточно глубокая интеграция с компилятором, чтобы он мог это сам делать без твоего явного указания.
Ayrat
чего стейтлесс-то?
Есть некоторые преимущества в стейтлесс подходе для распределённых приложений
Doge
Ты ж ему явно указываешь
Ты указываешь в каком случае, но не указываешь где именно применить.
Doge
Ну я так понимаю, он везде и применит
Там хитрее. Можешь почитать ту ссылку, что я давал на хаскель доки.
Doge
Есть некоторые преимущества в стейтлесс подходе для распределённых приложений
Да и если обычное приложение удается сделать полностью стейтлесс это тоже здоровый выигрыш в плане удобства поддержки, девопса и т.п.
Vasily
Там хитрее. Можешь почитать ту ссылку, что я давал на хаскель доки.
Ну в хаскеле с оговоркой "если применимо", как я понимаю
Roman
в итоге эта лабуда работает, но не уверен, что в итоге получился код, который проще тестировать
Roman
короч это помогло избавиться от явных параметров и Async привязки прям в доменном слое. И даже бойлерплейта не так много. Но для тестов теперь придется писать свой интерпретатор
Doge
в итоге эта лабуда работает, но не уверен, что в итоге получился код, который проще тестировать
Смотря как ты хочешь это делать. С Free тебе удобно подменить вот этот твой побочный эффект, а вот всё остальное остается тестировать точно так же.
Roman
Смотря как ты хочешь это делать. С Free тебе удобно подменить вот этот твой побочный эффект, а вот всё остальное остается тестировать точно так же.
ну мой поинт в том, что для того, чтоб запустить воркфлоу, нужно собрать интерпретатор и удовлетворить ВСЕ зависимости, которые в этом bounded context используются. В принципе, наверное, это можно сделать 1 раз для всех тестов, так что наверное не критично
Vladislav
а asp net нормально с decimal работает?
Vasiliy
эм. а как должен?😅
Ayrat
https://pastebin.com/pXyqfJf0
Ayrat
а asp net нормально с decimal работает?
Ты забыл самую мякотку линкануть
x
кто-нить работал с амазон swf? я так понимаю, это их версия акторов? почему они сделали ещё step functions и в чём разница?
Shub
не было б собеса - они б про него так бы и не услышали. жаль, что на собесе много чего вообще не спрашивают
Roman
по хорошему, бойлерплейта вообще быть не должно.
так ты покажешь, как должно быть или нет?
Roman
я только за, если ты покажешь единственный истинно верный путь
Romɑn
я только за, если ты покажешь единственный истинно верный путь
Я покажу 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 👇 Его нет
Shub
так ты покажешь, как должно быть или нет?
фалласи в стиле “сперва добейся”
Ilya
Нет же.
Romɑn
фалласи в стиле “сперва добейся”
Да нет. Насколько я знаю Рому. Он правда хочет понять что ты ему пытался донести
Shub
я пытался донести, что те два метода нерасширяемы и неподдерживаемы. к сожалению, у меня нет возможности пройти весь путь и выяснить, где был сделан поворот не туда
Shub
однако простынка из однообразных методов на 50 строк подтверждает, что поворот таки был
Roman
фалласи в стиле “сперва добейся”
нет, это не сперва добейся. Я предложил один подход — ты его обосрал. Я предложил другой — ты его опять обосрал. Давай разберемся и сделаем, как надо. В конце концов, я пытаюсь сделать мануал для разработчиков. Учитывая, как ты постоянно поливаешь своих коллег за говнокод — это и в твоих интересах тоже.
Roman
ок, раскритиковал
Shub
постишь код в паблик чат - будь готов к любому фидбеку, в т.ч. и к негативному
Vasily
Карочи, дедушка. Проведите ревью, покажите мастер-класс, как надо
Vasily
Мы ж учимся
Roman
еще раз — проблема не в том, что тебе мой кот не понравился, а в том, что ты внятно не донес, как должно быть
Shub
чтобы донести, как должно быть, мне надо начать с базовых аксиом и с дизайна. к сожалению, времени на это сейчас нет
Roman
А если просто на любой код говорить, что он говно, а в ответ ничего не предлагать — ну грош цена такому мнению
Vasily
Иначе это действительно стиль no u
x
Иначе это действительно стиль no u
Это техника Сократа или как-то так 🤔
Vasily
Ну чисто приблизить тепловую смерть Вселенной сотрясаниями воздуха
Shub
Это техника Сократа или как-то так 🤔
сократовский метод - это задавать вопросы, наталкивающие на размышления
Shub
как оказалось, работает только в платоновских диалогах
Vasily
Опыт гигантский, пора делиться с молодежью
Shub
так задавал. как будет расширяться interpret?
x
Платон мне друг, но таки шо делать 😅
Shub
как будет модифицироваться interpret при новых требованиях от бизнеса?
Roman
так задавал. как будет расширяться interpret?
от таких вопросов толку мало
Roman
он как бы наталкивает на мысль, что надо делать расширяемый, хороший, поддерживаемый код
Roman
за эту мудрость конечно спасибо, но до этого уже вроде я дошел
Shub
от таких вопросов толку мало
ок. ситуация такая: вчера пришел ПМ и принес еще 5 новых ситуаций-состояний
Shub
будем дописывать еще 5 веток в interpret или будем делать что-то другое?
Vasily
Мне кажется, ты знаешь большую часть ответа
Roman
интерпретатор не про состояния, а про зависимости. Все взаимодействия с бд/внешними апи и тд
Shub
зачем вы отвечаете вопросом на вопрос?
Roman
зачем вы отвечаете вопросом на вопрос?
зачем вы отвечаете вопросом на вопрос?
Vasily
Мне тоже интересно развить мышление
Shub
Мне тоже интересно развить мышление
ну я например не вижу смысла в дописывании веточек каждый раз, когда меняются требования
Roman
они и не дописываются
Vasily
ну я например не вижу смысла в дописывании веточек каждый раз, когда меняются требования
Тогда вопрос - как видоизменить код, чтобы это не нужно было делать?
Shub
они и не дописываются
потому что ты решил, что новых веточек не будет?
Roman
как бэ есть дерево исполнения программы, на него навешиваются вызовы во внешний мир
Shub
Тогда вопрос - как видоизменить код, чтобы это не нужно было делать?
совершенно верно. для этого надо сделать шаг назад на стадию проектирования
Roman
соответственно новые ветки дописываются не тогда, когда нужно сделать новую логику, а тогда, когда у нас появляется новая сущность/источник данных