Как стать автором
Обновить
11
0
Алексей Ануфриев @Razaz

Пользователь

Отправить сообщение

А хз - популярность точно выросла. Уже были проекты по переезду с Java на .Net Core 3.1 и Net 5. Основные драйверы - популярность Azure в части регионов, нежелание свзяываться с Ораклом.

У вас тут все кони смешались.

Давайте сразу разберем два основных кейса, которые я вижу по вашим коментариям:

  1. Разовое форматирование строки, которое не поддается батч процессингу

  2. Батч процессинг строк

Пункт 1:

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

Пункт 2:

Не используйте сахар, берем unsafe, работаем с ArrayPool, спанами и тд и тп в зависимости от необходимости. Никакой серебряной пули нет, как и одного решения всех проблем.

Обычно что бы объяснить что где использовать и разжевать есть сениоры и принципалы.

Так же важно понимать что есть участки кода, где производительность является безоговорочным приоритетом, а есть места где читабельность на порядки критичнее.

Кидаться какашками в геймдэв не совсем красиво, так как современная игровая платформа на бэкенде запросто переплюнет 99%+ "бизнес" проектов по нагруженности и объему данных. Давайте обсуждать вопросы предментно и без фанатизма пожалуйста :)

Прмеры из личного опыта:

  1. TCP сервис. очень удобно иметь общие подходы с Asp.Net Core

  2. Сервис, который Кафку читает, например

ЗЫ. Это разные сервис провайдеры. Просто количество комбинаций слов, описывающих этот функционал весьма ограниченно :) И в контексте нэймспэйса DependencyInjection выглядит весьма органично ;)

Согласен, у меня коллега так и уехал. Vaadin - Турку :P, GitLab вроде полный ремоут есть. Но вопрос соответствия тому же финскому законодательству. У меня была пара собеседований, где я задавал вопрос - 5 недель отпуска и отпускные, весь Июль как отпуск, оплата переработок, 37.5 часов рабочая неделя и тд. Кроме общих бла бла бла ответа конкретного небыло :)

С семьей комфортно. Медицина, садики, школы, соц обеспечение. Мы когда искали куда ехать - это были основные вопросы. Понятно, что если ехать на позицию 10k EUR + то это не так критично, но таких очень мало. И в той же Иландии 10к в месяц не помогут - жилье в Дублине просто космос.

Удачи вам в переезде и спасибо за статью. Внимательно смотрите страну, куда поедете. Желательно найти того, кто там живет. Для себя уже решил, что если и двигаться в FAA(M)NG, то только если офис разработки будет в Финляндии или на край - в Норвегии.

Кто бы написал как весело на кубе хостить крупные проекты — хотя бы больше 5к инстансов сервисов с партиционированием, zero downtime и тд и тп :) Постоянно после таких новостей приходится от менеджмента отпинываться :D
В воспаленном воображении автора. Да и в 2020 писать о таких вещах это вообще дичь.
Идёте на LI, составляете резюме, из списка вакансий выбираете те, что на английском и нет явного требования к языку кроме английского и рассылаете.
Второй вариант — на SO(английском) создаёте резюме и ищите по базе вакансий с флагами relocation/visa sponsor. США лучше не искать — шансов на визу с этой лотереей мало.
Вы путаете рантайм и редактор кода. Код можно написать в VS а выполнить на разных рантаймах. PS и компильнуть разными компиляторами ;)
Эх, подождем :( А есть возможность bold в текстовм редакторе выключить? Или это где-то в теме надо подкрутить?
Есть ли возможность делать Publish с WebDeploy?
Я прошу экскурсию по офису :)
Green vs Native threads достаточно обширная тема для обсуждения. У обоих подходов есть право на жизнь. ThreadPool + Tasks очень хорошо справляются со своей задачей ИМХО.

Время старта сейчас достаточно мало и пока я не сталкивался с проблемами в этой части. Возможно у вас есть какие-то специфические кейсы.

Конечно размер бинарника приятный бонус, но так как сейчас весь .Net Core распилен на кусочки, то можно брать только те фичи, которые нужны.

Для деплоя как Go есть self-contained режим сборки ;)

Скажем так, я пережил все с первых бета релизов со всеми адовыми головняками и сейчас большинство проблем уже подчистили. Вроде что-то придумали, что бы затащить старые либы.

В целом Go классный, но для больших приложений со сложной логикой — ну его нафиг :)

