Перейти в АйТи
Перейти в АйТи
  • 73
  • 77 803
12-факторное приложение на dotnet: CI/CD - (слишком) много теории и Gitlab
В рамках этого цикла видеоуроков мы напишем свое веб-приложение на C#, которое в целом будет заниматься достаточно банальными вещами - поддерживать какой-то онлайн-форум, где пользователи обмениваются текстовыми сообщениями в различных чатах.
По итогам голосования победил вариант с CI/CD, поэтому давайте попробуем автоматизировать те вещи, которые мы запускаем руками, а заодно обсудим, что это вообще за зверь такой CI/CD и зачем он вообще нужен.
Сам у себя буду хлеб отбирать, потому что у меня целый курс есть по DevOps инструментам для разработчиков (slurm.io/devops-tools-to-dev), но все к тому шло :)
Начнем с самого простого - и популярного - Gitlab. Но на этом не остановимся, в дальнейшем потрогаем и GHA, и может даже TeamCity. Свое писать не будем, и не просите!!!
Пререквизиты (что полезно знать прежде чем подключаться):
- Посмотреть первое видео!
- Что такое клиент-серверные приложения
- Что такое ООП
- Что такое C# (но не обязательно)
- Как пользоваться гитом
Категорически приглашаем не только дотнетчиков, но и прочих причастных - включая фронтендеров. Очень полезно иметь хотя бы какое-то представление о том, как живут ваши коллеги :)
Ссылка на репозиторий:
github.com/quilin/netcore-12fa-demo
Документация и how-to про EntityFramework:
learn.microsoft.com/en-us/aspnet/entity-framework
12 factor app:
12factor.net/ru/
Интересуетесь работой в АйТи или просто хотите освоить программирование? Подписывайтесь на наш канал!
Обсудить: t.me/pereiti_v_aiti
Мероприятия: meetup.com/перейти-в-айти
Телеграм: t.me/pereiti_v_aiti
Переглядів: 545

Відео

