Valeriy Maslennikov
Valeriy Maslennikov
  • Видео 7
  • Просмотров 15 912
КАК СПРОЕКТИРОВАТЬ ХОРОШИЙ API: 20 ЛУЧШИХ ПРАКТИК
В этом видео обсудим, что же такое проектирование API и зачем оно надо, а потом я поделюсь с вами целой кучей лучших советов по проектированию API, оформленных с хорошими и плохими примерами для наглядности.
Делись в комментах своими советами!
Telegram t.me/geekinsideme
00:27 - Введение
01:20 - О чем мы говорим?
02:00 - Зачем проектировать API
03:11 - Лучшие практики: HTTP Протокол
06:46 - Лучшие практики: Нейминг и URL
11:37 - Лучшие практики: Дизайн API
15:55 - Лучшие практики: Инфраструктура
21:45 - Лучшие практики: Безопасность
27:10 - Outro
Просмотров: 77

Видео

Создаём локального AI помощника в терминал на C# (Phi-3 model на CPU)
Просмотров 1,6 тыс.4 месяца назад
Создаём локального AI помощника себе в терминал, работающего прямо на CPU с помощью новой Phi-3 модели от Microsoft, анонсированной на последнем Microsoft Build 2024. Такая cli tool отлично подходит в качестве помощника как для опытных разработчиков, чтобы вспоминать забытые команды или особенности синтаксиса, так и новичкам, которые хотят изучить возможности терминала. Подписывайтесь на Telegr...
Response Compression в ASP.NET C# - А ЧТО, ТАК МОЖНО БЫЛО?
Просмотров 3,5 тыс.8 месяцев назад
👋🏻 Привет, меня зовут Валера Масленников. Сегодня поговорим о компрессии. Моя телега, там польза и мемасы ➡️ t.me/geekinsideme 0:00 Зачем нужна компрессия? 1:10 Где она должна быть? 2:12 Включаем компрессию 4:28 Security issues 5:25 Настройки компрессии 10:35 Защита от CRIME & BREACH
5 MUST HAVE NuGet для Junior C#
Просмотров 1,2 тыс.8 месяцев назад
👋🏻 Привет, меня зовут Валера Масленников. В этом видео мы рассмотрим топ 5 nuget пакетов, которые я считаю must have для каждого junior разработчика, работающего с .NET. Подписывайтесь на Telegram, я там пишу много всего интересного: ➡️ t.me/geekinsideme Документации по нугетам: System.Text.Json: learn.microsoft.com/ru-ru/dotnet/standard/serialization/system-text-json/overview Json.NET: www.new...
.NET 8 NEW FEATURES: TimeProvider - класс для работы со временем | Часть 2
Просмотров 1,5 тыс.11 месяцев назад
👋 Привет, меня зовут Валера Масленников. В этом видео мы продолжаем рассматривать новые функции, добавленные в 8-й версии .NET. В этом видео мы обсуждаем новые абстракции для работы со временем, среди них: TimeProvider и ITimer. Другие видео о новинках в .NET 8: 1️⃣ Новые метода рандома: ruclips.net/video/LMWTCv0vWYM/видео.html Полезные ссылки: ➡️ Описание новых абстракций от Microsoft: learn.m...
.NET 8 NEW FEATURES: Новый Random и не только! | Часть 1
Просмотров 2,6 тыс.Год назад
Привет, меня зовут Валера Масленников. В этом видео мы начнём рассматривать новые функции, добавленные в 8-й версии .NET. Начнём с долгожданных новых методов класса Random - Shuffle и GetItems, а также обновлениях в классе RandomNumberGenerator. Полезные ссылки: ➡️ Подробнее о Span и его роли в оптимизации работы с памятью в .NET: learn.microsoft.com/ru-ru/dotnet/api/system.span-1?view=net-8.0 ...
Cancellation Token в C# | Как использовать ресурсы сервера оптимально
Просмотров 6 тыс.Год назад
- Учимся прерывать выполнение лишних действий, чтобы не тратить ресурсы - Получаем прирост производительности в пару строк кода - ??? - Profit! Документация по фильтрам: learn.microsoft.com/ru-ru/aspnet/core/mvc/controllers/filters?view=aspnetcore-7.0 Документация по middleware: learn.microsoft.com/ru-ru/aspnet/core/fundamentals/middleware/?view=aspnetcore-7.0 Оглавление: 0:00 Вступление 0:30 C...

