PRO CODE | Наставничество в IT
582 subscribers
53 photos
5 videos
34 links
IT изнаночка: как крутят опыт, проходят собесы и выбивают офферы.
Менторинг, backend, реальные кейсы, собесы.

По всем вопросам пиши сюда: @blindjoee
Yutube youtube.com/@procodech
加入频道
Всем привет!

Заболел на 10 дней и пока поставил на паузу работу с видео 🤪

Dependency Injection (DI) в ASP.NET Core: что, как и зачем?

DI (Dependency Injection) — это встроенный механизм ASP.NET Core для управления зависимостями в приложении. Он позволяет легко связывать классы и сервисы без жёсткого связывания, упрощая тестирование и поддержку кода.

Популярные контейнеры IoC
В ASP.NET Core по умолчанию используется встроенный контейнер DI, но можно заменить его на сторонний, если нужна большая гибкость:
Autofac — мощный контейнер с поддержкой модульной загрузки.
Scrutor — расширяет стандартный DI, добавляя удобный автоматический сканинг сервисов.
LightInject — лёгкий и быстрый контейнер.
SimpleInjector — заточен под высокую производительность.

Как внедрять зависимости?
В ASP.NET Core используется метод ConfigureServices в Program.cs:
builder.Services.AddSingleton<IMyService, MyService>();

Есть три основных способа внедрения зависимостей:
✔️ Через конструктор (рекомендуемый способ)
✔️ Через параметры метода (Controller action injection)
✔️ Через `IServiceProvider` (нежелательно, но возможно)

Жизненный цикл зависимостей
Каждый сервис может быть зарегистрирован с разным временем жизни:
- Singleton – создаётся один раз на всё время работы приложения.
- Scoped – создаётся один раз на HTTP-запрос (подходит для работы с БД).
- Transient – создаётся каждый раз при запросе зависимости.

Что такое Scope и когда он нужен?
Scope — это область действия зависимостей с жизненным циклом Scoped. Например, при обработке HTTP-запроса создаётся новый Scope, внутри которого доступны Scoped-зависимости. Это удобно для работы с DbContext в Entity Framework, чтобы избежать конфликтов при одновременных запросах.

💡 Использование DI помогает писать гибкий, тестируемый и поддерживаемый код. Если хотите разобраться глубже в ASP.NET Core и прокачаться в .NET — обращайтесь за менторством.

👉 Подробнее про менторство:
Тык сюда

#dotnet #aspnetcore #dependencyinjection #программирование #менторство
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Всем привет!

🎥 Новая серия для тех, кто хочет разобраться в .NET и не знает с чего начать!

Я запустил серию видеоуроков для новичков по ASP.NET Core. Каждую неделю — новый выпуск. Всё просто, по делу и без воды.

🔥 В первом видео — Твой первый бэкенд проект — ASP.NET Core Minimal API без боли

А вот что будет дальше:

Настройки web-проекта и как ими пользоваться
Подключаем базу данных через EF Core
Dependency Injection в ASP.NET
Как ходить во внешние API
Публикация приложения на сервер
Немного BLAZOR — фронт на минималках
Аутентификация и авторизация в ASP.NET

Если ты новичок или просто хочешь освежить базу — залетай. Будет полезно.

⚡️ Поддержи лайком и комментом — это мотивирует меня делать ещё больше контента.

Двигаемся дальше.

#dotnet #aspnetcore #программирование #обучение #backend
#менторинг
🔥6
Всем привет!

😤 Ты с треском проваливаешь лайвкодинг?
🤯 Не знаешь, как перевернуть дерево и остановить рекурсию?
😵 Последнее интервью по алгосам закончилось нервным срывом?

Тогда тебе ко мне.

🔥 Открываю группу выходного дня по алгоритмам и структурам данных.
Занимаемся по субботам или воскресеньям в 9:00 по Москве — удобно, пока все ещё спят и не мешают.

Что внутри:
– Алгосы на C# или Python — на выбор
– Все участники — толковые разработчики на одном уровне
– Не просто решаем задачи, а разбираемся научным методом
– Разборы, микролекции, практики
– Прокачка структур данных, алгоритмического мышления, лидерства и уверенности
4 занятия в группе + 4 индивидуальных мок-собеса в месяц

