- 73
- 82 848
Перейти в АйТи
Russia
เข้าร่วมเมื่อ 11 เม.ย. 2019
Привет! Добро пожаловать на канал "Перейти в АйТи", это канал для тех, кто интересуется работой в сфере программирования и информационных технологий.
Мне часто задают вопросы о программировании и работе в этой отрасли. Я в IT уже 15 лет, работал в России, Европе, был программистом, инженером Development Operations, тимлидом, сейчас работаю тренером в американской компании. Попробовал очень многое в АйТи и есть что рассказать. Публикую разные материалы: воркшопы, туториалы, интервью с другими экспертами в программировании и разработке, как российскими, так и зарубежными.
Здесь вы узнаете:
1. Зачем и как переходить в АйТи: выбор специальности, учеба, поиск работы и процесс трудоустройства, зарплаты и условия работы
2. Обзоры специальностей и направлений АйТи и программирования
3. Много другой полезной информации
Хотите Перейти АйТи? Подписывайтесь на наш канал!
Канал в Телеграм: t.me/we_go_to_IT
Обсудить или задать вопрос: t.me/joinchat/EjiiAEkFLqNV2940Iw1nKg
Мне часто задают вопросы о программировании и работе в этой отрасли. Я в IT уже 15 лет, работал в России, Европе, был программистом, инженером Development Operations, тимлидом, сейчас работаю тренером в американской компании. Попробовал очень многое в АйТи и есть что рассказать. Публикую разные материалы: воркшопы, туториалы, интервью с другими экспертами в программировании и разработке, как российскими, так и зарубежными.
Здесь вы узнаете:
1. Зачем и как переходить в АйТи: выбор специальности, учеба, поиск работы и процесс трудоустройства, зарплаты и условия работы
2. Обзоры специальностей и направлений АйТи и программирования
3. Много другой полезной информации
Хотите Перейти АйТи? Подписывайтесь на наш канал!
Канал в Телеграм: t.me/we_go_to_IT
Обсудить или задать вопрос: t.me/joinchat/EjiiAEkFLqNV2940Iw1nKg
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
По итогам голосования победил вариант с 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
มุมมอง: 605
วีดีโอ
Профессиональное развитие в IT: используем возможности компании по максимуму
มุมมอง 3272 ปีที่แล้ว
Профессиональное развитие в IT: используем возможности компании по максимуму
Живая Разработка c Алексеем Колосовым. #01. Разработка бота для Телеграмм на Go, ч. 1
มุมมอง 1513 ปีที่แล้ว
Живая Разработка c Алексеем Колосовым. #01. Разработка бота для Телеграмм на Go, ч. 1
Решаем алгоритмические задачи с Артёмом Мурадовым!
มุมมอง 2553 ปีที่แล้ว
Решаем алгоритмические задачи с Артёмом Мурадовым!
Как начинающему разработчику быстро подтянуть английский - советы от Юлии Чухвичевой
มุมมอง 6153 ปีที่แล้ว
Как начинающему разработчику быстро подтянуть английский - советы от Юлии Чухвичевой
Code Style: что такое и зачем следовать
มุมมอง 1933 ปีที่แล้ว
Code Style: что такое и зачем следовать
Решаем алгоритмические задачки с Всеволодом Севостьяновым [17.09.2021]
มุมมอง 1053 ปีที่แล้ว
Решаем алгоритмические задачки с Всеволодом Севостьяновым [17.09.2021]
Решаем алгоритмические задачи с Дмитрием Астанковым!
มุมมอง 2743 ปีที่แล้ว
Решаем алгоритмические задачи с Дмитрием Астанковым!
Добро пожаловать на канал "Перейти в АйТи"
มุมมอง 6834 ปีที่แล้ว
Добро пожаловать на канал "Перейти в АйТи"
Встреча участников проекта "Перейти в Айти" 19.03.2020
มุมมอง 2524 ปีที่แล้ว
Встреча участников проекта "Перейти в Айти" 19.03.2020
Требования к программисту Java в Европе. Что должен знать Java Developer в Евросоюзе?
มุมมอง 5304 ปีที่แล้ว
Требования к программисту Java в Европе. Что должен знать Java Developer в Евросоюзе?
Как подготовиться к собеседованию начинающему программисту. Что важно для Junior Developer?
มุมมอง 4484 ปีที่แล้ว
Как подготовиться к собеседованию начинающему программисту. Что важно для Junior Developer?
Что должен знать Python Developer? Самые востребованные навыки.
มุมมอง 7894 ปีที่แล้ว
Что должен знать Python Developer? Самые востребованные навыки.
Build and Run Grafana's Simple JSON Backend Datasource
มุมมอง 14K4 ปีที่แล้ว
Build and Run Grafana's Simple JSON Backend Datasource
Туториал по Angular с комментариями, часть I
มุมมอง 1024 ปีที่แล้ว
Туториал по Angular с комментариями, часть I
Что должен знать Junior Java Developer? Самые востребованные навыки.
มุมมอง 1.3K4 ปีที่แล้ว
Что должен знать Junior Java Developer? Самые востребованные навыки.
Перейти в Айти: как, когда, зачем. Первое видео проекта.
มุมมอง 2635 ปีที่แล้ว
Перейти в Айти: как, когда, зачем. Первое видео проекта.
NC=2 RF=3: What happens if I set a keyspace with replication factor of 3 on a cluster of two nodes?
มุมมอง 915 ปีที่แล้ว
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
มุมมอง 1995 ปีที่แล้ว
Cassandra Application Development with Java Workshop: Prepared Statements
Core Cassandra Workshop: Data Availability
มุมมอง 435 ปีที่แล้ว
Core Cassandra Workshop: Data Availability
Установка и запуск Apache Cassandra v4 до релиза
มุมมอง 4135 ปีที่แล้ว
Установка и запуск Apache Cassandra v4 до релиза
Очень интерессно и актуально! Приятно удивился Rider так как сам на нем сейчас )) привет с дождливой Баварии
Здравствуйте, в где на канале есть видео про RabbitMQ?
Я наверно не очень интроверт 😅 ну все равно волнение есть каждый раз 😏
Единственный серьёзный канал про айти 😎 где как то все по взрослому 😎
Из консоли миграция добавляется такой командой: "dotnet ef migrations add Initial --project TFA.Storage/TFA.Storage.csproj --startup-project TFA.API/TFA.API.csproj" Пути не забудьте правильные поставить
Это что за ide?
JetBrains Rider
Поднимаемые темы сложны для понимания, при этом подача материала слишком быстрая и хаотичная. Настолько, что автор сам путается и еще больше путает зрителя. Так же обычно спикеры увеличивают окно где печатают код, плохо видно, особенно при 720p.
В целом весь цикл предполагает кое-какой базовый уровень зрителя, чтобы он не путался в этих сложных темах. Скажем так, не для джунов :) Если подскажете, где я запутался и что-то непонятно/плохо рассказал, то я с удовольствием поправлюсь/попробую уточнить. Окно увеличено, тут приходится искать какую-то золотую середину между мелким шрифтом и тем, чтобы код помещался в экран - все-таки не хелловорлд пишем. Однако вы всегда можете посмотреть исходный в репозитории!
Зачем вы пишете пустую команду и пустой валидатор для когда signout ?
Чтобы поддерживать единообразие кода. Сегодня это пустая команда, завтра уже нет. Но также в случае с MediatR вам все равно необходима команда - вы диспатчите какое-то событие, которое будет обработано соответствующим хендлером. В других случаях даже пустая команда будет указывать на тип возвращаемого значения (например, GetCurrentUserQuery : IRequest<MyAmazingUserModel>). Что касается валидатора, то мною было принято судьбоносное решение экстренно падать, если валидатор для команды не зарегистрирован, чтобы гарантированно избежать ситуации, когда кто-то забыл добавить валидатор для команды и теперь любая команда считается валидной. Таким образом, даже для пустых команд приходится добавлять пустой валидатор. Это не обязательно делать так, и, конечно, вы вольны считать команду без валидатора валидной по умолчанию, но я стараюсь поддерживать энтерпрайзные политики zero-trust :D
Подскажите, в 59:00 вы добавляете в базу новый Storage.Topic, запрашиваете его из базы, мапите к Domain.Topic и возвращаете. Почему нельзя сразу смапить уже созданый Storage.Topic в Domain.Topic и вернуть его, не делая запрос в бд для поиска?
Так тоже можно! Но есть нюансы: 1. Сегодня мы создаем идентификатор топика на сервере, а завтра захотим, чтобы этим занималась БД, вместе с проставлением CreatedAt/UpdatedAt. В случае с идентификатором, если мне не изменяет память, подход маппинга созданного энтри продолжит работать, но вот с остальными значениями я уже не уверен. Проверю! 2. Сегодня доменная модель вот такая элементарная, а завтра окажется, что ей требуются дополнительные данные, которые нужно доставать через всякие JOIN операторы итп. Например, нужно не просто вернуть топик, но и его автора с аватаркой, именем юзера и ролью. Такое тоже можно было бы делать, доставая маппинг из текущего юзера, но это уже становится не так стабильно - а что если текущий юзер это не автор, например? Или что если я не хочу в контексте моего запроса держать ссылку на аватарку текущего юзера? Если коротко, в скоупе того, что мы сделали на видео - вы полностью правы, достаточно мапить то, что было в памяти. Я сделал преждевременную оптимизацию :)
видос интересный, но смотреть на код в шакальном качестве - очень сложно
шакальное качество видео, а не кода)
@@Gal_larate ахахах, да, тут мой косяк, надо было попросить зум сделать по полной программе. В райдер все еще не подвезли кодколлаб, а то может быть можно было бы без хитрожопостей обойтись.
Привет! Очень интересно тебя слушать. Как раз очень актуально для меня - новая работа, где придется больше девопсить, нежели в бигтех кормушке. Продолжай в том же духе! Где твои стримы проходят?
Спасибо, очень приятно, и за вас рады! Все стримы прямо тут, на ютубе. Обычно по четвергам, но не всегда получается стабильно их проводить :)
Привет! Очень интересно тебя слушать. Как раз очень актуально для меня - новая работа, где придется больше девопсить, нежели в бигтех кормушке. Продолжай в том же духе!
Кайф!
Извиняемся за проблемы с микрофоном, видео начинается с 0:01:18 по этой причине :D
Спасибо за труды, обязательно пересмотрю
Очень полезно, спасибо!
Только начал смотреть,подскажите в этом курсе будем микросервисная архитектура?
Извиняюсь за долгий ответ! Да, будет, в какой-то форме. Это все-таки цикл скорее о том как проектировать приложения, готовые к микросервисной архитектуре, но сам домен мало располагает к ней :)
Супер ;) Так держать ;)
Любопытно, почему ограничения на дженерик типы именно struct?
Привет спасибо за контент, будешь ли делать чат? Хотелось бы увидеть как ты работаешь в веб-сокетами!
Звучит как хорошая идея. Но я наверное попробую убить одним камнем двух зайцев и сделаю систему уведомлений - там и вебсокеты будут в тему, и немножко интереснее топология, и проще привязать к уже готовому функционалу без пиления дополнительных фич.
@@ПерейтивАйТиПривет, спасибо за контент. Будет ли в проект добавлен кэш? По типу Redis or Memcached?
@@ПерейтивАйТи Спасибо брат!
Здравствуйте, будете ли вы продолжать трансляции?
Еще как будем! Вот уже завтра :D
о боже уже 100 мультов строк не могут организовать без десяти никому не нужных прокладок это пипец...
что со звуком ?
Спасибо!
Спасибо большое !💗
Ждем продолжение)
Можете записать видео о асинхронном взаимодействии rest API (например на http или FastApi) как getaway и микросервисов. Когда требуется вернуть обработанный в 1+ микросервисах сообщение, конкретному запросу на роутере.
Можно подумать на эту тему, но если честно пока нет возможности. Как закончим со стримами по дотнету, попробуем вернуться к теме.
Жаль что си шарп, Python мой
Ну на питоне все плюс-минус то же самое, только дока по aiopika похуже, имхо. Но может когда-нибудь и созреем повторить на питоне (когда автор выучит питон, хехе).
Для обратной связи Вопрос-Ответ, почему не использовать Correlation_ID ?
RPC в RMQ предполагает использование токена корреляции, действительно. В тех примерах, о которых я говорил, обратная связь не нужна, поскольку они асинхронные по своей природе, и поэтому нам и не было это нужно. Кейсы где RMQ заменяет собой более традиционные транспорты, типа HTTP или gRPC я не рассматривал, да и в целом скептически к ним отношусь.
@@ПерейтивАйТи но кейс с функционалом поисковика, разве не работает по связи вопрос-ответ? Т. Е. Вопрос от продюсера консюмеру: дай мне данные по параметру. Далее, как мне кажется, они меняются местами. Продюсер возвращает результат консюмеру (который до этого был продюсером). И тут мне непонятно, как консюмер узнает какой канал слушать? Ведь когда он создавал канал для отправки ответа, консюмер его получил и канал закрылся. Может нужно каждый раз создавать уникальный канал с именем uuid4, по которому сервису придёт запрос. Затем сервис создаст такой же для отправки ответа... Вот это мне непонятно...
Немного не разобрался в примерах Жаль не на пайтоне
Можете зайти к нам в чат и задать там любые вопросы, вам обязательно помогут :)
@@ПерейтивАйТи странное происходит с вашим "чатом". Вроде только зашел, пишу вопрос, но меня выкидывает и и пишет "группа недоступна"
Владислав, все круто. Но очень тихий звук
Спасибо за комментарий! Для новых выпусков я специально прикупил себе хороший микрофон, так что со звуком должно быть все плюс-минус хорошо в дальнейшем :)
Спасибо, продолжайте
Прекрасная подача материала. Автор большой молодец!
Спасибо, Владислав, дал отправную точку в понимании кролика)
Так то Рэбит это глава мафии из сериала Банши
Где Энтони Старр?
привет, что посоветуешь начинающему, стоит ли изучать c# для бэкэнда? сейчас выбираю между шарпами, го и джавой
Я конечно буду рекомендовать шарпы, но я предвзят :) Джава тоже ничего, как платформа, но язык, на мой взгляд, так себе. Но к счастью у них есть котлин.
Спасибо большое!
Спасибо! Супер формат курса. Спокойно, доступно, последовательно! Ждём продолжения!
Получилось очень мало нового, только банальное фичаклепание, и то не очень бодрое. Скажите, нужно ли иногда таким разбавлять стримы или лучше такой контент делать за кадром и просто бегло про него рассказывать?
Все ок. Продолжай!
Конечно, это тоже нужно.
Еще вопросы ,у меня в domain хранится модель для бд и дто а для бизнес логики слой service где я из repository получаю модель парсю на dto и отдаю к api , получается у меня domain это где просто хранится модели на сколько это хорошо?
У нас пока очень простой домен, так что в каких-то случаях он действительно "тупой". Чем дальше, тем больше в нем будет логики. Но не забывайте, что помимо моделей у нас в домене еще и юзкейсы находятся. И они бывают довольно сложными. Если бы домен больше к этому располагал, то можно было бы писать вообще в стиле DDD, но я в этом цикле хотел сфокусироваться только на "чистой архитектуре" и периферии, которая необходима для удобной эксплуатации.
У storage есть модели для бд , у domain модели и у API модели, думал нужно всего ли лишь 2 модели это для бд и для api 🤔
Как правило, каждому адаптеру нужны свои модели. Иначе ваши адаптеры начинают друг о друге знать (чтобы конвертировать модели друг друга туда-сюда). В первых видео я еще вольготно обращаюсь с этим, но к пятому видео у меня уже все полностью отгорожено :)
И спасибо за ваши комментарии и вопросы!
Вооот...
А если я проджект менеджер, кого я могу удивить? 😅
Скажем так, опыт подсказывает, что обычно когда проджекты начинают делиться своей экспертизой в технологии с разработчиками - сюрприз это скорее неприятный. Доверяйте разработчикам и полагайтесь на их экспертизу :)
удиви отсутствием микроменеджмента)
Обозвал OIDC - OICD. Извиняюсь :)
всё равно никто не понял))
Очень надеюсь что Вы в скорейшем времени сделаете стрим продолжение, спасибо вам
Добавляйтесь в наш чат, там есть анонсы грядущих выпусков и возможность пообщаться со спикером :)
@@ПерейтивАйТи правда? А где могу его найти?
Огонь!!!
Докладчику большой респект, все понятно. Спасибо!
А где прошлые видео по vue?