Pull to refresh
9
0
Send message
Однако, JavaScript уже практически десятилетия находится рядом и никуда не уходит.

Это потому что у нас не было выбора.
Тут надо упомянуть что схема в Avro передается вместе с данными. Поэтому если мы часто гоняем данные и для нас важен размер отправляемого пакета, то Avro не самый лучший выбор.
Большее спасибо за статью, честно говоря думал что Avro умер, впрочем как и Thrift.
Да, так оно. А разве некоторые платформы не устарели? По моему поддержка GCC не настолько важна на данный момент. Лучше направить сил на что нибудь другое.
использование GCC в качестве backend'а

Вот серьозно, зачем это нужно если есть LLVM.
поддержка асинхронного программирования (async/await)

Как по мне в rust лучше предоставить семейство типов для работы с асинхронностью. async/await лучше оставить более высокоуровневым языкам. Например в с# это модель очень удобна, но достигается путем нескольких абстракции.
Верно, верно. Забыл глянуть в спецификации.
Вы что то путаете. Сложение выполняется операцией XOR. Следовательно значение хеша не измениться если поменять их местами.
Можно возвращать HttpMessageException со статус кодом и описанием. Сосбтвенно ради чего этот тип исключения и был создан. У нас принято все 4xx ошибки возвращать через исключение. Тут зависит от похода, и как мы относимся к ошибкам в бизнес-логике. Я лишь привел пример, метод для валидации можете назвать по другому и реализовать по своему
Скажите, а почему бы не вынести это в базовый контроллер? Одна строчка аттрибута или одна строчка в начале метода? В обоих случая если забудете написать, то валидация работать не будет.
Возможно вам await в реализации метода не нужен.
Ментор мой тоже не любит аттрибуты, и предпочитает выносить в базовый контроллер вот такие вот проверки. И уже в самом начале метода вызывать метод из базового класса.
public IActionResult Post(Model model)
{
    ThrowIfModelIsInvalid(model);

    return View();
}

Таким образом у нас метод становиться статическим, и не надо шаманить с аттрибутами.
У них все новые компоненты стараются писать на Rust. Статического анализатора для него ещё нету(имею ввиду PVS).
Думаете Intel и другие разработчики процессоров сразу же пересядут на Rust? Учитывая что программирование касаемо hardware довольно небезопасно, то сплошь и рядом придётся писать блоки unsafe кода.
Если память не изменяет то первым языком с поддержкой async/await был F#. Там толпа энтузиастов. Ну а компилятор преобразует это в CLR, и там это выглядит в виде машины состояния с двумя состояниями, и переход между ними выполняется с помощью goto оператора. Ну а в CLR самые узкие места написаны на C/C++.
Странно упомянуть async/await и не упомянуть родоначальника этого паттерна, а именно платформу .net
если делать контейнеры только под линукс то навряд ли победят. Возможно получат большую часть рынка, но windows server довольно популярная ос в мире интерпрайза, и там тоже нужны контейнеры
Нет, и как по мне чрезмерно переусложненно. Наверное имеет смысл в приложениях со сложными запросами. К примеру интернет-магазин со множеством фильтров
Затянул с ответом, отпуск.
В gRPC мы передаём все данные в бинарном формате, так гораздо эффективнее, для чего собственно proto формат и был создан. В javascript-e из браузера работать с ним от слова почти невозможно, собственно выходит нужно передавать в каком нибудь другом формате. Ну а дальше натыкаемся на ограниченность формата json и самого http протокола, и невозможность напрямую предоставить некоторые типы данных. Для этого даже был создан документ у них в репозитории.
Так что пока gRPC для меня выглядит как идеальное решение для межсервисной коммуникации. Ту а для веба видать пока что лучше swagger-a альтернативы нету.
Если честно, я бы просто хотел генерировать модельки описанные в IDL. Если задуматься, имея готовые модели, можно не заморачиваться со спецификой protobuf протокола, и возвращать обычный json из уже готовой модели(так как для json-a у них свои ). Ну а сервисы, можно будет самому написать, без gRPC. Ведь кому-то нужен REST, а имея на руках готовые модели мы точно знаем какой объект нам придёт, за разработчиком остаётся только определить входные точки(endpoint). Кстати, не пробовали ли вы thrift? Ну я нарыл на днях решение от майкрсофта, где есть дженерики. Они, между прочим, тоже решили следовать gRPC.
Одно но, он веб как бы не поддерживает. Есть костыли от сторонних разработчиков которые пытаются приспособить его к вебу, но если сам гугл не сделал такой поддержки, значит оно ему и не нужно. gRPC скорее больше нужен как межсервисная коммуникация. Кстати по опыту CLI protobuf-a просто ужасен.
Мне бы идею для высоконагруженного сервиса, что бы имел смысл опробовать tcp соединение и бинарный протокол.
Идея в том, что бы не было их как таковых в стандарте, и не думать о том, что гдето можно схлопопать платформо зависимое исключение.

Information

Rating
Does not participate
Registered
Activity