Я ведущий: даю материалы, веду группу, вытаскиваю вас на уровень, где алгоритмы — это не боль, а кайф.

💸 Стоимость — 10 000₽ в месяц
Можно в рассрочку или частями, главное — чтобы ты работал.

Хочешь перестать бояться задач с LeetCode и начать их щелкать на раз два?
Пиши в личку — места строго ограничены.

#dotnet #aspnetcore #программирование #обучение #backend
#менторинг
🔥4👍1
Всем привет!

🎥 Вышла вторая часть серии по созданию бэкенд-проекта на ASP.NET Core.
Если ты только начинаешь или хочешь разобраться, как работает база данных и EF Core — самое время подключаться!

🔥 Новое видео — Твой первый бэкенд проект — База данных и EF Core [ЧАСТЬ 2]
https://youtu.be/mPXmxVEQwDE?si=AQuxywEG5n5uZ8pB

В этом выпуске:

Подключаем базу данных через EF Core InMemory
Создаём класс контекста и настраиваем его
Конфигурации сущностей — чтобы всё было по-человечески
Подключаем контекст в приложение
Рефакторим ендпоинты — без грязи и боли

Это база для ознакомления и работы локально с проектом, реальную базу подрубим в след видео. Простым языком, без заумных слов и “вот тут я код сгенерировал”.

🔥 Если не смотрел первую часть — начни отсюда:
Твой первый бэкенд проект — ASP.NET Core Minimal API без боли
https://youtu.be/zjpXF9_8gxg?si=04RdO0lvI0ljNCZC

⚡️ Подписывайся, чтобы не пропустить следующие темы:

- Dependency Injection в ASP.NET
- Подключение к внешним API
- Публикация проекта
- Аутентификация и авторизация
- И немного Blazor, чтобы не было скучно

Если интересно — залетай.
Если полезно — лайкни и кинь другу.

Двигаемся дальше.

#dotnet #aspnetcore #backend #efcore #обучение #менторинг #программирование #csharp
🔥7👍4
Всем привет!

🎥 Вышла новая серия по прокачке твоего .NET-проекта.
Хватит играться с InMemory — пришло время боевого продакшна.

🔥 Новое видео — Из песочницы в прод: PostgreSQL, миграции, Serilog и Docker
https://www.youtube.com/watch?v=YnHQzaAPahw

В этом выпуске:

Подключаем PostgreSQL — забудь про InMemory
Настраиваем миграции, чтобы всё сохранялось как надо
Втыкаем Serilog, чтобы видеть, где ты косячишь
Добавляем DTO — наводим порядок в коде
Разруливаем dev/prod конфиги — без танцев с бубном
Запускаем всё через Docker — по-взрослому, как на проде

Если ты хочешь собрать свой первый боевой проект на .NET — это твой путь самурая.
Простыми словами, без буллшита и “давайте сгенерим код”.

🔥 Не смотрел первую и вторую части? Лови:
1️⃣ [Minimal API без боли (Часть 1)]
2️⃣ [EF Core и InMemory база (Часть 2)]

⚡️ В следующих выпусках будет ещё больше мясца:

- Аутентификация и авторизация
- CI/CD и публикация
- Архитектура и рефакторинг
- Разворачиваем проект в облаке
- + Как не словить выгорание и остаться в кайфе от кода

Если интересно — подписывайся, чтобы не потерять.
Если полезно — кидай другу, он скажет спасибо.
Если хочешь расти и зарабатывать больше — залетай на менторство.
https://teletype.in/@blindjoee/mentoring

Двигаемся дальше 💥

#dotnet #aspnetcore #backend #postgres #efcore #mentoring #программирование #csharp #docker #serilog #обучение
👍3🔥2👏2
Всем привет!

🎥 Подъехала 4 часть прокачки твоего .NET API — делаем из болванки конфетку.

🔥 Новое видео — Наводим стиль и подключаем валидацию FluentValidation — API на .NET становится взрослым


В этом выпуске:

Подключаем сервисы и разбираемся с Dependency Injection — теперь всё по красоте
Настраиваем AutoMapper — забудь про ручной маппинг
Добавляем FluentValidation — валидация, как у взрослых
Рефакторим код — становится приятно смотреть