Комментарии

  • @firemanhood1526
    @firemanhood1526 27 дней назад

    Я так понимаю, чтобы сделать компрессию на конкретный метод, нужно свою мидлвару делать или такое тоже есть из коробки?

  • @Mr_x_One
    @Mr_x_One Месяц назад

    Интересно. Было бы интересно посмотреть как обучить ее на doc или pdf своей информацией. Например инструкциями и подключить API как на Ollama

  • @Денис-д1у2д
    @Денис-д1у2д Месяц назад

    Супер! А где ссылка на пример в гитхаб?

  • @dimankan
    @dimankan Месяц назад

    Контент збс. Пили ещё

  • @ilyha1801
    @ilyha1801 Месяц назад

    Очень крутая инфа, продолжай в том же духе! Очень полезно и информативно. По . net не так много контента

  • @denysmarkov
    @denysmarkov 2 месяца назад

    0:49 - эм... SOLID? DI? - не не слышал. В чем проблема добычу времени организовать путём получения её значения извне: currentTime просто вынести в параметр метода? Какой-то неудачный пример...

  • @illson4666
    @illson4666 2 месяца назад

    ноготочки огонь

  • @КириллПисарук-э7т
    @КириллПисарук-э7т 2 месяца назад

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

  • @zero-ix3bz
    @zero-ix3bz 2 месяца назад

    Харош. Спасибо за полезную информацию .

  • @orhanaliyev9774
    @orhanaliyev9774 2 месяца назад

    Уменьшил бы еше немного а то все равно чето да разглядеть можно )

  • @steazeYT
    @steazeYT 2 месяца назад

    Отличная подача, спасибо за видео!

  • @ryanlashkevich9615
    @ryanlashkevich9615 2 месяца назад

    Необязательно обрабатывать оба OCE и TCE, TCE является производным от OCE и поэтому достаточно перехватывать OCE, к тому же НЕ всегда TCE будет перехвачен - это ненадежное API. Можете попробовать разобраться в каких случаях так будет происходить, ролик не является исчерпывающим - есть, что еще можно дополнить. Смекаете? - качество контента может быть выше.

  • @nicksqain4359
    @nicksqain4359 2 месяца назад

    Братик, пожалуйста про Aspire ❤

  • @antegros
    @antegros 3 месяца назад

    Только вот .NET 8 даже не доступен в VS2022

  • @denislohachov6117
    @denislohachov6117 3 месяца назад

    Кто-то скажет чем объясняется выбрасыванием ошики, а не каким-то событием?

  • @АртёмАртём-ю4ы
    @АртёмАртём-ю4ы 4 месяца назад

    Ну всё, Валера, огонь)

  • @АнтонВоронов-ы9ц
    @АнтонВоронов-ы9ц 4 месяца назад

    1:48 "Проблема известная давно". Непонятно, как готовился сценарий ролика, но раньше в далеком 2016 году проблема успешно решалась с помощью Microsoft Fakes. Это на те случаи, когда без тестов никак, а вытащить Now в отдельный класс совсем не хочется по неизвестной причине.

  • @ArtemOvchinnikovLive
    @ArtemOvchinnikovLive 4 месяца назад

    Очень крутой материал, спасибо большое) Продолжай в том же духе! ❤

  • @MrMiha336
    @MrMiha336 4 месяца назад

    Все круто, но на телефоне неудобно смотреть, очень мелко

    • @maslennikovvaleriy
      @maslennikovvaleriy 4 месяца назад

      @@MrMiha336 да, косяк, в следующий раз сделаю масштаб нормальный :)

    • @delite378
      @delite378 4 месяца назад

      @@maslennikovvaleriy если честно то даже с ноута и то видно плохо)

    • @maslennikovvaleriy
      @maslennikovvaleriy 4 месяца назад

      @@MrMiha336 блин, купил на свою голову 4к монитор и забыл про масштаб. В следующий раз всё будет больше 😄

    • @orhanaliyev9774
      @orhanaliyev9774 2 месяца назад

      Вы ничо непонимаете ,это для прокачки зрения ,автор и мозг тренит вам и зрение

    • @delite378
      @delite378 2 месяца назад

      @@orhanaliyev9774 ахаххсха

  • @ВладиславБезуглый-ь2к

    Классный материал спасибо большое !=)

  • @alexlo5655
    @alexlo5655 4 месяца назад

    Nichego ne vidno. Should you make you presentation that people can see at least something. Could you reload this once again?

    • @maslennikovvaleriy
      @maslennikovvaleriy 4 месяца назад

      Спасибо за фидбэк, попробовал посмотреть с телефона - и правда ничего не видно 🤷 Подумаю как исправить.

  • @viknsagit
    @viknsagit 4 месяца назад

    Недавно запускал DeepSeek v2 Coder на пк, знает много языков программирования, глянь ради интереса

  • @poseidon1346
    @poseidon1346 6 месяцев назад

    Thank you, it's really useful video 🔥

  • @TheAngpeu
    @TheAngpeu 6 месяцев назад

    Круто! Спасибо за полезную инфу. Хотелось бы увидеть больше видео по рефакторингу и лучшим практикам кода)

  • @speedcuber8037
    @speedcuber8037 7 месяцев назад

    Комбинация сваггер и постман было совершенно неожиданно, жду ваших дальнейших видео. Очень понятно все объясняете, удачи в следующих видео

  • @nrouslan
    @nrouslan 7 месяцев назад

    Ролик хороший, спасибо

  • @headhuntez
    @headhuntez 7 месяцев назад

    а я себе сразу много таких методов наделал public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> elements) => elements.OrderBy(x => new Random().Next()); public static IEnumerable<T> RandomElements<T>(this IEnumerable<T> elements, int count) => elements.Shuffle().Take(count);

  • @АлексейМиллер-щ7ч
    @АлексейМиллер-щ7ч 7 месяцев назад

    лучше на реверс прокси включить компрессию

    • @maslennikovvaleriy
      @maslennikovvaleriy 7 месяцев назад

      100%, если такая возможность есть. Но на практике внутренние сервисы не всегда спрятаны за ним :)

  • @alexlo5655
    @alexlo5655 7 месяцев назад

    Do you have the source code on a GitHub?

  • @Mr43046721
    @Mr43046721 8 месяцев назад

    Подача - бомба)) спасибо за ролики, подписался со второй минуты видоса про CancellationToken

  • @qwert9313
    @qwert9313 8 месяцев назад

    Очень интересно, спасибо

  • @RePti-LoiD
    @RePti-LoiD 8 месяцев назад

    Спасибо огромное! Мучился 2 дня с игрой на юнити. Оказалось, что просто забыл отменить асинхронное чтение с потока в другой сцене..

  • @ashotrustavelyan7498
    @ashotrustavelyan7498 8 месяцев назад

    чаще выпускай видео

  • @kotikovdmitry4274
    @kotikovdmitry4274 8 месяцев назад

    А кастомный способ компрессии не поможет защититься от упомянутых атак? В плане перехват данных не позволит их распаковать и тем самым сделает атаку бесполезной. Или это по-другому работает?

    • @maslennikovvaleriy
      @maslennikovvaleriy 8 месяцев назад

      Хороший вопрос! Ответ получится слишком длинным, так что в телеге расписал в чем суть этих атак и как с ними можно бороться: t.me/geekinsideme/51 🙂

  • @winstochurgle9133
    @winstochurgle9133 8 месяцев назад

    Спасибо за контент, дружище. Такими микро-грейдами улучшаю свой апи

    • @maslennikovvaleriy
      @maslennikovvaleriy 8 месяцев назад

      Скоро сделаю видео с советами по проектированию API :)

    • @speedcuber8037
      @speedcuber8037 7 месяцев назад

      ​@@maslennikovvaleriy Было бы очень отлично а то я только и возвращаю свой доменную модел и не понимаю как нужно правильно строить апи

  • @InverserPro
    @InverserPro 8 месяцев назад

    Реснички не подведены - трудно воспринимать

  • @aleksthomson9457
    @aleksthomson9457 8 месяцев назад

    НАДА БОЛЬШЕ ВИДОСАВ!!! ;)

  • @ЕкатеринаБелая-ж9д
    @ЕкатеринаБелая-ж9д 8 месяцев назад

    Видео с каждым разом все лучше и лучше!

  • @HeIvis
    @HeIvis 8 месяцев назад

    крутая подача, все четко и по делу

  • @HeIvis
    @HeIvis 8 месяцев назад

    ногти супер)

  • @burrito_man2285
    @burrito_man2285 8 месяцев назад

    👍👍👍

  • @handlecom19
    @handlecom19 8 месяцев назад

    Круто спасибо за контент, ждем видео про Span

  • @ВкидимирПодгубенский
    @ВкидимирПодгубенский 9 месяцев назад

    Автомаппер - зло , пишите кастомные мапперы

    • @maslennikovvaleriy
      @maslennikovvaleriy 9 месяцев назад

      Ну или используйте мапперы, которые используют source generation. Mapperly, например, генерирует читаемые мапперы в build time, при чем иногда так хорошо, что получается производительнее, чем написанное своими руками. Пример такого бенчмарка у меня телеге: t.me/geekinsideme/44

    • @ВкидимирПодгубенский
      @ВкидимирПодгубенский 9 месяцев назад

      @@maslennikovvaleriy Компромиссный вариант - согласен . Сам не юзал ещё source generation особо . Вроде даже для эффективного логирования советуют варианты с генерацией . Надо изучать.

    • @shmelvolosatiy
      @shmelvolosatiy 8 месяцев назад

      Поддерживаю, после того как ушел от автомапперов, стало жить намного проще

  • @ЕкатеринаБелая-ж9д
    @ЕкатеринаБелая-ж9д 9 месяцев назад

    Видео супер, классная заставка✨

  • @viknsagit
    @viknsagit 9 месяцев назад

    Расскажи про dotnet aspire, я думаю будет интересное видео

    • @maslennikovvaleriy
      @maslennikovvaleriy 9 месяцев назад

      Годная идея, запишу

    • @viknsagit
      @viknsagit 9 месяцев назад

      Еще можешь рассказать про работу с wsl из ide, но я хз есть ли такая штука в райдере@@maslennikovvaleriy

    • @viknsagit
      @viknsagit 9 месяцев назад

      Решарпер для vs 2022 тоже прикольная вещь

  • @vorontsovru270895
    @vorontsovru270895 9 месяцев назад

    5:43 лучше всё таки использовать не BadRequest (http code 400), а, хоть и не официальный, но более корректный в данном случае ClientClosedRequest (http code 499). Это не является, конечно, ошибкой, или нарушением регламента, однако если используется nginx, то данный момент становится важным.

  • @zalip4129
    @zalip4129 10 месяцев назад

    понятно и доступно объясняешь. продолжай в том же духе

  • @qrthack
    @qrthack 10 месяцев назад

    Привет, у меня такой вопрос, коммерческого опыта нет, знаю C, люблю Computer Science. Хочу в backend, выбираю между Python, Java, C#, Golang что посоветуете, чтобы легче было устроиться на работу, слышал, что Python-программистов уровня Junior слишком много и труднее будет устроиться?

    • @maslennikovvaleriy
      @maslennikovvaleriy 10 месяцев назад

      Привет, С# стал языком года, разве не лучший момент, что выбрать его? 😄 www.tiobe.com/tiobe-index/ А если серьезно, то ответ будет банален до невозможности: выбирайте тот язык, который больше нравится. По сложности найти работу всё +- одинаково. Первые три действительно имеют больше всего вакансий, но тот же python стал чем-то вроде языка по умолчанию для всех курсов, так что количество джуниоров и правда может быль больше, но если научиться кодить, то все равно работа найдется. Golang вроде менее популярен и проектов на нем меньше, но и конкуренция меньше, плюс его последнее время много крупных компаний адаптируют. С# и Java оба годные языки, но с моей перспективы выглядит так, что будущее светлее у С#. Как-нибудь сделаю видео и расскажу почему :)

    • @qrthack
      @qrthack 10 месяцев назад

      @@maslennikovvaleriy спасибо за ответ :)

  • @Юрчик-л8у
    @Юрчик-л8у 10 месяцев назад

    случайно включил ролик и залип ,приятно слушать и смотреть ,и все понятно

    • @maslennikovvaleriy
      @maslennikovvaleriy 10 месяцев назад

      Очень рад, что все понятно. Спасибо за коммент :)

  • @of_youtube
    @of_youtube 10 месяцев назад

    видео делай

    • @maslennikovvaleriy
      @maslennikovvaleriy 10 месяцев назад

      Будет сделано 🫡

    • @of_youtube
      @of_youtube 10 месяцев назад

      @@maslennikovvaleriy Спасибо