Кстати шаблонизатор на Go это типа Razor?
Для каждой задачи свой инструмент. Я вот не представляю какой-нибудь серьезный сервис аутентификации/авторизации на чем то кроме C#/Java/Go :) Причем я JS люблю, но только на фронте и мне нравится работать с Реактом на ES7 :D

Я даже спорить с вами не буду. Go мне нравится, но C#+AspNetCore разумный компромисс для меня между Java и Go :) С авинками проблем нет и 100 тыс. потоков не запускаю.
А вот 100 тыс. тасков запросто ;) TaskScheduler раскидывает таски по потокам, а тред пул регулирует необходимое количество в зависимости от загрузки.

При возникновении любой сложной логики объектная модель Go меня совершенно не устраивает. Тут я лучше Scala возьму. Но C# уже скоро не отличить от нее будет :D Работа с большими codebase для меня очень неудобна(больше 700kk loc).
Огромный dealbreaker — нет динамической линковки и рефлексии. Сложные системы расширений и плагинов никак.
Кастомные коллекции очень важны для инкапсуляции специфической логики работы с набором данных.

http/2, tls, port sharing: WebListener. Есть еще Kestrel(но они упираются по части http/2). И кастом народ активно пилит.
На никсах да не супер. Но в основном хостинг на Nano или Service Fabric. Там норм :D
Очень спорный функционал. Обычно я через PKI инфраструктуру такие штуки делаю.
Хотите могу дать исходники))) JavaScriptSerializer вообще со времен царя Гороха :)
Это вы про var myString = $«This is my {somevariable}»?
Лучше ImageSharp, SkiaSharp но и Drawing кстати портировали.
Ну например
System.CommandLine

GC в Go имеет определенный тюнинг под специфичные задачи. Я просто использую unsafe и никакого STW по 100 ms ))
Часто использую хешсеты, связанные списки, очереди. Более сложные вещи типа BlockingCollection и тд. Хотя последнее сейчас заменяю на каналы.
T4 шаблоны? ;)

Ну тут у каждого свой опыт. Иногда полезно ковыряться в MSIL. На самом деле не все так сложно :D

Причем про стандартную либу еще сразу подкину ссылочку. Ее легко пропустить, но когда делал прототипы на Go и на NetCore был удивлен, что все нашлось ))

Про остальное попозже расскажу. Пока времени нет :)
Тогда зачем обсуждать GIL и интерпретируемые языки вообще относительно C#? :D

Проблема в том, что вы не в курсе как обстоят дела у C# сейчас, но беретесь его оценивать и сравнивать :)

Вы приводите требование к отсутствию GIL при обсуждении C#. Вообще даже ЯП с GIL могут в хайлоад.

Он написан на .Net + C#. Как и то, что приведено дальше. AzureAD проводит 1 миллиард аутентификаций в день. Или это не достаточно high-load?

Вы считаете Go какой-то магией, хотя это просто GC+AOT и специально обрезанный функционал языка с настройкой GC под определенные кейсы. Java и C# — GC+JIT. Причем C# так же умеет в AOT(dotnet native) для некоторых задачек уже.

Вы понимаете, что код на Java и C# То же будет нативным после работы JIT? Рантайм может добавлять дополнительную логику и проверки. Но это уже нюансы, который могут быть как opt-in так и opt-out.

Тогда причем тут GIL?

Я вроде показал — StackOverflow.com. Может у вас какое-то свое определение этого термина? Тогда Azure Portal сойдет? Или AzureAD?

Ваши тезисы относительно C# некорректны и показывают, что вы говорите о том, чего не знаете. Ваш разговор о GIL уже показателен.
CoreClr уже кроссплатформенный вообще то…

Ох… C# не интерпретируемый. Он компилируемый, как и Go, как и Java. Только Go использует AOT компиляцию сразу в нативный бинарник, а JVM и CLR компилируются в промежуточный ассемблерный язык(IL, Bytecode) своей VM и при первом выполнении в нативный код(грубо говоря). Причем для C# уже есть CoreRT.
Уж если говорить про быстроту, то тут есть нюансы. Типа проверка выхода за границы массива. По умолчанию она работает в C#(грубо говоря), но вы можете использовать unsafe например.

StackOverflow? :D

Вы в курсе что у Go так же есть рантайм, который так же отвечает за GC, выделение памяти и тд? Этот тот же JVM или CLR, только без промежуточной компиляции.
1
23 ...

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность