Size: a a a

2020 July 04

H

Hirrolot in rust_offtopic
если на расте
источник

H

Hirrolot in rust_offtopic
потом просто визитором обходим и готово
источник

H

Hirrolot in rust_offtopic
короче фп сосет)))
источник

H

Hirrolot in rust_offtopic
нужно к ооп языку мощщщные типы прикрутить и готово
источник

H

Hirrolot in rust_offtopic
Eiffel помоему так и сделал
источник

NL

Nick Linker in rust_offtopic
Dmitry Rodionov
у жсона свой тулинг у бинарных протоколов свой, для жсона нужно иметь схемы или openapi, иначе тестировщики не разберутся что им слать через postman. И эти схемы тоже надо поддерживать, из JSON тоже можно бояться убирать deprecated поля если нет понимания кто ими может пользоваться (@Psilon). В случае протобафа делимся с тестировщиками proto файлами и они могут на удобном для них языке получить клиент для сервиса. Про то что прото-сообщение можно сконвертить в жсон для отладки уже писал. В кишки GRPC лазить не приходилось, с этой стороны проблем не встречалось
Схемы для json можно делать сильно позже, по факту. Мигрировать json гораздо проще, иногда достаточно взглянуть на него, чтобы понять, это старая или новая версия.
json можно посмотреть на мобилках или на js клиенте, и делается это намного проще, чем pb.
Одно из сильных преимуществ: можно смотреть и понимать некорректно сформированное или даже неполное json сообщение и уже по нему строить какие-то выводы.

Наконец, в этом видео, если ты смотрел, очерчены главные и самые болезненные грабли, которые связаны с версионированием протоколов, в микросервисной архитектуре крайне желательно уметь независимо апгрейдить каждый из сервисов, и даже больше -- в процессе роллаута могут работать экземпляры разных версий одновременно.
Это можно сделать и на pb с помощью умной архитектуры и такой-то матери, но как мы видим гораздо эффективнее вообще избегать подобных проблем.
источник

AZ

Alex Zhukovsky in rust_offtopic
Hirrolot
кстати зачем bool ast с int ast смешивать? почему просто два типа не сделать?
там же мотивация понятно расписана в статье
источник

H

Hirrolot in rust_offtopic
мотивация функцию евал сделать без ошибок
источник

H

Hirrolot in rust_offtopic
я два евала просто сделаю для BExpr и IExpr
источник

H

Hirrolot in rust_offtopic
и тоже тайп сейф
источник

AZ

Alex Zhukovsky in rust_offtopic
Hirrolot
я два евала просто сделаю для BExpr и IExpr
что делать если у тебя 50 экспрешнов?
источник

AZ

Alex Zhukovsky in rust_offtopic
и комбинации их
источник

H

Hirrolot in rust_offtopic
то есть ты предлагаешь их в 1 адт пихать все?
источник

AZ

Alex Zhukovsky in rust_offtopic
Hirrolot
то есть ты предлагаешь их в 1 адт пихать все?
погоди
источник

AZ

Alex Zhukovsky in rust_offtopic
покажи пример с BExpr и IExpr для Add
источник

H

Hirrolot in rust_offtopic
источник

D

Dika in rust_offtopic
Hirrolot
то есть ты предлагаешь их в 1 адт пихать все?
Допустим у тебя конструктор для любого экспрешна, например IfFalsy :: Expr a -> Expr a -> Expr a. Тебе придется дублировать код в обоих евалах.
источник

H

Hirrolot in rust_offtopic
Dika
Допустим у тебя конструктор для любого экспрешна, например IfFalsy :: Expr a -> Expr a -> Expr a. Тебе придется дублировать код в обоих евалах.
В Expr просто определю это
источник

H

Hirrolot in rust_offtopic
choice(
   Expr,
   variant(BNode, BExprPtr)
   variant(INode, IExprPtr)
   variant(IfFalsy, Expr, Expr)
);
источник

H

Hirrolot in rust_offtopic
как-то так
источник