Здравствуйте дорогие друзья, вы фире RadioDotNet в выпуск номер 91 и с вами как всегда в студии Анатолий Кулаков. И играл Абутин всем привет. Низменный фамилий. А кто еще неизменный? Да нет. Роширяемый и добавляемый это наши помогатеры. Поэтому друзья огромное большое спасибо всем, что кто помогает подкасту в частности.
Александр Сергей Владислав Шученко Антон Лазер Валя Гури Самарин Виктор, Руслан Нартамон, Александр Еридин, Сергей Безенко, Александр Лапернин, Ольга Бандаренко, Домитрии, Сорокин, Сергей Краснов и Константин Ушаков. Спасибо большое, друзья, что нам помогаете. И также всем тем, кто в нас распространяется, а в эту друзьям лайк и комментирует всем большое спасибо, что помогать и подделать наш подкаст популярнее востребование и этим самым интереснее.
Так, сики, ну что, пойдем посмотрим, что у нас случилось за эти две недели. Мне кажется, мы целый две недели уже не упоминали спаер. Не стоит ли нам исправиться? Да, именно с него мы сегодня начнем, потому что Microsoft выпустила новую версию, новую preview.
Спаер, да, да, спаер, preview 5. И в нем, по хорошей традиции, есть довольно большое количество феаких разных ломающих изменений. Тут спаер — это такой продукт, в котором действительно каждый прививича не к ломает и переделывает опишку заново. Делает это все, конечно же, из лучших побуждений, чтобы все это выглядело красиво и хорошо работало и было правильно структурированно, поэтому давайте пробежимся по всем изменениям.
Но еще учитывают феак, которые дают люди, богатые стируют. Я-то хорошо, потому что в БТ, когда еще смогут пломать, если не в БТ, правда же? Да, пока не, пока не, это релиза. И даже не смотря на то, что ломает, народ довольно положительно, в целом отзывается о том, что происходит. Это правильно. Во-первых, немножко поменялся пек джинк, то что не называется, то есть набор модулей, то есть набор нogет-покетов, которые в которой езопокованный спаер не может быть умеялся, они вынесли айжер отдельно.
И разделили эспайр хостинка и эспайр хостинка ижер. Раньше все это жилов одном, потому что собственно было нацеленно только на ижер. Но они справедливо решили, что, наверное, ижер часть она немножко отдельная и для стандыла он сценарии в айжер не так и нужен. Теперь этот дверь от два разных компонентов. Так скажем. Что-то, как бы, ну, хорошая гибкость плюс четко задает границы, да, чтобы айжер функционалист там не провел зал в какой-нибудь хидро эспайра.
Где она будет потом мешаться, когда мы будем работать не на ижере. Также сильно довольно поменялось то, что они называют оприкейшен модул, то есть некоторые внутренние логические представления. По сути, оприкейшен модул она как бы в центре всего эспайра и представляет собой набор некоторых абстракций, через которые вы как раз издадаете всякие разные компоненты,
с которыми эспайра потом работает. А также он этот модель задает то, как эти компоненты между собой общаются. Во-первых, теперь в пятом preview, если вы, например, за конфигурите оприкейшен Урл, как просто А-что-tp, транспорт, то есть не сикюрный, то в пятом preview, у ваша приложение тупо закрашится.
Все должно быть сикюрный, вот это все. Для того, чтобы теперь это дело разрешить, то есть специальное переменное окружение, называется эспайра, лао, анссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссссс
Слушай, а как же вот эта концепция, что к лао, у которой эти приложения, прежде всего, они там все равно крутятся где-то за какой-то параксевой, да, и внутри аж эти пи-с нафиг не нужен, что между сервисами ходить? Это хороший понь, не знаю, то есть действительно, если вы диплоите все за ваш приводный нетворк, то вам аж на ТПС вероятно, может быть даже и не нужен. С другой стороны многие используют, как же это называется, и забыл слово, правильно, ну короче, а зерутраст нет рахват.
Зерутраст, когда мы считаем, что мы не в своем личности, и даже между сервисами все равно нужно что-то поезд, заименая вот нечикация и вот это все. Ну может быть, как в публичных облаках, оно имеет смысл, но если ты на локальном кубе рекруйте все, то зачем тебе это зерутраст? Тебе там есть какой-нибудь инжинс, который хочет тебе и храншек делает, а что тебе это, храншек делает и все, а внутри должно все, то есть может все летать вполне подкрыто, можете тебе протокол.
Ну вот видимо для этого это самое спайр Лава и секрет транспорта и велик, чтобы можно было пока не мере сделать так, чтобы она работала. Но они помнят и знают, что на самом деле в большинстве случаев есть некоторые опраксиопереди, поэтому следующее изменение. А оно про то, что по default у для дотнотных проектов включены теперь forfading-хедеров.
То есть они прекрасно понимают, что если вы в вашей спайр добавляете дотнотный проект, и в этом проекте есть какие-то инт-поенты, ну смысл ли вы определяет что-то они есть, то автоматически проставляется переменная кружения подтодованием SPn-at-core forf that haders enabled, то что приводит к тому, что hader-an начинает фровождиться. Дальше в следующий час мы по куда вашу трафик дальше идет.
Они ждали, что это ну потому, что это все из этого, из пайр, это в основном торгетится на контейнерные кружения, а там очень часто есть в самый реверс-прокси, но все то, что ты рассказывал. Дальше в даже борде поддержали так называемые костомные ресурсы, то есть можно реализовать, дочень даже не реализовать, в DI контейнере у вас есть два хука, по сути, да, нужно за регистрируть в DI контейнере, сервисы которые реализуют ресурс-натификаейшен-сервис и ресурс-логер-сервис.
И тогда вы сможете использовать два сервиса, а какие-то костомные ваши ресурсы сообщать о них даже борду и чё-нибудь там логировать, например из них. Они говорят, что это очень полезно для каких-то очень костомных кукулдных ресурсов, для которых у них нет поддержки, а вот с помощью таких вот хуков вы можете какой-то костомный кластомный клоуд на ресурс туда запихать.
В принципе, может полезно кто-то будет пользоваться, либо это будет использовать для дальнейшего развития структуры компонент, набора компонент, с которыми они работают. С волю получше стало работать, теперь можно не только в с дейте волю, но еще в с байнд, то есть когда вы байните что-то существуешь, и таким образом у вас персистан с между запусками сохраняется.
В RevitMQ добавили Management UI, я напомню мы уже в прошлом или позапрошлом Preview у них добавили штука, что можно для основных там популярных вещей типа там по сгоридным пример, а есть эксанжен метод, который там добавляет соответствующий веб-юаль к нему. Теперь такой есть для RevitMQ, есть новая фича Automatik Password Generation, то есть новая пишка, которая соответствует ресурс Builder и позволяет таким образом в таводически генерить в зернаю и пароле.
Понятно, что это удобно для каких-то случайных аккаунтов, и для тех самых автогенерируемых креденшалов, которые нужны при каждом запуске. ДокерBillDarks поддерживает, то есть теперь можно, когда вы используете метод Паблише из Diverfile туда передать дополнительный докерBillDark, и соответственно, то будет используется для Diverfile. И самое, наверное, такое важное в этой оплеке ишен модели, они добавили отложенные исполнения Stringant Repelation.
Как вы помните, у нас есть штуку подозвания в Сишарке. Stringant Repelation, как вы пишете, доллар перед стручечкой, и внутри в фигурноскобках указывайте какие-то, например, переменные. И это означает, что эти переменные на них будут вызовет эту String, и результат будет подставлен. Если вы такую стручку передаете параметром функцию, то у вас функция может принимать функцию, которая принимает строку.
И тогда, конечно, это строка, это строка, это строка, это будет сразу преобразована в обычную строку, а может принять, помните, что эта формата была стримка, если я правильно помню. И тогда вы сможете доступаться к элементам, собственно, этой строки, то есть отдельно описание формата, отдельно к объектам, которые туда были перед. Разделали второй случай, это позволяет эволюетить всякие разные, например, интпоент и прочие порты после того, как все будет стартована.
То есть, вы можете использовать импременную интпоент, которую вы взяли у какого-то контейнера, но пока контейнерз не загустился, вы понятия не мить какой-то будет порт, например, потому что он будет выбран случайно. А если вы это делаете в эволюей, что он уже потом, то момент, когда эта строчка потребуется, она заявляется, и там уже будет нормальный порт.
Ну, вроде разумно, хорошо и красиво, блин, но кажется, что дело держится на такком неначевидном кабанина, надежном принципе, что в любой чьих может сломать залетящего воробья. Ну, посмотрим, да, как это будет самое, напоминаю, что это при вью, они, возможно, следующим, при вью, все, что им сломают, уголь, не поменяет так, что посмотрим. Ну, это все, это касалось обликейшин модулы, то есть основного аппетита, концепции вокруг, вот это все. Вторая большая часть, спайра, это, конечно же, дожборт.
В дожборте они, честно написали, что наш основный фокус был, значит, на всех их на нефоксоральных требований, то есть там, всекиуре, теперь фоманс, то есть там каких-то прорывных фич, и больших визуальных изменений не ждите, но тем не менее. Они поменяли немножко, то, как отображаются структурируанные влоги, там немножко с группировали поля, раньше они просто единый, просто не обиво, делились теперь.
Отдельные поля, это мы до контекста, отдельная поля, отдельная группа или ресурса, отдельная группа общих, значит, какие-то состей, потому что там стэмпы прочего. Для трейс-месседжинга, то есть, когда вы посылаете что-то в какую-то очередь и принимаете теперь есть красивые иконочки в трейсах, времена теперь отображаются в локальный темзонебраузера.
Добавили некоторые количества секюрити обдейтов, то есть, вы в даже парде либо вы должны явно с конфигурить аутнитификацию, либо явно ее отказаться со словами, это даже борт, а на секюр это лауа на немылз, такой сэтинг, и это все сделано пока временно для preview 5, потому что они планируют чуть дальше сделать уже нормальный, хороший, легко и в пользу, как они говорят механизм для того, чтобы авторизовываться в даже борт.
Дальше опыт селементренд-поенту тоже добавили секюрити, то нам можно накинуть либо клиентский артификат, либо опекей, в даже борт, аутентикейшин, добавили настройку возможность подключения какого-нибудь у пейноидика, на кправайдера, в ресурс сервере тоже инфокат, секюрити там тереклайн-сертификаты, поддержаны, но и всякие разные перформанцы и прорубненты. В шаблонах менялось то, что у них теперь подефол, то что ТПС, смотри, выше, что ТПТПТП не взял.
И в сервере с дисковери, это как раз одни из тех самых брейкингей тоже, вопишки именно раньше был метод use-serve-s-discovery, теперь метод add-serve-s-discovery. Причем сервер с дисковер, теперь автоматически поддерживает поиск нужный схемы протоколу, то есть он будет сначала пытаться что ТПС, если не получилось то, что будет питаться что ТП подобрать, короче все там, более-менее, удобно и работает.
С точки зрения девел-пертулов улучшили поддержку в вискодном сешарке, в китт-тулингенов, экстенжни. Вижу у студии там взданал прожур, всякие разные вубликации вожу, вот это все, улучшилось. По ресурсам и компонентам, добавлялся три новых компоненты, это hrventhubz, это nads и это сек. То есть сек теперь полноценный компонент в аспайрам. Можно его использовать для просмотр логов. Понятно уже, кто это добавляет, то есть это самикорсов, то ли мотючаться.
Я не смотрел полуреквесты, но по-моему, если я правильно помню статью, это какие-то коменети-контребиссиансы. В общем, насколько я тоже пока не видел, как это вообще у них предполагается, как это должно быть, кто это должен добавлять, поддерживать меняться. Было бы вот интересно найти какой-нибудь или рекомендации, или хотя бы сложившуюся практику. Ну, я так понимаю, как вы уже поняты. Сейчас, это полуреквестов в основной репозитории с ПАРА.
Давай, ну, создать полуреквест может кто угодно добавить, а дальше это уже в репозитории с ПАРА, то есть поддерживается микросовтом дальше. Нет, ну, репозитория, где собираются все грубо говоря пакеты, там или плаги, но это окей. Это там много проекта в так же уйд. Более интересно, кто может в репозитории за контребьютий, и кто может его это запрунить. Нет, ну запруй, ведь только команды с ПАРА понятные дела пока. Потому что ты в основной репозитории самого из ПАРА.
Ну, тогда вопрос насколько сложно. То есть если обычный человек с улицы пришел, ты какой-нибудь компонент, ты на лобал, там, типа, насколько это все примится, или будут какие-то припоны, что это автором обязан быть, или как-то запрули на автором должен быть, или еще что-нибудь. Ну, либо, либо непонятно, например, условно, говорят, на для какого у нее сека, ну окей. Да, или там для нация, это довольно булярный, широкая известная штука.
А если я предо из создам компонент, ну я не знаю, для членек такого редкого, я не могу еще спредоединить, для ДНС, вот, придумал. Ну, ты нашел редкую, конечно, программу, и я в мире вообще не найти, как бы. Да, ну, в случае зрения как бы Майкрософта, да, и тех, кто будет это опруйте, это как бы неизвестно редкое хрень. Она может быть сильно полезна там большому количеству народу, но в целом она редкая.
И вот, как бы, ну, и таких наверняка много, да, и это ниже в каких-нибудь очередей, ниже в их там базданных, которые используются полтора, полудра проекциях. Точке зрения каталога плагенов, как бы им наплевать редко, или нередко им чего, зажал, к тем им имени, что ли, там, или трёх, трёх, трёх, трёх, это написание файлика. Ну, мне кажется, это не должно быть проблем. Не знаю, другу, другую еще аспект интересует. Вот, допустим, захотел я туда сделать компонент того же самого сика.
И сделаю его очень, очень плохо. Таким образом, что все пользователи сика через Aspire автоматически будут думать о том, что допустим, сик глючит. К нему не доходят сообщения. Он там мегакривой, мегаклахой, а все только потому, что я сделал для него компонент очень кривой. Она, в самом деле, сик прекрасен и все такое. Ну, то есть, я могу сделать так, что репотационные какие-то издержки того производителя они будут уничтожены. Допустим, сик маленький лодна, вот приду я компонент для AVS сделаю.
Сделаю компонент для AVS не на длижеще, а качество допустим. Вот, как вот это будет контролировать? То есть, когда для кометической программы делают какой-то компонент, когда на кон может быть поставлен на ее имя, там или даже бабки какие-то. Ну вот, не понятно, да, не знаю, не знаю. Причем я вот вижу, что сик с плито-спар хостенько, просто я прямо сейчас смотрю на гитвами, не знаю.
Но, в общем, получается так, что добавить может видимо, кто угодно, дальше, как бы, насколько это отлавливается Microsoft, или остальними, Комьюнити, тут я не знаю. А в том не комьюнити, а как называется это? Авторами этих библиотек, фрэм-ворк, и так далее. Как раз, если вы хотите контрабилит компонент 1S, у вас сейчас отличная разборжность? Да, пока имени не заняли.
Вот, по компонентам есть еще тоже Breaking Change, была была такая конфьюжа, что можно было, когда бы добавлять Redis, Вы можете сказать, что вот этот штук использует Redis, в смысле, что нам нужна серверная у хоста добавить, Эдредис, означало, что нужно поднять Redis как бы контейнер, например. А у проекта, говорилось, добавить Redis, означало, что это нужно добавить, ну, в сути ссылку на многие, Эдредис к лайнеру. Ну, чтобы они друг друга могли работать, соответственно.
Так вот теперь, в все что относится к клиентам, метод теперь называется Эдредис к лайнеру. Если, соответственно, это Breaking Change, в смысле, что extension методы были тупо периминованы, и поэтому, если у вас раньше на билдере вызывался Эдредис, теперь вы должны вызваться Эдредис к лайнеру. Пока не поменять и не скомпилируется.
Эйжер импровменты там, что-то проезжен, проезжен лабриды, добавили, добавили, возможно, с использованием Сишарпобжикт модел, от этого, чтобы оперировать Эйжер ресурсами. Окей, помнишь, я говорил, что в планах, по-моему, два выпуска назад или три, мы говорили, что планов по Google Cloud и AWS нету. Короче, теперь в iOS-сапорт есть. Официально от Microsoft? Не смотрел откуда, честно, скажу. Но это отдельный нугет-пакет, из Пархостинка.OS. Там Cloud Formation поддержан, вот это все дела.
Ну, я сейчас не пойду в Гитхап смотреть от кого это, но есть теперь, короче, OS. Ну, там, может, из Google, а за они не есть, а где же он с кид прибежал там? Кто-то принес. Вот еще тут там, что модель известна, да, вот это она расширяеме, все дела, поэтому написать про Вайдер, почему нет. Если мекросов сказал, что у нас планов нет поддерживать, но в iOS-чёки, может, решили сказать, это мы сами тогда напишем, ну что, логично, да.
Так мы говорили, iOS довольно часто бывает в перейти Microsoft с точки зрения поддержки, всяких-то, дотнотных штук. И последнее, ну, поменялось, собственно, в манифесты, манифестные, напомни, это некоторые текстовые описания. Того, что же вы там на конфигуре ли, вы можете из вашего США, но Кода, Васпайр проект, изгенерить, собственно, там ямлек или Джейсон, описание конфигурации.
Ну вот, я там рассказывал, что добавилось там, возможность настройки докер Билдаргоментов, там, в своле, работа по-другому идёт. Ну вот эти все изменения, как раз были отражены в манифесте, ну, не дополнительно, добавили в активном пункт, там статью. В общем, так, на самом деле, Спайр привью 5 прям хорошо, обновился, много чего поменялось. Вот и посмотрим, посмотрим, что это получится, то есть сколько привьюшек они успеют выпустить, до, до сказать, следующего, до релиза.
И что войдёт в это бы финальный релиз, тут прям интересный. Время ещё много, я думаю, как раз будут, да, усиняй пилить, как вы ещё лет и есть. Ну и так, как команда движется, такими большими шагами, кажется, что все ещё складываются, впечатление, что они там единственные работают. Потому что у нас ещё вышел.net 9 preview 3, то есть очередной preview вообще всей платформы, я думаю, что со всей платформы наскрести изменений и получиться много меньше, чем у нас.
Одна команда из Спайр заделала. Ну, пойдёмте посмотрим, что же у нас такого preview 3 есть. Опять же, никаких паралравных интересных фич нет, все мелкие какие-то оптонизации, это делки при пинки. В общем, пока нас не радует, ни чем, что можно было поставить, как флагмана 9.0. В частности, в Time Span From, добавился интересный вероятметет, если раньше у него был метод Time Span From, который принимает даблозначение в качестве числа.
Я напомню, что Time Span это какой-то промежуток времени. И все промежутки времени лучше указать, как раз таки в Time Spanах, никаких не быть секундах, минутах или ещё в чем-то. И вот, как раз таки, есть у него один перегруз, на перегрузочко, типа один фабличный метод, который создает Time Span из дабла. И этот дабл интерпетировался как целая часть этой были секунды, а дробная часть этой якобы были мили секунды. Но есть небольшая тонкость.
Дело в том, что W это не точное значение. Это некоторые цифры, в нём обозначается приблизительными значениями. Например, если вы задали значение 101.832, то в W такое число представляется приблизженно. У вас создаться W, который будет 101 секунда, и при этом 831 мили секунда, но не просто, а 800.1.9, там вот дальше приблизженные цифры, которые примеры вас приближают.
К тому значению, который якобы просил пользователь. Но позже я вам напередовал 832. И он наделался в гаде-то там в глубине туши, что мили секун будет 832. И этот API он сильно как бы настараживал пользователи, и иногда даже приводил к багам, которыми хорошо в конце концов надаяли, они приняли пол-реквест от старнего разработчика, который сделал нормальную понятную сигнатуру. Когда вы в тайм-спан, в метод FromSeconds, например, явно принёте параметроме, что вы хотите принять.
То есть сейчас вы можете указать первым параметром секунды, это 101, поставить запитую, и как положено нормальный без всяких даблов и прочих глупостей принять ещё одининт это мили секунды. И вот так с помощью двух параметров была решена, это мегапическая бага. Вот такие перегрузки есть не только для FromSeconds, но там и для дней, и для минуты, и это, в принципе, для всего остального тоже есть. Бучу полезные перегрузки.
Из ещё интересного у нас добавился, наконец, персистанта сэмбли билдер. Он является сейчас в данный момент последний комат о сэмбли билдера, то есть там вынесли некоторые методы из эсэмбли билдера, чтобы основной библиотечку не пачкать. А для чего это штука? А штука, с помощью которой вы можете использовать сэмбли билдер, и он может динамический делать генерит сборку в рантаме. Если вы хотите собрать сборку, например написать свой компилетр дотноты языка, почему бы нет.
Вы можете в памяти сделать сборку, за имити динамический какого-нибудь элькода, сделать запускаемый файл, запускаемый файл, сохранить его на диске, у вас получится нормальный экзешник с элькодом, который можно входить и выходить. Для того чтобы делать сборку, необходимо те же самые интерфейсы, которые у нас ещё были большие файл ворки, дефайн динамик модуль, дефайн-тайп, дефай метод, в райт-иль и прочие стандартные тайбилдеры, которые, наверное, всем, кто интересуется тема уже знакомы.
В принципе, требовали довольно-таки давно эту штуку, прямо в самых первых версий дотноткор, как появился, но сделали именно только сейчас.
Каких-то массовых использований, примеров использований, наверное придумать так и получится, ну только если вы действительно там пишите ли свой язык или пытаетесь память из генеритчи там, какой-нибудь не оптимизированный метод или оптимизированный ещё что-то, и при этом вам недостаточно генерации, да, то есть какие-то данные, которые восповелятся только в рантаме, в кампал-тайме вы их не знаете. В общем, может быть, ли таких, для таких каких-то изращённых вещей, и нужно это.
Так, дальше у Дукшили Работус Crate Instance. Да, у нас есть замечательный метод, а ктиватрутилз, в которой есть метод Crate Instance. В общем, этот Crate Instance знаменитен, кроме того, что он очень медленный, он ещё знаменит тем, что он умеет использовать специальный атрибут. В общем, представляете, вас классик, в эту классику есть несколько конструкторов. И на заднем от конструкторов можно повесить специальный атрибут, который называется, активыит, утилитис конструктор.
То есть теоретически подразумевается, что когда вы сделаете активатр Crate Instance, вызовется именно этот конструктор, который помечен атрибута. Надо только в теории. В практике происходило совсем какое-то чудо. То есть мог вызваться не тот конструктор, который помечен атрибутом, а мог вызваться вообще конструктор без атрибута. При соблюдении некоторых условий. Условия первая, у конструктора без атрибута, должно быть больше параметров, чем тот, который помечен атрибутом.
И он должен по порядку находиться ниже после того конструктора, который помечен атрибутом. Вот есть вообще полностью какая-то магия больше, конечно, похожа на багу, что кто-то линку запрос по выбору конструктор, неправильно написал. Вот это поведение исправили. Теперь, если помечен конструктор, специальным атрибутом, то будет вызоваться он и без всяких дурацких, как бы исключений. И его чудо. Сие маленький эфикса ускорило в два раза с создания объекта, с помощью вызов метода Crate Instance.
В общем, всего лишь на всего объекта, которого три конструктора. На микробычмарках он показал воскресненье в два раза. В общем, вот так оптимизирует кот. Люди. Всех с оран-тайм. Тоже не болещит, как бы разнообразие, но зато тут есть такие хорошенькие, хорошенькие, прям оптимизации, хорошие изменения. Ну, во-первых, улучшили, даже не улучшили, а перешли на новый подход к обработке исключений для Core Solar.
И данный переход помог улучшить производительность от 2 до 4 раз. Этот подход, новый подход к исключениям он уже был опробирован в приведующих привью, но вот так как раз в третьем привью его включили по default. То есть, третья привью будет играть на всех исключения на всех сценариях по какому-то новому подходу, который тоже мега-быстрый, мега-хороший и мега совместим с натевого.
А если в другу это приводит каким-то ошибкам, то есть у вас как-то поведение, как-то приложение будет висеться по-другому, можно естественно свеченться обратно, переключиться на старый налег из X App Shunthaler. Другая интересная фича — это специальный онлайнинг для Шарид-женерик методов. Сложно попытаться на это на слово «Хапсадь», но давайте попробуем.
Вообще нужно понимать, что онлайнинг для Рюджета — это самая эффективная оптимизация, которая сейчас есть, поэтому команда Микросов старается всеми возможными средствами найти общие шаблоны, которые используют разработчики для того, чтобы правильно их заинлайнить. И это дает самый большой буст, который только можно себе представить. И вот один из таких шаблонов был недавно поддержен. Этот шаблон интересен тем, что он используется для себя дженерики. Его дженерики не просто была раньше илайнить.
Типичный случай, если у нас вызывает, как у него метод «тест» от «T», то есть дженериковый метод, который внутри себя просто пили, направляет вызов на метод «коли от «T». Типа «T», равен, допустим, «Type of Enta», то есть он сравнивает. Естительно ли нам передали «Инт» или «Недестительно нам передали «Инт»». Во время компиляции такую штуку пропитимизировать сложно, потому что, чем будет равен «T», мы не знаем. Мы это знаем только, когда нас будут вызывать.
И сейчас, этот джид научился такую штуку «Инлайнить», что это значит. Это значит, что все в «Докоде» этот первый метод «тест» он будет равен, он будет теперь вызывать не вложенный метод «коли». А его содержимое в себе вставит. То есть, по сути, если мы вызовем «тест от «Стринги», то есть «тест от страхи». Его будет реализован как «Type of String» равно «Type of Enta».
И это значит, что вот это выражение «Type of String» равно «Type of Enta». В этот момент «Рантэм» его способен вычислить. И он его способен упростить. Таким образом, он этот метод свернет в более простой операцию, что метод «Тест от «Стринги» у нас будет просто возошлить фолс, потому что он знает, что «Type от «Стринги» никогда не будет равен «Type of Enta».
И таким образом, этот «Нлайнинг» в частности может просто заинлайнить и проптимизировать, а иногда он может вычислить значения. И это, естественно, дает самый максимально активизации, то есть он просто возвращает константу. В общем, это тоже довольно часто и служить и на практике реально используется. И что показали там страшные бичмарки, которых микрософ держится лукучим, что действительно во многих кейсах данная оптимизация увеличивает производительность довольно существенно.
В издыха, то есть те инструменты, которые мы пользуемся для билдара, разработки и всего прочего, завезли влогер в консольный, небольшой саму-райзер, который в конце показывает им, сколько количество воргингов было во время билда. Такая мелочную приятная. А изпенет-кор добавил в строго типизированные «Тайп» резалцы. Это когда мы говорим про минимал API, помните там есть «Map Get» и такие вот подобные «Мап» методы, они могут возвращать результат из классика «Tiped Results».
В общем, в этот «Tiped» «Tiped Results» добавили «Internal Server Error», который вы теперь можете также возвращать, если хотите зафиксировать какую-то ошибку внутри вашего приложения. В общем, тоже удобная маленькая мелочь. Немножко улучшились страницу с методанами, страницу, которая называется «Developer Exception Page».
Это страницы, которые вы, наверное, видели, если вдруг под дебагом возникал некое исключение и открывается такая приятная биленькая страничка, в которой вы можете подтикать, посмотреть с «Tectress», посмотреть там какой-нибудь логи, посмотреть какие-то дополнительные информации о вашем запущенном сервисе.
В общем, каким-то образом первый диагностическую информацию получить. Вот вот этой страничке появился дополнительный раздел, который описывает «Endpoint», то есть тут, по сути, «Endpoint» который был вызван. На этом «Endpoint» часто разработчики навешат какие-то вспомогательные атрибуты, описывающие методата. Например, «Produce 3-спон-стайп». Какой-нибудь «Route» могут описать или «Open API» и «Piration» написать как-то подробнее в атрибутах.
В общем, теперь на этой странице все эти методаны, все эти атрибутики они там показаны, чему неровны. Потому что визуально тоже можно быстренько найти ошибку. То есть, если вы добавили вдруг, то да, какой-то неправильный «Route-стайп» или почему-то у вас «Open API» и «Piration» там мог свалиться, то это тоже вам пока же, быстренько в чем могла бы быть проблема.
Ну, для сладки, наверное, в некоторых ситуациях может быть полезно. Пойдем к команде антифриворка. Здесь был добавлен «Auto-compilated Models». Это такой режим антифриворка, который позволяет вам автоматически регенерировать, оптимизировать модель, когда ваша модель меняется. То есть раньше вам нужно было выполнять, перезапускать команду..NET.EF.DB-Context.optimise. Каждый раз после того, как «EF» модель менялась.
В общем, теперь этого делать не нужно. Теперь «EF» такой умный, что он сам понимает, что модель поменялась, надо переоптимизировать. И добавился с недактический сша-сахар вокруг «Hair-Achi ID». Это в MSSQL отличный классик, который умеет представлять архические структуры данных в релиционной таблице. Так вот, у этого «Hair-Achi ID» теперь можно более легко создавать новых челдов в вашей древовидной структуре. В общем, это тоже такой приятный довольно-таки бонусик. Ну вот как-то вот так вот.
По мелочам нас крепли на какой-то привютри. В общем, нельзя сказать, что здесь что-то интересное, большое и важное. Ну пока оптимизируют, добавляют генерят. В основном это, конечно, полу реквеста были от сообщества. То есть, ничего такого глобального микрософа пока свой тренд куда направит девятку нам не показал.
В общем, ну будем надеяться так, как это полу реквеста от сообщества. Будем надеяться, что настоящий разработчики микрософта заняты чем-то большим интересным, что нам, в ближе-ше, время покажут. Да, мне вот все больше и больше. С каждым новым привью мне все больше складывается ощущение, что действительно команда работает чем-то, что пока не показывает. Ну, чем непонятно, но посмотрим.
Может, другая страна непонятно, почему не показывает, ну ты что-то такое страшно. Ты же нет никакой-то коммерческой тайной. А, смотри, может быть, они работают над чем-то условно. Но давай скажем так, вот был эксперимент про Васим, про Гринтерды помнишь? Решили, что делать не будет. Долго эксперимент мы самым начали, так сказать, сезона.9, рассказывали про Васим 2. То есть попытка сделать осеньки на уровне рантайма. Помнишь, надо поддержать их, получше на уровне рантайма.
Да, да, тоже хороший день. То есть, может быть, они сейчас над этим работают. Просто это как бы не надвенители работы и показать, что-то промежуточное, просто невозможно. То есть, нужно как бы переплить по рантайма и таки сделать, чтобы оно заработало. И когда заработает, ух, к Юлю, например, покажут. Не знаю. Сейчас окрасишь, что там дорого полуработи не показывают. Но все же, знаешь, хотелось бы хоть какой-то статейку,
то мы занимаемся, мы думаем, мы туда планируем. Мы, если у вас там есть идеи, допустим, принесите, скажите, тоже было бы неплохо. Потому что уже, блин, 4 месяц половина прошла. То есть, через полгода релиза у нас, как бы, 0 практически на ухвечь.
Ну да, интересно, непонятно. Ну, посмотрим, тем не менее помимо, дотная та обновилась и вижу у студия, причем как-то обновилась тихо без статей до 17.10 preview 3. Там особо больших изменений нету, какие-то улучшения вокруг Капайла-то, добавили штуку под названием Капала-Дженерайд Брикпоинт-Кандишин, то есть теперь, когда вы создаёте Кандишин Брикпоинт, Капайла-Дженерайд Сьугадать, каким условиям вы хотите его создать, смотря на окот вокруг.
Может вы угадываете, выскояли там что-то немножко улучшилось, а если вы открываете какой-то большой солюшенный, поняли, что вам он не нужен, ну не знаю, не на тот солюшин, то теперь можно отменить загрузку солюшина. Там теперь работает, она помнен, не помню была или нет,
а теперь работает кнопка кандсел, при загрузке солюшина. И самое, наверное, интересное, что появилось в preview 3, но что почему-то не попало даже в официальный change-lock, вот с ней ударили из ноутск, как хотите, на сайте Microsoft. Это такая супер-привьюфича, но в видосе к ней я нашел. Это называется, фича называется SLO-Nix, то есть Microsoft подступается к тому, чтобы изменить формат SLO-NF.
Значит, вот это давно пораблено, наконец, ну, сколько можно, лет столько и форматов жасный, тепим, тепим, а все никак. Того, чтобы включить эту фичу, нужно сходить, ну как обычно в настройке, там есть раздел preview features, она называется use SLO-NF, persistent model, вот как бы не догадаешься, что это про другой формат SLO-NF. Нет, ну ты ето подбирать на угад и не должен, то есть документация это ключик наверняка возьмешь.
Дальше, соответственно, ты идешь в, ну как обычно в меню file, да, говоришь, cvs для солюшины, там можно сказать c, можно cvs теперь. И выбрать... Только не говори, что gson. Нет, xml. Слава бога. И выбрать их пункт, который называется xml, солюшин file.
В результате, у вас появляя получать фали, который называется SLO-Nix, и вот в видосике, который я смотрел, там соответственно, солюшин из трех цей спраджей, который в default-ном варианте, солюшин file, ну так, окон вот, всем привыкли, да, к этому странному формату занимает, по-моему, строчек, ну 30 минимум, в xml он занимает ровно 5, на первое открывающе, так потом 3 строчки, значит там условно там. C-sharp pro-adject, и ссылочка на csproch, да, 3 раза по-вторее, и потом закрывающе, так, все.
Больше там нет ничего, никаких там вот этой дебак или дисконфигургации, вот это все сложности, ну, видимо она default, да, она убрана. Понятно, что если ты все там переносторишь, то скорее всего это все как-то появится, но пока этого ничего видео не показали. Это, как они говорят, вэри-вэри-вэри, вэри-вэри, в первую, прям вэри-вэри. Ну, поэтому нам еще из логых вы нет, чтобы бы, как бы раньше времени не радовались.
Да, но при этом написано, типа, а в конце видео сказано, ну, байкрасов точно ждет вашего feedback-пец. Расскажите нам. Вэри-вэри, ну вы сочмите скажите, ну, в смысле Вэри-вэри мы в чинчелок ни в ключем, но вот если вы вам случайно попалась в видео на YouTube, то как бы вы зажарскажите на feedback-проекты. Дело, ну посмотрим, посмотрим. Мне, ну вообще это, конечно, безобразие просто, когда водили новые csproch-file, на которые стали великолепны.
Вспомним, что было раньше, когда мы там перечисляли всеми именно файлов, всеми, которые были только у нас в проекте, они же были ужасны. Опять же, мёржи конфликты вот эти бранчи, это же, блин, вот куча, а то было. И непонятно, почему они не затронули салон-файл, потому что салон-файл ещё ужас не был даже в то время. Да, потому что если там хоть какой-то, XML был хоть как-то, это можно было семантическим мержить и как-то с этим работать.
То есть салон-файл это просто какой-то чудо, который досталось нам из самых первых версий студии. И давно пора, конечно, надо было сделать. Ну вот первый подход сделали, может, глядишь и девятки выпустят нормально. Я чувствую это будет наше самое большая кетерфича девятки. Ну, возможно. А что ещё за релизилась громко сказать, но вышло в привью, и даже не в привью, а в бете версии 0,99 это некая штука под названием PLDrop.DotNet или PLSL.DotNet.
И да, вы, наверное, правильно предположили, что если это PLSL.DotNet, что-нибудь, то это напоминает там всякий PLS Quail. И вот это всё, и это действительно поддержка DotNet в качестве языка хранивых процедур в Позгре. Неправильно сказал, не дут это как языка, дут на этот и не язык, дут на этот платформа. Это не зря, потому что в PLDDotNet, поддержана полностью Сишарп и F-шарп в качестве языка хранивых процедур. Ну, по деле, любой, это, наверное, вижу бессик, то что может затощить.
Ну, наверное, я не уверен, что комплятор просто есть правильный. То есть тут, ну, непонятно, я не осознавал глубоко закапывался, как они там всё это компилируют и так далее, но в целом может быть. Значит, это паблик бетрелиз, то есть он паблик, но он всё-таки бет, а в протпокатащит, наверное, не стоит. При этом он на вид, я не пробовал сам, но по описанию он довольно-таки развесистый. Они поддерживают все, соответственно, плюс-мин, ну, почти все, так скажем.
Апирации для хранимокциями, функции процедуры, феки, тренер, рекорды, аутин, аут, table-function, то есть можно писать всякие, table-veil, function, вот это всё. Они нативно поддерживают 40-46 стандартных ювертайпов в пасгре.
Это штука полностью NPCG, SQL-компатия, было НПГ SQL, напомнит довольно популярный драйвер для пасгре SQL, и, по сути, как я понимаю, это штука просто построена на базе НПГ SQL, то есть они наружу, вставляют тот же интерфей, что это дело, что выставляет НПГ SQL, то есть вы по сути можете всё, что работает через НПГ SQL спокойно использовать с этой штукой, а внутри они перехватывают вызовы НПГ SQL, то есть, что раньше НПГ SQL делал, собственно, через коннекшенка по сгрея, здесь они его делают.
Перехватат громко сказано, там написано соответствующее, прохсяя, так, по которой дело тоже нативный просто вызовы прямо внутри Погри. И всё приказно работает, значит, по их бинчмаркам, СИШАРПИ, ИВШАРП сейчас является наиболее быстрыми языками для написания хранениях просудурного пасгре. Так что если вам нужно производительных хранениях просудуропишите на СИШАРПИ, напоминаю, впрод пока не надо.
А дальше очень забавная фраза, что все фичи, даже в английском, считают, что All Features, а fully tested for both СИШАРПИ, с помощью как-то думаешь, сколько ее нет тестов. Не знаю, 10, но 13, но, по-моему, для всего тысяча, ну, по-моему, спин нормальный слоп, почему не?
Не знаю, ну, когда они говорят, что мы поддерживаем, и там фанкшен просидьер с DOSPI, 3G, RECROSS, SRIF, Audi, now, Table Functions, 40-46 стендерт-юзер-тайпов, на дни-юзер-тайпе мне кажется, легко, 200-300 юнит тестов можно набрать.
И при этом типа All Features, fully tested для двух языков, всего на тысячу юнит тестов, ну не знаю, не знаю, как-то... Посмотрите, я не знаю, что там рядом, все пропасть, перетестировали, ведь у нее же там... у нее есть стандартный способ для того, чтобы подключать языки программировали. Это понятно, да. Скорее всего, там просто этот адаптер перетестировали, да и все. Да, ну все равно, как-то много, нет, ну другой стороны, понятно, что прикольно.
Плюс они я так понимаю, переспользовали как раз юнит теста, изн ПГ-скуэля. То есть у нас же есть теста на НПГ-скуэль, что если вы там не знаете, я создал команду, выполнил Селек, условно говоря, а тебе вернулась тот и тот. А теперь у тебя тот же тест, только он работает уже снутый, позгли. Ну, если ПГ-скею или хватило, значит, ты этой штуки вполне должна ходить. Ну, может быть, может быть. По лицензии это 100% фрисов тверд под позгрёвывой лицензии.
Так, так, так, так, так, НПГ-скуэль, все такое, максимум комбатибирит, и... Да, кроме... Ну, это не микросов, да? Это вот за конченство. Нет, нет, не микросов, это какие-то другие ребята. А, позгрёвый, я так понимаю, где-то вокруг ПГ-скуэль, кроме вот этого перехвата, собственно, вызовок был немодифицирован, и вот они говорят, что... Внутри, позгри, как храневые присудуры.
Ну, прикольно, прикольно. Вот они пишут, что у нас не поддержан, пока мальтеренч и намы, и композит тейбл-тайпс, но мы надеемся, что мы скоро и добавим. Короче, надо последить, я, конечно, не знаю, насколько там много народу будет программировать на дотноиде внутри позгри. Но это интересные, не особенно, если там действительно хорошая презаводительность, хотя, наверное, по старинке, кажется, новой кто-нибудь коле будет просто писать.
Ну, наверное, да, мы программировали, кстати, на дотноиде и под МССКУэль. Я это знаю, что МССКУэль, такая поддержка появилась, сидит на распервах, где-то там, где-то там, в описании. Дотноид 3.5, и он так и был поддержан очень долгое время, там у нас был кусочек кодок, по-моему, три сборки, которые специально компилировались в 3.5. Ради этого, потому что только 3.5 был поддержан на той версии с Коей, на которой мы исполнялись.
Ну вот, и это не такая безумная идея, как может показаться, потому что в дотноиде очень много полезных вещей, тем, что же самое, если криптографию вам нужно встроить, куда-нибудь из хранимых процедур вызывать. Или, например, мы некоторые функции переделывали, не эскелли, функции вызывали, а именно дотноиды функции, например, соединить строку, посчитать хэш еще что-нибудь, потому что на дотноиде это выходило там в тысячу раз быстрее, чем-то уже самое бодягу, на воять на эскелле.
Мы считали хэши, и мы на самом деле на таких вот функциях процедурах писали свои версии о нейроне. То есть мы принимали некоторые объекты, да, и там гораздо проще было написать вот эти все там, если объект присутствует, то, типа, создая новую версию, значит, заинкременте в колоночку версии, да, старую пометь, что она абсолютно, а вот эту теперь пометь, что она последняя, ну, короче, там было некоторое количество нитривальной логики, что можно было сделать.
Еще, типа, скопируй дочерные таблички, чтобы у них был теперь, значит, тоже трессебили, типа, это все, что, в старые значения остались. В общем, там была довольно-да, развесистая логика, вот этого умного версианирования. Ну, то есть, смотри, как как минимум две ниши мы нашли, да, если у вас как-то сложная логика, которую вы почему-то хотите затощить в таблице, и если вам нужен перформат, то даже нативные скиль функции есть смысл попробовать переписать на дотноид.
И это вполне может быть быстрее. Ну, то есть, миша вполне хорошая, опять же, но, при мне нужно забывать, что это хранимые процедуры, и хранить логику в хранимых процедурах все еще плохая практика. Поэтому здесь нужно внимательно соблюсти баланс. Ну да, но начинать интересное последимо, насколько это будет пользоваться хоть какой-нибудь популярностью.
Да, да, приятно, что-то катол за есть, ну то есть, это намного лучше, чем если бы ее не было, потому что иногда, действительно, возникает какие-то случаи, когда надо, что-то сделать, и вот, когда у тебя есть возможность, это прекрасно. Отлично, ну давай дальше. Так, дальше я бы хотел рассмотреть технологию radar. В общем, пока немножко необычно тема в нашем подкасте, потому что технология radar раньше довольно много.
Всего писала продукт на это, в общем, там какие-то лохматые времена, там половину фриворка были продуктные. Но я так понимаю, что компания throw-walks, в которой выпускает этот обсор, этот radar. Она уже отдут на это давно ушла. Но тем не менее, если бы не сосредоточимся, какие-то языковых инструментов, там всегда можно пощернуть чего-то полезного инструмента и интересного. Я предлагаю наернуть и посмотрю, что же такого для нас там может быть полезного.
Если кто не знает, то технологий radar это специальный отчет, которая компания throw-walks, выпускает дважды в год. И она рассказывает про какие-то технологии, платформы, языки, фриворки, которые сейчас или в тренде, или уже давно используется этой компанией, или может быть она, эта компания уже отказывается от них считая какие-то подходы легаси.
И приятно смотреть, потому что компания у них очень большая, она знаменит о том, что там работает маркет, фауэлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл В этой секции собраны инструменты, которые рассказывают о том, какие полезные практики можно было бы в недвесировать в ваших командах. И одна из таких практик, это континюс-комплайнц.
К континюс-комплайнц это как раз такие предложения, предположения о том, что различные регуляторы какие-то правила и секиурети стандарты, смотрите время от времени, это плохая практика. Когда я пришел какой-нибудь секиуретий аудитор раз в год выдал вам какой-то отчет и вы радостные пофиксеры и еще на целый год забыли.
В общем, это не очень правильно, потому что приводит к замедлению разработки, то есть у вас разработчики начинают все-таки после того, как они все дырки пофиксы, они начинают как-бы писать снова эти дырки, они снова появляются. И таким образом вы выносите, опять же, секиуретию, уязвимости ваш код. В общем, это плохо, а потом, когда приходит аудитор, вам приходится напрягать разработчиков для того, чтобы они в эти дырки фиксели. И поэтому получается уменьшение скорости разработки в эти моменты.
И подход как раз континюс-комплайнц подразумевает то, что мы можем подойти к секиуретии всяким аудиторам, как мы подошли к нашим обычным pipelineам, как мы подошли к тестам. И вот так вот, что мы делаем, мы просто на поставь pipeline, заснули специальные инструменты, которые проверяют у нас. Что код хорошо отформатирован, что там соблюдены там все правила анализаторов, что у нас там проходит тесты и так далее и так далее.
То есть для нас доляет весь pipeline, континюс, который не позволяет нам просто залить плохой код. И таким образом мы решаем стандартно вот подобные проблемы. Вот то же самое континюс-комплайнц предлагает делать и для секиуретия аудитов и для регуляторных правил и для прочих стандартов, которые должны соответствовать ваш код. И хорошими входными точками для того, чтобы ваш код сделать более прекрасным, это является поддержка сбома, это софтворбилов-матерелс,
то есть специальные отчоды, которые рассказывают о том, от каких версий и от чего вообще зависит ваша программа обеспечения и сальса это. Supplying Chain Level, OFO, Software, Artifacts. В общем, тоже есть такие два стандартов, в принципе, о них подробнее полном материалом интернете можно почитать. В общем, полезно в вашем коде сделать такой pipeline, который будет, когда что-то поддерживать, генерировать и какими-то тузами следить за их соответствия.
Далее, полезная практика еще одна, это секиуретий чемпионы. Это такая интересная идея, что в команде очень полезно заводить специальных людей, которые интересуются безопасностью, которые могут источки издения хоть техническая безопасность, хоть не техническая, несуть важно, которые очень хорошо понимают все какие-нибудь гайдлайны, которые понимают все секиуретие и рекуаременты, которые могут команда во время разработки изнутри все это доносить.
Почему пороли в открытом виде это плохо? Почему вот HTTP выставляет наружу это плохо? А что теперь хорошо? В общем, все это внутри команды доносить. Тут важно отметить, что это не какая-то отдельная роль, чтобы вы опять это не переслов какой-нибудь девобс или в чем-то в этом духе. Это тоже самый разработчик, который сидит в команде, но просто в сфере интересах входит еще и секиуретий. И есть очень много бракей, как в рождать внутри команды вот таких секиуретий чемпионов.
И что чем они могут помочь команде, тем что они повышают как раз безопасность каждого компонента, который разрабатывает команда, они на ревью будут именно следить за этими аспектами, они будут лекции какие-то внутри команды читать, которые расскажут почему секиуретит хорошо и так далее и так далее. Это тоже отличная практика, в общем, вводить таких секиуретий чемпионов внутри команды, заращивать их или лейть.
Следующая секс, это платформы, что же у нас интересно, если типа платформов. Я выделила несколько инструментов в частности Cloud Events. Мы уже немножко упоминали, а них если вы слушаете наши подкасты, вот тот, тот ищеный гитхабик, который взбудоражил все опытсожь сообщество, когда микрософд заявил, что хочет переписать все мостранзиты, сервис бассы и рэббиты, но на самом деле нет.
Учуток это как раз был проклад Cloud Events. Это спецификация, которая описывает каким образом вы можете описать события, передаваемые между разными обсерезами, платформами и системами, то есть это такой стандарт для передачи событий. Очень давно наши индустрии такого стандарта не хватало, были попытки там еще в сап, в невремена эти стандарты описать, то есть они были они, но они были слишком сложными, как бы не соответствуют со временем, когда хипстер неспособные осилить 10 строчек в XML,
им нужно писать строчек в JSON. И вот это вот стандарт про них. То есть как написать доменные винты, что там должно быть, какие поля, как принимать, как посылать, и кажется, что это очень крутая штука, потому что она как раз способна помирить вот эти все миры,
со всякими кавками, рейбитами, нацами и прочими и винт древин подходами. Как это, наверное, в свое время сделала в TTP, когда же не в TTP, а в РСТПА, как это сделала РСТПА, многие его ругают и мы в том, в чеслев нашем подкасте обсуждали его плюс и минусы,
но нельзя отрицать главного, он вел некий стандарт. Поэтому даже там какой-нибудь самый захудалый сатик, самый захудалый сервис или приложение, соответствующий этому стандарту уже воспринимается как ман небесное, потому что вы можете это сервис вызывать, вы можете каким-то понятными заголовками обмениться, какой-то понятной дитификацию произвести. И вот такого стандарта, как раз, не хватает для обмена сообщениями, и вот Cloud Events кажется, что это именно то, что нам нужно,
это именно такой стандарт. Он настолько прекрасен, что его можно применять даже между сервисами и платформами, а когда минные винты, то есть даже внутри общения одного приложения между своими различными компонентами. В общем, будем следить за стандартами, я думаю, мы еще не раз понево поговорим. И следующий прекрасный инструмент – это полюме. Очень не новый инструмент. В принципе, отличная тула помогает вам
сделать альтернативу террорформу. Она помогает вам определить вашу инфраструктуру как код. И вот это все описывайте на стандартном коде. Самое прекрасное в коде в коде, в том, что этот код может быть на различных языках программирования, в частности на Си-Шарпе. Там такая интересная инфраструктура, когда вы пишете на Си-Шарпе, он все вызовы вашего Си-Шарпа интерпретирует и складывает в целевую платформу.
А целевая платформа может быть практически абсолютно любая. То есть он поддержит все клаут платформы, которые там существуют. Немножко похож на эспар, когда вы на эспаре пишите Си-Шарпный код, а он вам потом выдает или конфигфале для кубернации, или для ВС, или для жура. Вот, в принципе, почти то же самое делает и полюме, но полюме это делает более низко уровня. В общем, тоже классная вещь, надо тоже по нему как-то быть, как-нибудь по-подравнибо говорить.
Еще стоит упомянуть, что Docker Desktop сменил Лицензию, не то, чтобы совсем сейчас, но так как отчет выполнив, выпускается раз полгода, то как раз сейчас мы застали этот момент в этом отчете в радаре. Docker Desktop сменил Лицензию, не очень дружелюбно для коммерческих компаний, поэтому многие компании Docker Desktop подказываются. И как раз автор и советую отказываться в сторону Ранчер Desktopа. Это Open Source, предложение полностью свободное с нормальной Лицензией.
Запускается точно так же на рабочих столах под всеми операционными системами, и практически интерфейсом слабо отличима от Docker Desktopа. Запустить контейненькие, посмотреть логи и, вообще, глянь, что творится в 60 системе с точки зрения контейнеров, в нем точно также визуально красиво можно легко и просто. Следующая секция — это инструменты. И в инструментах, хоть и отметить буруна, мы как раз по-моему, в прошлом подкасте его упоминали.
Это Open Source Desktop альтернатива для Postman и Insomi. Как раз Postman тоже сменил Лицензию, сейчас у нас как бы. Обвальни шквал с Менолицензией с хороших на плохие, но слав богам появляются новые Open Source alternative. И вот как раз бруна — это хорошая Open Source alternative для Postman.
Кратко напомню, что это инструмент для тестирования и отладки API. Но в отличие, например, от всех вот этих новомодных Postman, он не пытается засунуть вас своё облака и не хранить там какие-то свои запросы. Все запросы хранятся локально в вашей файловой системе и прелесть это подхода в том, что вы можете использовать гид. То есть для всех ваших запросов есть все онирования, прончивания, ревью и так далее по списку.
В общем, это мне кажется самое идеальное решение. Хранники всё на файловой системе. Всё остальное сделает стороне инструменты. Ещё из Tools-ов хочется упоминуть это Microsoft с BOM-Tool. Это вот как я раньше говорил про Security Compliance. Полезно нам хранить, то есть полезно генерировать и проверять на соответствии всяким Tools-ов материал. И вот как раз Microsoft выпустила Open Source инструмент, который может генерировать этот формат в частности — SPDX, совместимый формант для СБома.
Он поддерживает различные пакет шмайлежеры, то есть вы можете там и питоновские, то есть человек же проекты проанализировать и пьемовские и много чего ещё. То есть они не заточны, как вы дали один отдельный язык, он все зависимости прекрасно воспринимает. И он может легко быть строй на вашей ACAD pipeline, то есть вот это как раз тот инструмент с помощью которого может попробовать выполнить рекомендации по катению с комплайнцам.
Еще хочется упомянуть, что про ОЛАМУ тоже по-моему в одном из последних выпусках мы обсуждали, что если вы вдруг хотите настроить себе ларч лэнгович модул, какую-нибудь неважно для чего-то, для генерации картина, или для интеллисенс в кодии, или для генерации blaser компонентов, которые как раз были нашим примером прошлым выпуски. И вы не хотите завязываться на какой-то клау, или на какого-то коммерческого права, и вы можете на своих ресурсах организовать подобную систему.
И этому как раз помогает ОЛАМА, это специальный engine, который разворачивается на там девыскажсти хоть на локальной машине, и он поддержит множество популярных моделей, таких моделей там сотни просто. О, это является такой оболочкой над этими моделями, эти модели легко подключаются, и может любую из них использовать за семности от того, сколько у вас там есть свободных памяти и процессора.
Как только вы поставили ОЛАМу, вы к ней можете обращаться с помощью командной строки API, или SDK, для того, что пообщаться каким-то образом с этими моделями, в общем, все доступны с способом там есть. Я выбрал вот один из инструмент, который касается Artificial Intelligence, и Machine Learning, но на самом деле там, наверное уже больше 50%, наверное 70%, это всего технического радара, пистрид в том или в виде аишными всякими обзациями.
То есть там уже пробраться нормальному, хардкордому разработчику без каких-нибудь AI, модели, генерейтет и все, в общем, пробраться по радару уже становится сложно-сложно. Ну, вот некоторые такие инструменты, которые могут быть полезны вам в обычной работе, я все-таки нашел, выцепил, надеюсь, кому-то пригодится. Так, а там еще раньше была секция там, Language, Framework, с там у нас каких-нибудь модных новых, правильных языков? Нет, нет, ничего такого.
Из секс ЛНГ, фреймурс, они остались, но ничего интересного для Сежар, потому что там в основном раз ты go, Python и вот эти прочие вещи. И они, так как это, секс ЛНГ, в основном, нацелены на то, как удобно разработчикам из этих языков, как вы чувствуете себя в этой кассистеме. Ну, нам там, в принципе, делать ничего. Понятно, ну, ладно, хорошо. Посмотрим, может быть какой-нибудь гартнет, про который мы говорили в прошлый раз или еще кто-нибудь пробьется, когда-нибудь от Microsoft туда.
Ну, может быть, может быть, более-то рейдис такой лицензий плохой сделал, так что должен, должен, должен, радар как-нибудь это обозреть. Да, ну давайте, уже, собственно, сегодня будем потихонечку сворачиваться, у нас осталось еще два таких, две таких небольших темки, это во-первых, кратка разным.
Тут хочется рассказать про, смыслей страны, про три новости, новость номера один. Мы много раз говорили за время семерки, и тут на это во-семерки про то, что каноника он активно работает с Microsoft, в том, что для того, чтобы собирать свой собственный дотный, это все из исходников, несколько раз обсуждали, репродьюся был пилз, и вообще как оно все собирается.
Так вот, начинаю с мая-24 года для снапов, то есть это способ, как распространяется дотный афдистрибутивый в канониклом, собирать дотный, это будет сам каноникол. То есть Microsoft больше туда не будет ничего собирать, каноникол сам будет брать из хитнички, все собирать, все такое. Есть единственное, два ограничения. Во-первых, каноникол не собирает, так скажем, пачь версии из дока, то есть, напомню, что первая версия из дока всегда выходит с постик самточку 100, ну или там 100 что-нибудь.
А дальше, сичепачьи, 200 что-нибудь 300 что-нибудь, туда не будут пока по крайней мере попадать, а второй туда не будут попадать на 9 привью, то есть туда пока только стабильни версии, асмерка попадать будет. Ну посмотрим, по крайней мере это некоторый шаг, к тому, чтобы дотный с дока собирался не Microsoft. То есть уже какую-то понятную инварь, это не для этого подготовили, я имею до микрософта, вторую никакая компания могла без зрения своей стабильни, то все собирать.
Напомню, это все живет в репозиторе, дотнед, сложда, дотнед, если правильно помню. Там как раз такие единые системы отборки для всего. Дальше, мы довольно давно не обсуждали все какие планы райдеры решапера, ну там какие-то криментальные изменения, какие-то UI, чего-то фиксит, ну то есть не попадалось просто на глаза и выпуска не попадала, но тут попало статья, вышел яб. Какой-то очередной ябрайдера, и там появилась штука, которая может быть интересная и полезная, это мониторинг-тул.
Если вы когда-нибудь узкали ваш код, вижу у студии, вы видели, что у справа автоматически появляется такое кошчик, где ползет там. Мэморий юзущ вашего приложения, там эти флажки эксэпши, но вставятся от CPU юзущ, можно посмотреть вот такая же штука теперь есть в райдере. Плюс она позволяет с ним шоу досоздавать, которые сразу же откроются в тот момент, но мне надо дотряще. Если вы пользуетесь райдером, то это нужно работать.
Последние третья новость, это MSTSTSDK, несмотря на то, что Units XUnits в целом наверное будет правильно сказать доминирует. Если я помню правильно, просто такой архлотом, что процентов 15-20 было все еще за MSTESTом, хотя может быть я преувеличиваю значимость MSTEST.
Но в общем теперь, есть штука под названием MSTESTSDK, которая позволяет вам гораздо более просто создавать Units тестовые проекты и гораздо проще запускать используя штуку, которая не тоже недавно заинтердиюсили под названием MSTESTRANNER. Это стандаловом приложении, который позволяет просто либо запустить ваши тесты, либо скомплируть ваши тесты в стандаловом приложении.
Если вы все еще почему-то по какой-то причине до сих пор сидите на MSTEST, но мало ли так сложилось. Посмотрите, может быть вы здесь что-то полезное себе найдете. Я могу сказать причина, потому что MSTESTРANNER чуть ли не единственное приложение, которое позволяет писать тесты для НТВАОТА. Для этого есть отдельная статья, то есть у MSTESTР отлично тысячи серует НТВАОТ.
Также он умеет делать код-каваридж для него и там все это делается несколько флажочков, там есть из-за нападежной все не полностью, но... Подожди, а в чем смысл тестирования НТВАОТА? Ну, не на ДВАОТА, ты тестируешь, а код, который компелируется под НТВАОТА, потому что он нативный, у него нет рефлекшно, ты не можешь отбежать там все файлики, чтобы собрать, например, с помощью атрибутов, там какие-нибудь... А, ну типа тесты с клад, да, не может.
Согласен. А плюс ты, наверное, еще, да, я понял, наверное, где еще может быть полезно, потому что в НТВАОТ как известно, у нас там может не работать какой-нибудь тоже рефлекшно, либо еще что-нибудь код-генерация. И это способ проверить, что например, во всех ваших... ну, всех, понятно, может быть не покроете, но в основных ваших путях нет таких фич. Ну, что, приложение 10 на заработать, знаете, фаут?
Да, вот еще интересно, фишка есть в этой стиле НТВАОТА, что если ты за скипал тест, то генерируемый код должен понять, что данные... данном приложении, данный код не тем не используется, да, то есть он используется из НТВАОТА, который за скипал, начал никем не используется, значит, его тренер может заптимизировать и вообще выкинуть из приложения. Вот такие фишки еще может поддерживать. Там много всяких хаков интересники, да, в общем, как бы вот так.
От эксюнита я такой поддержки не слышал, не знаю, насколько она там есть, живая или разрабатывается, ну, разрабатывается она точно, я спрошла года, видела Ишю, но по-моему, Ишю еще открытый, поэтому, обычно сколько там это полно или не полно. На Личи, и вообще, не означает, что она разрабатывается. Ну ладно, пока я меня автора не знают.
Ну да, хорошо. Действительно, надо покопать, насколько нужна какая-то поддержка отдельная НТВАОТА, но в общем, некоторые фишки, которые НТВАОТ передоставляют, действительно нужно специально поддерживать. Но может быть это какая-то блаши, и можно ватись вполне без нее. Окей, но у меня все в этой части. Тогда я еще в брошу один интересный гитхаприппситур, я нашел, который называется JSON-Aryphm. Это замечательная задумка, автор делает различные JSON-натстройки над стандартным системтек-гистоном,
да, который нам выдал микрософт. Чего не хватает стандартным системтек-гистоном? На самом деле очень много. Всего, если мы видим заранки простой силизации, десеризации. Самое главное, что обычно людям не хватает, это JSON схемы. Если вы родом из XML, то вы знаете, что одна из самых крупной крутейших фишей в XML, это была XML-схема. Так вот эти хипсеры в JSON они до сих пор там уже 20 лет не могут никогда говориться о стандатии JSON схемы.
Есть 10 draft в каких-то и примерно к этим draft пытаются присобачить различные инструменты. Ну, в частности, если вам очень сильно припекло и вы готовы использовать все, что угодно лишь бы оно работало, то существует, в принципе, какой-то драф JSON схемы. То есть вы можете вашу JSON-авскую модельку провалегировать на предмет того, что там именно те поля, которые вы ожидаете, именно с такими значениями, именно с таком диапазоне и так далее.
Так каким-то образом провалегировать JSON, которыми вы оперируете. Например, это полезно, когда вы вылигируете контракты между различными приложениями. Если у вас два адутных приложения, вам скорее всего удобнее провалегировать классики, но если вы общаетесь каким-нибудь пайта нам там или еще как у него маркобесию, то там уже просто на просто провалегировать классики вам не получится, вам нужно уже какой-то контракт уже. И вот JSON схема — это отличный притенент на то, чтобы описывать контракты.
И можно его поставить прямо в тестах на вход и на выход вашего приложения, и даже не выпускать те респонцы, которые не словит с JSON схеми, или не выпускать те реквесты, которые JSON схеми также точно не соответствует. В общем, это стандартный способ валегирования объектов, о которой был всегда в XML, и вот называется, более-менее пытается выкоропаться наружу на свет в JSON. Вот это библиотек, как частности его поддерживает. Также она поддерживает JSON Data Generation.
То есть, когда у вас есть схема, это чудо способна с помощью богу саногенерито, да каких-нибудь рандомных данных, очень полезных тестирований, например. Когда у вас есть схема какого-то сервиса, с которого вы должны общаться, но самого этого сервиса нет, он допустим еще не заимфлеменился. Тогда вы цепляете вот этот генератор, бросайте им какой-нибудь стандартный запрос, а он в ответ генерирует стандартный ответ.
Естественно, никакой логически вздраво предложение вы на это не построите, но вот контракты обменуют сервиса, садесилизация, вы уже сможете вполне тестировать. Нежде, пока другая команда такой сервис заимфлеменит. Также, JSON-Puff, то есть это способ выбрать какие-то под элементы JSON. Если кто работал с X-Puff, в XML это оно. То есть вы можете сделать какое-то выражение, который поможет вам достать тот или наиболок из откуда-то не будет, из Ирархии, всего огромного JSON.
JSON-Puff это способ как раз такие упоменты, нами когда мы обсуждали HTTP методы, которые там могут путеть, могут патчить, могут гетьить, постить. В общем, инструмент как раз таки один из немногих, кто умеет по стандартной спецификации патчей, накладывать на объект какие-то изменения. Также есть поддержка JSON-Pointer. Это и универсальный способ указания на какой-то конкретный участок кодов JSON- документе, никуда именно элементы. Есть такая прекрасная штука как JSON-логик.
Это специальный анжен для построения всяких сложных рулов. То есть вы можете сделать правила, правила например для фильтров, правила для каких-нибудь вычислений, для формулов, сервизовать это в JSON, и например расшарить между бакендам и фронтентом, если вам допустим нужно шарить какие-то между ними правила. В общем, для этого существует тоже специальный формат. Еще один из интересных форматов, это JSON и это специальная штука, ближе всего на находится к template.
То есть когда вы задаете с помощью JSON-то play, и с помощью JSON-то задаете некий контекст. А потом говорите вот тебе template, вот тебе контекст, ну как соедини их. И template renderиться с учетом тех данных, которые есть переданную гуливать там контексте. Тоже полезная штука. И также эта библиотека поддержит трансформацию между ямлом и JSON-ом туда и обратно. Что тоже часто бывает довольно полезным.
В общем, такая клёвенька Тлза самая прекрасно, что мне не нравится, это что она не забритает какой-нибудь. Свои JSON-ноды как грешат все остальные. А именно делает это все на поверх системтек JSON-а. Микрасовтовского. И очень хорошо ее соответственно можно вписать практически в вообще существующие своими нае приложение. Так что если вам нужно вдруг делать JSON-ом что-то изращенное и большой, то посмотрите. Наведняка она это уже умеет делать.
Отлично, ну и последнее что хотелось сказать. Я тут что-то меня накопился большим боков подкастов. Я их потихонечку слушаю и должны давно мы чуть ничего не рекомендовали. Тут я прям хочу рекомендовать три подкаста подладки, которые недавно прослушал. Два технических это про rendering-ктикста 3042 и до тывремя 364 в обоих подкастах и гостями был Никита Прокопов. Не без известный автор фирокод, поэтому он кое-что знает про rendering-ктикста.
Ну и тема саме по себе, значит такие когда вы обсуждаете как интернет сломан, это наверное первое что приходит на ум это донтое время и и у Никоды всякие rendering-ктикста. Да, то есть если вы вдруг почему-то не знаете какие интересные штуки там встречаются, послушайте о выпуске это прикольно. А третье это ващение технический и если вам было интересно как это работает стандаб, как все эти шутки пишутся, как это все происходит, 341 выпуск с Денисом Чужим.
Ты между ними вот этот утренний микинг даст, тогда 15 милочек. Да, да, вот с эсцены с микрофоном и когда все смеются или не смеются. Там есть своя теория, свои приколы, свои приемы, довольно полезно познавательный выпуск практически без единственной шутки. Так скажу, вот. Интересная выпуск простанда без единственной шутки. Да, то есть серьезно рассмотрен, как вы довольно много тем вокруг этого дела. Так что если вам интересно, ну как это посмотреть на это с обратной стороны, то же послушайте.
В принципе я так с удовольствием послушаю. Вот примерно все как у тебя тали с подкастами сейчас. Тоже разгребая завал из города Беруси до подлотки, у меня там где-то выпусков 20 есть на послушайте. Осталось там лежить вручить. Да, слушай очень много, да, интересных, но пока перекомендовать в ничё, кроме того, что мы уже сыгрём вам много раз рекомендовали, в общем как, в общем авторов. В общем они до сих пор продолжают писать, продолжают писать хорошо по этому слышу.
Дотнетные подкасты, которые я слушаю, ну или такие, ухалотехнические, они все пока что-то в основном про все какие облакады. И яй, пока там особо тоже прикомендовать ничего. Ну все, на этом тогда будем завершаться. Да, да, давай посмотрим, что мы сегодня все-таки узнали. Узнали, мы что-то мы красавцы не очень торопятся. Это мы знали уже давно, наверное, да, все, оря уже сидим. Пока, пока не имели, нам кажется, что не торопится.
Может быть действительно мы там через день делю видим что-то, wow, но тем не менее пока мы узнали, что выпустился. Дотнет из пара, привью 5, дотнет 9, привью 3, лежил в студии 20, 22, 17, 10, привью 3, больше чисел. Посмотрели, что теперь в полдовискую, или пока ещё в Бетину уже можно писать несю шарпи и фшарпи внутри. Мне кажется, что теперь можно, интересно, можно запекнуть, я спыл скоро. Да, да, и идите фрэмвор. Прямо, сам тебя вызвает. Ну, да, и будет прикольно.
Нет, ну если ты смотри, если ты идите фрэмвор, запихнёшь к базам данных, выставишь по это все через спонеткор, то тебе вообще, как бы, хочется не нужен. Да, прямо в поеду, все так. Чисто, погуба онсер в период. Прикольно. А, да, отлично. А если учитывать, что на шарпи есть возможность запустить любой ВБсмли? Ну, мы смотри, мы изобрели с обуссервисов. Да. И для МДФнкшена. Внутри базы данных. Ну если у тебя нет сервера, но есть базы данных, это же сервер, с продным. Ну, типа того.
Да. Смотрели на техно-наюбилейные, вообще говоря, от 30-й технологий Радар. И немножко помял, что ты поговорили о каких-то... ...однастройщных, так скажем, на востях и небольшой подборка подка, выпуск в подкастов. Все, 11-й первый выпуск. Чуть больше часто, наверное, получится после монтажа, но в целом тоже не ухедлины. Отлично. Пишите в комментарии, заходите к нам ютубчик. Рассказывайте, что вам понравилось, что не понравилось.
Может быть, какие-то интересные темы, что мы пропускаем. Обязательно нам про них расскажите. И мы срочно донесем их общественности. А также рассказывайте друзьям, шаре, репосты. Ну, вы знаете, там колокольчики всякие подписки. Подержите любым подкаст. И до скорой встречи через пару недель. Пока. Да, всем пока.