Введение в Vue: Маршрутизация
Переглядів 346Рік тому
Введение в Vue: Маршрутизация
Профессиональное развитие в IT: используем возможности компании по максимуму
Переглядів 3192 роки тому
Профессиональное развитие в IT: используем возможности компании по максимуму
С новым 2022 годом!
Переглядів 2342 роки тому
С новым 2022 годом!
Живая Разработка c Алексеем Колосовым. #01. Разработка бота для Телеграмм на Go, ч. 1
Переглядів 1412 роки тому
Живая Разработка c Алексеем Колосовым. #01. Разработка бота для Телеграмм на Go, ч. 1
Решаем алгоритмические задачи с Артёмом Мурадовым!
Переглядів 2482 роки тому
Решаем алгоритмические задачи с Артёмом Мурадовым!
Как начинающему разработчику быстро подтянуть английский - советы от Юлии Чухвичевой
Переглядів 6072 роки тому
Как начинающему разработчику быстро подтянуть английский - советы от Юлии Чухвичевой
Введение в Линукс от Алексея Колосова
Переглядів 1862 роки тому
Введение в Линукс от Алексея Колосова
Code Style: что такое и зачем следовать
Переглядів 1812 роки тому
Code Style: что такое и зачем следовать
Решаем алгоритмические задачки с Всеволодом Севостьяновым [17.09.2021]
Переглядів 1042 роки тому
Решаем алгоритмические задачки с Всеволодом Севостьяновым [17.09.2021]
Решаем алгоритмические задачи с Дмитрием Астанковым!
Переглядів 2633 роки тому
Решаем алгоритмические задачи с Дмитрием Астанковым!
Добро пожаловать на канал "Перейти в АйТи"
Переглядів 6554 роки тому
Добро пожаловать на канал "Перейти в АйТи"
Встреча участников проекта "Перейти в Айти" 19.03.2020
Переглядів 2464 роки тому
Встреча участников проекта "Перейти в Айти" 19.03.2020
Требования к программисту Java в Европе. Что должен знать Java Developer в Евросоюзе?
Переглядів 5254 роки тому
Требования к программисту Java в Европе. Что должен знать Java Developer в Евросоюзе?
Как подготовиться к собеседованию начинающему программисту. Что важно для Junior Developer?
Переглядів 4384 роки тому
Как подготовиться к собеседованию начинающему программисту. Что важно для Junior Developer?
Что должен знать Python Developer? Самые востребованные навыки.
Переглядів 7814 роки тому
Что должен знать Python Developer? Самые востребованные навыки.
Build and Run Grafana's Simple JSON Backend Datasource
Переглядів 14 тис.4 роки тому
Build and Run Grafana's Simple JSON Backend Datasource
Туториал по Angular с комментариями, часть I
Переглядів 1024 роки тому
Туториал по Angular с комментариями, часть I
Что должен знать Junior Java Developer? Самые востребованные навыки.
Переглядів 1,3 тис.4 роки тому
Что должен знать Junior Java Developer? Самые востребованные навыки.
Перейти в Айти: как, когда, зачем. Первое видео проекта.
Переглядів 2594 роки тому
Перейти в Айти: как, когда, зачем. Первое видео проекта.
NC=2 RF=3: What happens if I set a keyspace with replication factor of 3 on a cluster of two nodes?
Переглядів 885 років тому
NC=2 RF=3: What happens if I set a keyspace with replication factor of 3 on a cluster of two nodes?
Cassandra Application Development with Java Workshop: Accessors
Переглядів 365 років тому
Cassandra Application Development with Java Workshop: Accessors
Cassandra Application Development with Java Workshop: Prepared Statements
Переглядів 1975 років тому
Cassandra Application Development with Java Workshop: Prepared Statements
Core Cassandra Workshop: Data Availability
Переглядів 415 років тому
Core Cassandra Workshop: Data Availability
Core Cassandra Workshop: Data Loading
Переглядів 1645 років тому
Core Cassandra Workshop: Data Loading
Установка и запуск Apache Cassandra v4 до релиза
Переглядів 3785 років тому
Установка и запуск Apache Cassandra v4 до релиза