Если ты хочешь собрать свой первый серьёзный .NET API — это видео для тебя. Всё по делу, без розовых единорогов и "генераторов стартапов".

🔥 Не смотрел предыдущие части? Лови:

1️⃣ Minimal API без боли (Часть 1)
2️⃣ EF Core и InMemory база (Часть 2)
3️⃣ Из песочницы в прод: PostgreSQL, миграции, Serilog и Docker (Часть 3)

⚡️ В следующих выпусках:

- Авторизация и пользователи
- Настройки для прода
- Усложнение логики
- Апгрейд доступа к данным
- И главное — как сделать проект, который реально можно показать работодателю

Если хочешь писать код, который не стыдно показать, — залетай в плейлист и подписывайся на канал.
Если хочешь расти как разработчик — залетай на менторство:
https://teletype.in/@blindjoee/mentoring

Погнали дальше 💪

#dotnet #aspnetcore #csharp #backend #mentoring #fluentvalidation #automapper #webapi #навык #код #обучение
👍6🔥1
PRO CODE | Наставничество в IT pinned «Всем привет! 😤 Ты с треском проваливаешь лайвкодинг? 🤯 Не знаешь, как перевернуть дерево и остановить рекурсию? 😵 Последнее интервью по алгосам закончилось нервным срывом? Тогда тебе ко мне. 🔥 Открываю группу выходного дня по алгоритмам и структурам…»
на фото я в 14 или 15 лет

Глава 1. Деревня, которой больше нет

Привет.

Кто я вообще такой? Неизвестный никому парень из деревни, которой, возможно, уже и на карте нет.
Я родился в маленьком посёлке в Ставропольском крае. То время я не сильно помню — был слишком мал, да и особо там нечего было запоминать. Родители попали туда по распределению из универа — работать на большую стройку мастерами. А я и моя старшая сестра были практически предоставлены сами себе, в границах дома, который организация выделила нашим родителям.

Глава 2. Маленький город, большие сны

Всё интересное началось уже в другом городе. Он тоже не отличается какой-то известностью, так что рекламировать не буду. Скажем, это был маааленький город, где все знали друг друга. Обычная жизнь там текла медленно. Люди рождались, учились, устраивались на работу и оставались там навсегда. Заграницы? Большие деньги? Да вы о чём. Люди об этом даже не думали. Хотя деньги, конечно, были — но, как и везде, не у всех.

А я — обычный подросток. Учусь в школе на тройки, иногда проскальзывают четвёрки и пятёрки, если повезёт. Живу в прекрасном ноунейме без интернета в конце 90-х.
Никаких социальных лифтов. Ноль связей, ноль протекции, ноль перспектив.
Спорт? Ну какой спорт. Разве что дворовый футбол среди уличной шпаны.

В общем — весёлое детство, как у 90% детей по всей стране.
Но самое главное — я всегда верил, что меня ждёт шикарное будущее.
И каждый раз, когда я об этом говорил, мне крутили пальцем у виска:

> «Сиди не рыпайся. Где родился — там и пригодился».


Так говорили родители, друзья, учителя и все-все-все.
А вокруг... Бухалово по пятницам, танцы в ДК, драки, иногда рыбалка и охота — вот и весь культурный досуг. Стандартный деревенский набор.

Глава 3. Появляется шанс — Пентиум четвёртый

И вот, 2003 год. Мне 14.
И мне покупают компьютер.

Это был космический корабль:
Intel Pentium 4, 3 гигагерца тактовой частоты, 8 гигов оперативки, игровая мать...
Он сверкал, как бриллиант. Я реально подходил к нему только с разрешения отца.
Никаких игр сначала — не потому что не было, а потому что боялся “сломать” это чудо техники. Играл у друзей, у матери на работе — но дома был запрет.

А потом — модем.
Диал-ап. Связь с миром. Интернет.

И это был поворотный момент.
Мы с пацанами залетали в американские чаты. По ночам.
Разносили там всех как бешеные интернет-тролли — просто ради фана.
Дальше были взломы, пиратство, первые шалости в духе “юных хакеров”.

