Size: a a a

2020 June 04

SP

Stanislav Popov in rust_offtopic
гляну че как да
источник

VS

Victor Sapiens in rust_offtopic
Doge Shibu
Ну разве что компилить idris 2 в jvm и пользоваться их сборщиком
А что, хорошая идея же. Почему не взлетит?
источник

SK

Sergey Korotkov in rust_offtopic
Doge Shibu
Хороший гц - это десяток лет ресерча минимум
++
источник

SK

Sergey Korotkov in rust_offtopic
в дотнете так и не осилили
источник

VS

Victor Sapiens in rust_offtopic
Alex Zhukovsky
я только что забанил использование хттп кодов чтобы вместо них юзать эксепшны лол. Вот буквально пару часов назад. Обсудили и пришли к такому гайдлайну
Не понял? У меня глобальный Хандлер обычно 422 возвращает если ожидаемый Тим ошибки и в тело пишет текст из ошибки что не так + данные из неё (я обычно с тандартный словарь Data экспешена записываю)  или 500 без тела если ошибка была не ожидаемого типа. Как вы там сделали? Ну как у меня толко не совсем так (я в реальном проекте чуть по сложнее делаю) тут мой глобальны хандлер https://gitlab.com/VictorWinbringer/blazoreshop/-/blob/master/src/BlazorEShop.Api/Controllers/ErrorController.cs
источник

SP

Stanislav Popov in rust_offtopic
The Rust Core Team believes that tech is and always will be political
источник

AZ

Alex Zhukovsky in rust_offtopic
Victor Sapiens
Не понял? У меня глобальный Хандлер обычно 422 возвращает если ожидаемый Тим ошибки и в тело пишет текст из ошибки что не так + данные из неё (я обычно с тандартный словарь Data экспешена записываю)  или 500 без тела если ошибка была не ожидаемого типа. Как вы там сделали? Ну как у меня толко не совсем так (я в реальном проекте чуть по сложнее делаю) тут мой глобальны хандлер https://gitlab.com/VictorWinbringer/blazoreshop/-/blob/master/src/BlazorEShop.Api/Controllers/ErrorController.cs
public class HttpExceptionFilter : IExceptionFilter
{
 public void OnException(ExceptionContext context)
 {
   switch (context.Exception)
   {
     case HttpStatusCodeException exception:
       context.Result = new ObjectResult(new MessageModel(exception.Message))
       {
         StatusCode = exception.StatusCode
       };
       context.ExceptionHandled = true;
       break;

     case InvalidBusinessOperationException exception:
       context.Result = new ObjectResult(new MessageModel(exception.Message))
       {
         StatusCode = StatusCodes.Status400BadRequest
       };
       context.ExceptionHandled = true;
       break;

     case BusinessEntityNotFoundException exception:
       context.Result = new ObjectResult(new MessageModel(exception.Message))
       {
         StatusCode = StatusCodes.Status404NotFound
       };
       context.ExceptionHandled = true;
       break;
   }
 }
}
источник

p

polunin.ai in rust_offtopic
Victor Sapiens
А что, хорошая идея же. Почему не взлетит?
В целом да, но непонятно с первого взгляда как types as First Class Objects запускать
источник

VS

Victor Sapiens in rust_offtopic
Alex Zhukovsky
public class HttpExceptionFilter : IExceptionFilter
{
 public void OnException(ExceptionContext context)
 {
   switch (context.Exception)
   {
     case HttpStatusCodeException exception:
       context.Result = new ObjectResult(new MessageModel(exception.Message))
       {
         StatusCode = exception.StatusCode
       };
       context.ExceptionHandled = true;
       break;

     case InvalidBusinessOperationException exception:
       context.Result = new ObjectResult(new MessageModel(exception.Message))
       {
         StatusCode = StatusCodes.Status400BadRequest
       };
       context.ExceptionHandled = true;
       break;

     case BusinessEntityNotFoundException exception:
       context.Result = new ObjectResult(new MessageModel(exception.Message))
       {
         StatusCode = StatusCodes.Status404NotFound
       };
       context.ExceptionHandled = true;
       break;
   }
 }
}
На сколько я помню если сделать хандлед в фильтре то в стандартный глобальный не попадёт и не попадёт в логи? Я в чём-то ошибаюсь ? У вас там логи отдельно от мидлвара стандартного для ошибок? Я давно уже работают с ampq а не http и тут немного другой пайплайн поэтому плохо помню
источник

SP

Stanislav Popov in rust_offtopic
Alex Zhukovsky
public class HttpExceptionFilter : IExceptionFilter
{
 public void OnException(ExceptionContext context)
 {
   switch (context.Exception)
   {
     case HttpStatusCodeException exception:
       context.Result = new ObjectResult(new MessageModel(exception.Message))
       {
         StatusCode = exception.StatusCode
       };
       context.ExceptionHandled = true;
       break;

     case InvalidBusinessOperationException exception:
       context.Result = new ObjectResult(new MessageModel(exception.Message))
       {
         StatusCode = StatusCodes.Status400BadRequest
       };
       context.ExceptionHandled = true;
       break;

     case BusinessEntityNotFoundException exception:
       context.Result = new ObjectResult(new MessageModel(exception.Message))
       {
         StatusCode = StatusCodes.Status404NotFound
       };
       context.ExceptionHandled = true;
       break;
   }
 }
}
как же больно после раста то
источник

p

polunin.ai in rust_offtopic
Типо можно делать класс Type например, и создавать инстансы, но блять это же пиздец производительности
источник

p

polunin.ai in rust_offtopic
Идрис невозможно компилировать эффективно, в этом его проблемы
источник

p

polunin.ai in rust_offtopic
Нельзя - потому что в идрисе разрешается слишком много всего
источник

p

polunin.ai in rust_offtopic
Я могу вернуть тип из функции в рантайме
источник

VS

Victor Sapiens in rust_offtopic
@Psilon Как вы легирует ошибку если ее перехватываете фильтром? Там же в фильтре? Как метрики по ошибкам считаете?
источник

S

Sooqa in rust_offtopic
polunin.ai
Я могу вернуть тип из функции в рантайме
А он в комптайм не выносит
источник

S

Sooqa in rust_offtopic
?
источник

p

polunin.ai in rust_offtopic
Sooqa
А он в комптайм не выносит
Нет
источник

S

Sooqa in rust_offtopic
А мог бы
источник

AZ

Alex Zhukovsky in rust_offtopic
Victor Sapiens
На сколько я помню если сделать хандлед в фильтре то в стандартный глобальный не попадёт и не попадёт в логи? Я в чём-то ошибаюсь ? У вас там логи отдельно от мидлвара стандартного для ошибок? Я давно уже работают с ampq а не http и тут немного другой пайплайн поэтому плохо помню
ну 400тки логгировать смысла особого нет хз
источник