Меня, честно говоря, пугают последние изменения в шарпе. Вместо того, чтобы стимулировать людей писать код с большим количеством переменных, где в любом месте можно поставить breakpoint и легко его продебажить, зачем-то идут в сторону уменьшения количества кода.
А потом ты такой сидишь и смотришь на метод с expression body, который вызывает другой метод, которому в параметры передаётся результат ещё какого-то метода, да теперь ещё и у которого в параметры передаётся строка с интерполяцией, где теперь ещё и многострочное выражение. И во всём этом хаосе где-то случается exception, а ты даже не понимаешь, как его продебажить...
Ожидал в конце статьи увидеть что-то вроде "в итоге мы решили допилить свой анализатор, чтобы в сообщении об ошибке указывалось, что дублирование встречается несколько раз, чтобы больше не попадать в такую ситуацию".
Тема интересная, спасибо. У меня несколько вопросов:
Если зарегистировать ИП или самозанятость, но нигде не работать, нужно ли платить какие-то отчисления? Допустим, если человек хочет зарегистировать ИП "на всякий случай", если будет какая-то подработка?
Можно ли регистрировать ИП, уже работая в штате у какой-то компании? Как это соотносится с проверками СБ? Например, если устроиться в штат, пройти там проверку СБ и потом открыть ИП?
Что из себя представляют акты выполненных работа? Это обязательная часть в случае ИП или самозанятости?
Например, по задумке авторов поля не могут быть nullable, что не всегда удобно.
Это не совсем так, там есть набор well known types, которые можно использовать вроде бы без необходимости их как-то специально подключать. Для них генератор правильно создаёт nullable типы.
Спасибо, что не поленились собрать весь этот материал в одной статье! Это действительно многим будет полезно.
Поскольку вы упоминаете ASP.NET, то было бы неплохо для HttpClient также привести пример конфигурирования через DI, т.к. ручное создание HttpClient и HttpClientHandler там не самая лучшая практика.
Если речь про ASP.NET Core, то там есть хак, которым сами MS часто пользуются. Поскольку IConfiguration лежит в IServiceCollection в виде инстанса, то можно его просто оттуда достать и использовать. Такая же тема с IHostEnvironment. Такой хак позволяет иногда сильно упростить сигнатуры методов.
У вас реализация неправильная. Если два запроса придут практически одновременно, то каждый вызовет _idempotencyRecordProvider.Get , ничего не получит и пойдёт обрабатывать запрос. Как минимум там надо создать пустую запись, которая показывает, что другой запрос уже начал обрабатываться, но ещё не закончил.
Я должен признать, что я не так сильно шарю в nodejs и typescript, как хотелось бы. Что вы предлагаете использовать вместо `npm install`?
И вы уверены, что npx будет устанавливать новую версию? В описании чётко сказано, что если команда есть в node_modules/.bin, то она выполняется оттуда, а туда будет установлена конкретная версия указанная в package.json.
Но если вы в каком-то новом проекте подключите только пакет ViennaNET.Orm.DB2.Win, то IBM.Data.DB2.Core автоматически не подключится.
Есть специальная папка /buildTransitive, если вы при билде положите туда файлы *.props и *.targets, упакуете это всё в nuget пакет A, потом сделаете другой пакет B, который зависит от пакета А, то можно к проектам подключать только пакет B, а все файлы MSBuild будет подтягивать из пакета A автоматически. (Документация)
Спасибо, да, вагрант я планировал посмотреть. Просто им хорошо пользоваться, когда уже понимаешь, что именно надо настраивать. Изначально у меня была немного другая задача — в принципе разобраться, как выполняются настройки. Т.к. когда я начал смотреть мануалы из интернета, то полноценно запустить кубер на виртуалках у меня не получилось. Постоянно косяки возникали какие-то.
Меня, честно говоря, пугают последние изменения в шарпе. Вместо того, чтобы стимулировать людей писать код с большим количеством переменных, где в любом месте можно поставить breakpoint и легко его продебажить, зачем-то идут в сторону уменьшения количества кода.
А потом ты такой сидишь и смотришь на метод с expression body, который вызывает другой метод, которому в параметры передаётся результат ещё какого-то метода, да теперь ещё и у которого в параметры передаётся строка с интерполяцией, где теперь ещё и многострочное выражение. И во всём этом хаосе где-то случается exception, а ты даже не понимаешь, как его продебажить...
Ожидал в конце статьи увидеть что-то вроде "в итоге мы решили допилить свой анализатор, чтобы в сообщении об ошибке указывалось, что дублирование встречается несколько раз, чтобы больше не попадать в такую ситуацию".
Тема интересная, спасибо. У меня несколько вопросов:
Если зарегистировать ИП или самозанятость, но нигде не работать, нужно ли платить какие-то отчисления? Допустим, если человек хочет зарегистировать ИП "на всякий случай", если будет какая-то подработка?
Можно ли регистрировать ИП, уже работая в штате у какой-то компании? Как это соотносится с проверками СБ? Например, если устроиться в штат, пройти там проверку СБ и потом открыть ИП?
Что из себя представляют акты выполненных работа? Это обязательная часть в случае ИП или самозанятости?
Это не совсем так, там есть набор well known types, которые можно использовать вроде бы без необходимости их как-то специально подключать. Для них генератор правильно создаёт nullable типы.
Проблему с обоями я для себя решил через Bing Wallpaper. Каждый день ставится новое красивое фото.
Спасибо, что не поленились собрать весь этот материал в одной статье! Это действительно многим будет полезно.
Поскольку вы упоминаете ASP.NET, то было бы неплохо для HttpClient также привести пример конфигурирования через DI, т.к. ручное создание HttpClient и HttpClientHandler там не самая лучшая практика.
Да, но они всё равно не позволяют вынести код из gitlab-ci. А когда его много - это не удобно.
Если напишете подробности, могу попробовать подсказать, что не запустилось.
Если речь про ASP.NET Core, то там есть хак, которым сами MS часто пользуются. Поскольку IConfiguration лежит в IServiceCollection в виде инстанса, то можно его просто оттуда достать и использовать. Такая же тема с IHostEnvironment. Такой хак позволяет иногда сильно упростить сигнатуры методов.
У вас реализация неправильная. Если два запроса придут практически одновременно, то каждый вызовет
_idempotencyRecordProvider.Get, ничего не получит и пойдёт обрабатывать запрос. Как минимум там надо создать пустую запись, которая показывает, что другой запрос уже начал обрабатываться, но ещё не закончил.Вроде бы у них появились composite actions.
И вы уверены, что npx будет устанавливать новую версию? В описании чётко сказано, что если команда есть в node_modules/.bin, то она выполняется оттуда, а туда будет установлена конкретная версия указанная в package.json.
Есть специальная папка
/buildTransitive, если вы при билде положите туда файлы*.propsи*.targets, упакуете это всё в nuget пакет A, потом сделаете другой пакет B, который зависит от пакета А, то можно к проектам подключать только пакет B, а все файлы MSBuild будет подтягивать из пакета A автоматически. (Документация)(Это если я правильно понял суть проблемы)