Но с компьютером и интернетом в моей жизни случилось важнейшее:
Я увидел, что всё, о чём я мечтал — реально возможно.
Передо мной открылись двери.
Окно в другой мир.

Программирование стало моим новым наркотиком. Я ковырялся в PERL, писал скрипты на Visual Basic. Я тогда ещё не знал, как заработать большие деньги, но одно было ясно:

> Это будущее — и оно моё.


Глава 4. Университет и первый ноут

После школы родители особо не церемонились — запихнули в первый попавшийся универ, где были хоть какие-то знакомые. Я уехал учиться за 500 км от дома и попрощался со своей супер-мега-тачкой, которую, конечно, не разрешили увезти.

Универ был инженерный. Программирование — мимо. Но на втором курсе я понял:

> Компьютеры — моё всё. Программирование — это не хобби. Это жизнь.


Я устроился на работу. Просто чтобы купить себе ноутбук.
До этого жил в лаборантской на кафедре, зависал в компьютерном клубе.
И вот, 2006 год, я зарабатываю свои первые 30 000 за месяц и беру ноут Sony.

> Этот ноут был не просто техникой. Это был портал в мою новую жизнь.


Он прослужил 6 лет, и я продал его, только чтобы собрать себе мощную стационарку.

Но на этом история не заканчивается.

Глава 5. Армия и фотошоп для офицеров

После универа внезапно и без моего желания родитель №1 решил, что “мужик должен отслужить”. Я вообще не собирался туда — были причины: планы, здоровье, всё такое.

Но против воли отца, повернутого на "культуре настоящего мужика", не попрёшь.

Армия.
Сначала — учебка.
Кроссы по 10 км каждое утро, жизнь в бараках без фундамента — когда на полу не ламинат

Продолжение следует....
👍7🔥3
Продолжение...

Глава 5. Армия и фотошоп для офицеров

После универа внезапно и без моего желания родитель №1 решил, что “мужик должен отслужить”. Я вообще не собирался туда — были причины: планы, здоровье, всё такое.

Но против воли отца, повернутого на "культуре настоящего мужика", не попрёшь.

Армия.
Сначала — учебка.
Кроссы по 10 км каждое утро, жизнь в бараках без фундамента — когда на полу не ламинат, а сырая земля, из которой вылазят червяки. Влажность, вонь, пот. В этой форме ты спишь, ешь, работаешь.
Дальше — рота охраны. Караулы, устав, план “Антитеррор” с ментами — всё как полагается.

Но потом меня переводят в другую часть. Почему?

У меня были права нужной категории и… внимание… навыки работы с компьютером.
Вот тут началась совсем другая армия.

Интернет. Компьютер.
Сутками у монитора.
Верстаю офицерам сайты, делаю отчёты, фотошоплю их фотки, регаю их на сайтах знакомств.

Да, именно так:

> И в армии я смог промутить себе компьютер.


Глава 6. Москва, встречай

После армии я понял: возвращаться в свой ноунейм-город — вообще не вариант. Там добиться того будущего, которое я себе представлял, было почти невозможно. Я купил билет до Москвы в один конец, взял с собой сбережения, что-то подкинули родители — и был таков. Уезжал на автобусе за 1500 км. Самолеты? Я о них даже не думал — мне тогда было 23, и я был уверен, что на них летают только богатые.

Приехав в Москву, первым делом начал искать, где бы приткнуться. Помогла родня — перекантовался пару недель на даче у деда, пока не нашёл комнату на южной окраине. Адрес не важен. Что у меня было? Ноутбук, немного шмоток и денег на пару месяцев аренды и еды. Москва — дорогой город, была и остаётся.

Через пару недель я нашёл первую работу — продажа автостраховок. Ни о каком программировании речи не шло: ты сидишь, звонишь на холодную и впариваешь людям ОСАГО. Адская работа. Проработал два месяца — свалил.

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

Но однажды я заметил, что коллега по офису, Олег, задерживается за компом вечерами. Подхожу и спрашиваю:
— Олллег, ты что здесь делаешь? Уже за 9 вечера, мы одни.
Он поворачивается ко мне и говорит:
— Паша, я делаю деньги. Верстаю, программирую, сайты клепаю.