КОМЕНТАРІ

  • @XXIMillenium
    @XXIMillenium 28 днів тому

    Поднимаемые темы сложны для понимания, при этом подача материала слишком быстрая и хаотичная. Настолько, что автор сам путается и еще больше путает зрителя. Так же обычно спикеры увеличивают окно где печатают код, плохо видно, особенно при 720p.

  • @gritsruslan
    @gritsruslan Місяць тому

    Зачем вы пишете пустую команду и пустой валидатор для когда signout ?

  • @gritsruslan
    @gritsruslan Місяць тому

    Подскажите, в 59:00 вы добавляете в базу новый Storage.Topic, запрашиваете его из базы, мапите к Domain.Topic и возвращаете. Почему нельзя сразу смапить уже созданый Storage.Topic в Domain.Topic и вернуть его, не делая запрос в бд для поиска?

  • @Gal_larate
    @Gal_larate Місяць тому

    видос интересный, но смотреть на код в шакальном качестве - очень сложно

    • @Gal_larate
      @Gal_larate Місяць тому

      шакальное качество видео, а не кода)

    • @vquilin
      @vquilin Місяць тому

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

  • @antoniusupov
    @antoniusupov 2 місяці тому

    Привет! Очень интересно тебя слушать. Как раз очень актуально для меня - новая работа, где придется больше девопсить, нежели в бигтех кормушке. Продолжай в том же духе! Где твои стримы проходят?

    • @user-wd4hl6pv3c
      @user-wd4hl6pv3c 2 місяці тому

      Спасибо, очень приятно, и за вас рады! Все стримы прямо тут, на ютубе. Обычно по четвергам, но не всегда получается стабильно их проводить :)

  • @antoniusupov
    @antoniusupov 2 місяці тому

    Привет! Очень интересно тебя слушать. Как раз очень актуально для меня - новая работа, где придется больше девопсить, нежели в бигтех кормушке. Продолжай в том же духе!

  • @freyatales9996
    @freyatales9996 2 місяці тому

  • @sashaLaPerla
    @sashaLaPerla 2 місяці тому

    Кайф!

  • @user-wd4hl6pv3c
    @user-wd4hl6pv3c 2 місяці тому

    Извиняемся за проблемы с микрофоном, видео начинается с 0:01:18 по этой причине :D

  • @nikys9075
    @nikys9075 2 місяці тому

    Спасибо за труды, обязательно пересмотрю

  • @kervenjumayev4931
    @kervenjumayev4931 3 місяці тому

    Очень полезно, спасибо!

  • @ДмитрийГанзюк
    @ДмитрийГанзюк 3 місяці тому

    Только начал смотреть,подскажите в этом курсе будем микросервисная архитектура?

    • @user-wd4hl6pv3c
      @user-wd4hl6pv3c 2 місяці тому

      Извиняюсь за долгий ответ! Да, будет, в какой-то форме. Это все-таки цикл скорее о том как проектировать приложения, готовые к микросервисной архитектуре, но сам домен мало располагает к ней :)

  • @EuegenTv
    @EuegenTv 4 місяці тому

    Супер ;) Так держать ;)

  • @timur2887
    @timur2887 4 місяці тому

    Любопытно, почему ограничения на дженерик типы именно struct?

  • @user-lu7mm8bw1m
    @user-lu7mm8bw1m 4 місяці тому

    Привет спасибо за контент, будешь ли делать чат? Хотелось бы увидеть как ты работаешь в веб-сокетами!

    • @user-wd4hl6pv3c
      @user-wd4hl6pv3c 4 місяці тому

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

    • @anton-kharchenko-job
      @anton-kharchenko-job 4 місяці тому

      ​@@user-wd4hl6pv3cПривет, спасибо за контент. Будет ли в проект добавлен кэш? По типу Redis or Memcached?

    • @nouchance
      @nouchance 4 місяці тому

      @@user-wd4hl6pv3c Спасибо брат!

  • @tetra_Pako
    @tetra_Pako 4 місяці тому

    Здравствуйте, будете ли вы продолжать трансляции?

    • @user-wd4hl6pv3c
      @user-wd4hl6pv3c 4 місяці тому

      Еще как будем! Вот уже завтра :D

  • @AEF23C20
    @AEF23C20 5 місяців тому

    о боже уже 100 мультов строк не могут организовать без десяти никому не нужных прокладок это пипец...

  • @user-dk6xt7wf5m
    @user-dk6xt7wf5m 5 місяців тому

    что со звуком ?

  • @fedorovnikolay8033
    @fedorovnikolay8033 6 місяців тому

    Спасибо!

  • @montecristo31
    @montecristo31 6 місяців тому

    Спасибо большое !💗

  • @xtargetplus
    @xtargetplus 7 місяців тому

    Ждем продолжение)

  • @AlexandrSpirit
    @AlexandrSpirit 8 місяців тому

    Можете записать видео о асинхронном взаимодействии rest API (например на http или FastApi) как getaway и микросервисов. Когда требуется вернуть обработанный в 1+ микросервисах сообщение, конкретному запросу на роутере.

    • @user-wd4hl6pv3c
      @user-wd4hl6pv3c 8 місяців тому

      Можно подумать на эту тему, но если честно пока нет возможности. Как закончим со стримами по дотнету, попробуем вернуться к теме.

  • @fresh_wind87
    @fresh_wind87 9 місяців тому

    Жаль что си шарп, Python мой

    • @user-wd4hl6pv3c
      @user-wd4hl6pv3c 9 місяців тому

      Ну на питоне все плюс-минус то же самое, только дока по aiopika похуже, имхо. Но может когда-нибудь и созреем повторить на питоне (когда автор выучит питон, хехе).

  • @AlexandrSpirit
    @AlexandrSpirit 10 місяців тому

    Для обратной связи Вопрос-Ответ, почему не использовать Correlation_ID ?

    • @user-wd4hl6pv3c
      @user-wd4hl6pv3c 10 місяців тому

      RPC в RMQ предполагает использование токена корреляции, действительно. В тех примерах, о которых я говорил, обратная связь не нужна, поскольку они асинхронные по своей природе, и поэтому нам и не было это нужно. Кейсы где RMQ заменяет собой более традиционные транспорты, типа HTTP или gRPC я не рассматривал, да и в целом скептически к ним отношусь.

    • @AlexandrSpirit
      @AlexandrSpirit 10 місяців тому

      @@user-wd4hl6pv3c но кейс с функционалом поисковика, разве не работает по связи вопрос-ответ? Т. Е. Вопрос от продюсера консюмеру: дай мне данные по параметру. Далее, как мне кажется, они меняются местами. Продюсер возвращает результат консюмеру (который до этого был продюсером). И тут мне непонятно, как консюмер узнает какой канал слушать? Ведь когда он создавал канал для отправки ответа, консюмер его получил и канал закрылся. Может нужно каждый раз создавать уникальный канал с именем uuid4, по которому сервису придёт запрос. Затем сервис создаст такой же для отправки ответа... Вот это мне непонятно...

  • @AlexandrSpirit
    @AlexandrSpirit 10 місяців тому

    Немного не разобрался в примерах Жаль не на пайтоне

    • @user-wd4hl6pv3c
      @user-wd4hl6pv3c 10 місяців тому

      Можете зайти к нам в чат и задать там любые вопросы, вам обязательно помогут :)

    • @Kopeuko
      @Kopeuko 5 місяців тому

      @@user-wd4hl6pv3c странное происходит с вашим "чатом". Вроде только зашел, пишу вопрос, но меня выкидывает и и пишет "группа недоступна"

  • @ShymkoDmytro
    @ShymkoDmytro 11 місяців тому

    Владислав, все круто. Но очень тихий звук

    • @vquilin
      @vquilin 11 місяців тому

      Спасибо за комментарий! Для новых выпусков я специально прикупил себе хороший микрофон, так что со звуком должно быть все плюс-минус хорошо в дальнейшем :)

  • @АндрейГорохов-ы9ю
    @АндрейГорохов-ы9ю 11 місяців тому

    Спасибо, продолжайте

  • @user-kz7fh9js3z
    @user-kz7fh9js3z 11 місяців тому

    Прекрасная подача материала. Автор большой молодец!

  • @eddypartey1075
    @eddypartey1075 11 місяців тому

    Спасибо, Владислав, дал отправную точку в понимании кролика)

  • @expecto_patrronum
    @expecto_patrronum Рік тому

    Так то Рэбит это глава мафии из сериала Банши

    • @homelander973
      @homelander973 10 місяців тому

      Где Энтони Старр?

  • @qrthack
    @qrthack Рік тому

    привет, что посоветуешь начинающему, стоит ли изучать c# для бэкэнда? сейчас выбираю между шарпами, го и джавой

    • @vquilin
      @vquilin Рік тому

      Я конечно буду рекомендовать шарпы, но я предвзят :) Джава тоже ничего, как платформа, но язык, на мой взгляд, так себе. Но к счастью у них есть котлин.

  • @catdog_ussr317
    @catdog_ussr317 Рік тому

    Спасибо большое!

  • @catdog_ussr317
    @catdog_ussr317 Рік тому

    Спасибо! Супер формат курса. Спокойно, доступно, последовательно! Ждём продолжения!

  • @vquilin
    @vquilin Рік тому

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

    • @MZ-rn1kf
      @MZ-rn1kf Рік тому

      Все ок. Продолжай!

    • @ShymkoDmytro
      @ShymkoDmytro 11 місяців тому

      Конечно, это тоже нужно.

  • @Enigma-mv6ss
    @Enigma-mv6ss Рік тому

    Еще вопросы ,у меня в domain хранится модель для бд и дто а для бизнес логики слой service где я из repository получаю модель парсю на dto и отдаю к api , получается у меня domain это где просто хранится модели на сколько это хорошо?

    • @vquilin
      @vquilin Рік тому

      У нас пока очень простой домен, так что в каких-то случаях он действительно "тупой". Чем дальше, тем больше в нем будет логики. Но не забывайте, что помимо моделей у нас в домене еще и юзкейсы находятся. И они бывают довольно сложными. Если бы домен больше к этому располагал, то можно было бы писать вообще в стиле DDD, но я в этом цикле хотел сфокусироваться только на "чистой архитектуре" и периферии, которая необходима для удобной эксплуатации.

  • @Enigma-mv6ss
    @Enigma-mv6ss Рік тому

    У storage есть модели для бд , у domain модели и у API модели, думал нужно всего ли лишь 2 модели это для бд и для api 🤔

    • @vquilin
      @vquilin Рік тому

      Как правило, каждому адаптеру нужны свои модели. Иначе ваши адаптеры начинают друг о друге знать (чтобы конвертировать модели друг друга туда-сюда). В первых видео я еще вольготно обращаюсь с этим, но к пятому видео у меня уже все полностью отгорожено :)

    • @vquilin
      @vquilin Рік тому

      И спасибо за ваши комментарии и вопросы!

  • @Колобуд
    @Колобуд Рік тому

    Вооот...

  • @MaryJane0801
    @MaryJane0801 Рік тому

    А если я проджект менеджер, кого я могу удивить? 😅

    • @vquilin
      @vquilin Рік тому

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

    • @halforhalf-fo4fe
      @halforhalf-fo4fe 8 місяців тому

      удиви отсутствием микроменеджмента)

  • @vquilin
    @vquilin Рік тому

    Обозвал OIDC - OICD. Извиняюсь :)

  • @exsey4010
    @exsey4010 Рік тому

    Очень надеюсь что Вы в скорейшем времени сделаете стрим продолжение, спасибо вам

    • @user-wd4hl6pv3c
      @user-wd4hl6pv3c Рік тому

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

    • @exsey4010
      @exsey4010 Рік тому

      @@user-wd4hl6pv3c правда? А где могу его найти?

  • @topalek
    @topalek Рік тому

    Огонь!!!

  • @АндрейГорохов-ы9ю

    Докладчику большой респект, все понятно. Спасибо!

  • @KimarTV
    @KimarTV Рік тому

    А где прошлые видео по vue?

  • @developmentapp
    @developmentapp Рік тому

    Прекрасная подача материала! Спасибо.

  • @bankai7654
    @bankai7654 Рік тому

    Спасибо за видео, всё понятно, на пальцах)

  • @anonym1548
    @anonym1548 Рік тому

    Спасибо. Полезно. Жаль только нет репозитория, чтобы код глянуть в виде текста.

    • @vquilin
      @vquilin Рік тому

      Упс, это косяк. Я попробую на днях выложить, если сорцы сохранились.

    • @andreyromanenko7942
      @andreyromanenko7942 Рік тому

      @@vquilin здраствуйте, сорцы не сохранились? А то хотел видео с ними посмотреть. Спасибо :)

    • @vquilin
      @vquilin Рік тому

      @@andreyromanenko7942 Мне очень жаль, но исходники потерял. Если что, мы делаем целый новый цикл видео, где в том числе работаем и с RabbitMQ на более "живом" проекте - ua-cam.com/video/x_CBZ4xMlm0/v-deo.html Там репозиторий сразу предусмотрен :)

  • @user-gl8kl6bq6l
    @user-gl8kl6bq6l Рік тому

    👍

  • @SystemEducation
    @SystemEducation Рік тому

    Классно. Спасибо за рассказ. Мы разбирались с Rabbit MQ с точки зрения аналитика, вот ua-cam.com/video/64v2tP3JVRU/v-deo.html

  • @Igor_UA
    @Igor_UA Рік тому

    return hours < 24 %% minutes < 60 && seconds < 60