И вот тут у меня, как говорится, загорелась жопа. Я на нелюбимой работе, а чел в соседнем кресле делает то, что мне интересно, да ещё и зарабатывает. Тогда, в 2011, сайт у него стоил 600–800 долларов. Делал он его за неделю. Короче, 3 косаря баксов в месяц только с сайтов. HTML, статика, немного jQuery, и весь трафик — сарафан и его личный сайт.

> “Ни диплома, ни связей — но если шаришь в вёрстке, ты уже в плюсе.”


С того дня он стал моим "лучшим другом" на три месяца. Я вытащил из него всё, что мог — и ушёл. За это время я прошёл пару курсов по вёрстке и JavaScript, сделал несколько пет-проектов и решил: пора пробовать.

Глава 7. Начало карьеры и вторая вышка

Первой настоящей работой в IT стал WB.ru.
На собеседование я пришёл почти без подготовки. Тогда ещё не было принято гуглить, что спрашивают на интервью — да и я не знал, что искать. Сделал тестовое, нормально ответил на вопросы по вёрстке и JS, был вежливый и улыбался. Меня взяли.

В WB проработал около двух лет. Потом появилась новая работа с х2 по деньгам — и это было *ВАУ*. Купил тачку, появились друзья, хорошие наставники. В итоге на той работе я задержался на 5 лет. За это время:

- поступил во второй универ, на этот раз профильный;
- женился;
- взял ипотеку и купил квартиру;
- облетел пол Европы туристом;
- и ещё много чего интересного.

> “Когда ты попадаешь в IT, ты вдруг начинаешь понимать, что жизнь — это не только выживать.”


И вот здесь начинается самое интересное…
🔥6👍3👏1🌭1
Всем привет!

🎥 Часть 5 подъехала — API становится умнее: добавляем пользователей и учим его различать своих и чужих

🔥 Новое видео — Твой первый бэкенд проект — Добавляем пользователей

В этом выпуске:

Подключаем ASP.NET Identity — теперь у каждого свой аккаунт
Настраиваем аутентификацию и авторизацию — никаких чужих в личных данных
Прокачиваем сервисы — разграничиваем доступ к ресурсам
Кастомизируем юзеров — минимализм и контроль

📌 После этого выпуска твой API будет знать, кто ты, что тебе можно, и куда не лезть 😎
А неавторизованный юзер? Как бывший — вроде был, а доступа больше нет.

Если хочешь не просто писать код, а строить продукты, глянь это видео — всё по делу, без ванили и фреймворков-однодневок.


🔥 Не смотрел предыдущие части? Лови:

1️⃣ Minimal API без боли (Часть 1)
2️⃣ EF Core и InMemory база (Часть 2)
3️⃣ Из песочницы в прод: PostgreSQL, миграции, Serilog и Docker (Часть 3)
4️⃣ Наводим стиль и подключаем валидацию FluentValidation — API на .NET становится взрослым [часть 4]

⚡️ В следующих выпусках:

- Настройки для прода
- Усложнение логики
- Апгрейд доступа к данным
- И главное — как сделать проект, который реально можно показать работодателю

Если хочешь писать код, который не стыдно показать, — залетай в плейлист и подписывайся на канал.

Если хочешь расти как разработчик — залетай на менторство:
https://teletype.in/@blindjoee/mentoring

Погнали дальше 💪

#dotnet #aspnetcore #csharp #backend #mentoring #fluentvalidation #automapper #webapi #навык #код #обучение
🔥61👍1👏1🤝1
Продолжение моей истории...

Глава 7. Пять лет хардкора

Следующая компания в моей жизни — это прям отдельная глава. Пять лет там пролетели как один плотный рабочий день.
Хардкор — без шуток. Всё по-взрослому: пять проектов, все веб-бэкенды, и я между ними как на пружине — то баг пофиксил, то фичу прикрутил, то юзеру объяснил, почему всё не так просто.

Там было всё. Люди, которые одной рукой помогали, а второй — могли задушить при первой возможности. Код — надо писать быстро, чисто, чтобы ещё и через полгода самому не блевануть от увиденного. Конфликты — тихие, но местами жаркие. Дружба — тоже была, иногда настоящая. Своего рода айтишная школа жизни.

Атмосфера… ну, назовём это дорогим айтишным глянцем.
Пиво в холодильнике, кофемашины, стильный офис в башне где-то в деловом центре Москвы. Вокруг — топы, которые спокойно гуляют по опенспейсу, будто не управляют миллионами, а просто ищут, с кем бы перекинуться парой слов.
Стулья Herman Miller по цене поддержанного авто, ноуты не хуже, и даже массаж раз в неделю — по корпоративу. Были и другие “приятности”, вроде кофе-леди, которая приносила тебе чашку прямо к столу, если знал, как правильно попросить (или хотя бы шоколадкой угостить).

Корпоративы — такие, что потом неделю отходишь. Локации — будто из кино. Девочки, которые мечтали выйти замуж за айтишника. Тачки, вечеринки, движ. В общем, жёсткое айти-люксовое комбо.

Если коротко — из всех мест, где я работал, это пока топ. Тяжёлое люксовое айти. Но с характером, ушел от туда по глупости, классное было место.

Продолжение следует....
🔥82👍1
А почему ты/вы/мы крутые?

За три года менторинга я общался с огромным кол-вом людей. Кто-то становился клиентом, кто-то отсеивался, но это общение само по себе дало мне огромный пласт информации о людях и их понимании мира. О том, как они себя ощущают, какова их вера в себя и других, как они себя позиционируют.

Многие зацикливаются на том, кто они по профессии, и строят от этого умозаключения всю свою жизненную позицию. Можно сказать — всё своё естество. Что иной раз очень занятно выглядит, когда ты понимаешь суть. Об этом я скажу позже.

Чья-то вера часто основана на вере других: «в меня верит жена», «у Васи получилось — значит и у меня выйдет», «я как все». Или: «я смогу, потому что другие смогли, а чем я хуже». Это всё, конечно, не плохо, но под этим часто нет фундамента.

🧠 Или вот про ощущение: «мне норм, вон коллеги же работают за копейки — значит, нормально», «сосед всю жизнь на съёмке и без машины — я тоже могу так». А где же мечты? Где цели? Почему другие люди определяют твою судьбу и всю твою жизнь?

И самое интересное — часто человек делает это сам. Он определяет, что ему нужно из рекламы и маркетинга, смотрит по сторонам и повторяет. Он не занимается спортом — и я не буду. У него нет машины — и у меня нет, значит норм. Немногие зарабатывают миллионы — значит норм, что у меня их нет.

Ты понимаешь, к чему я веду?

⛔️ Нет, это всё не нормально.

Тут хочется вспомнить классика: «ты — это не твой бумажник, не твои деньги в банке и не этикетка на трусах». И добавить: ты — это не твой сосед, не то, что о тебе говорит начальство, не мнение коллег, не их «хороший/плохой».

Ты — это ты.
Ты сам решаешь, кто ты.
Ты сам взращиваешь фундамент и укрепляешь себя со всех сторон.

Кто-то говорит, что вы плохой/ая специалист? Это не о тебе. Это о работе в какой-то конкретный промежуток времени с этим человеком.

Ты считаешь, что не достоен/на больших денег, потому что «все так живут»? Чушь.
Ты достоен / достойна огромных денег, потому что ты так решил/ла — а не «все».

Нет веры в себя, потому что никто не верит? Чушь. Начни делать — и вера в себя вырастет.

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

🚀 Теперь практическая часть. Осмысление — это хорошо, но на физическом плане тоже нужно работать.

— Не инвестируй всё своё время и энергию во что-то одно.
— Развивайся с разных сторон.
— Начни заниматься спортом, ставьте реальные соревновательные цели.
— Попробуй своё микро-дело — со временем преврати его в бизнес.
— Создай семью, заведи детей, если есть возможность.
— Придумай хобби. Учись новому.

Одним словом — строй базу, чтобы не получилось, что есть только работа и профессия типа «программист», на которой всё держится.

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

⚓️ А ты — крутой/крутая, непотопляемый ядерный ледокол, который идёт на пролом через толщи льда в океане, независимо от того, что от него по пути отваливается или прирастает и что на его пути встречается.

Вот почему я/ты/мы/вы крутые.
👍8🔥61