#SimpleCode - Сергей Журавльёв @sergeysimplecode Channel on Telegram

#SimpleCode - Сергей Журавльёв

@sergeysimplecode


Канал о программировании и не только.

#SimpleCode (Russian)

Добро пожаловать на канал #SimpleCode! Здесь вы найдете увлекательные и полезные материалы о программировании и не только. Наш канал создан для всех, кто интересуется миром кода, разработки программного обеспечения, и хочет узнать больше

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

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

Присоединяйтесь к нашему сообществу #SimpleCode, чтобы узнать больше о программировании, делиться своим опытом и учиться чему-то новому каждый день! Будем рады видеть вас среди наших подписчиков. До скорой встречи!

#SimpleCode - Сергей Журавльёв

12 Jan, 08:09


В этом уроке мы разберёмся с механизмом отложенного возврата значений yield return, рассмотрим стейт-машину, в которую это всё компилируется, а также с помощью бенчмарков проверим, как использование yield может существенно оптимизировать производительность. https://www.youtube.com/watch?v=aUbFYuBMDqU

#SimpleCode - Сергей Журавльёв

09 Jan, 08:47


🔄 Вернёмся к теме вопросов на job interview!
В продолжение предыдущего поста о паттерне Итератор.
Само собой, вы уже рассказали об интерфейсах IEnumerable и IEnumerator, перечислили методы и свойства интерфейса IEnumerator:
• MoveNext()
• Reset()
• Current
Рассказали, как они работают.
🤔 Логичным будет следующий вопрос:
Что вы знаете про yield?
Уже в следующем уроке мы этот самый yield подробно разберём!
Будут бенчмарки с пруфами!
🔑 А пока, вот основные моменты, которые стоит помнить о yield:
1️⃣ Разворачивается в стейт-машину
При компиляции метод с yield преобразуется в скрытый класс, который управляет состоянием итерации (реализует IEnumerator).
2️⃣ Отложенное выполнение
Код внутри метода с yield не выполняется сразу, а только тогда, когда последовательность начинает перечисляться (например, в цикле foreach).
Это может значительно повысить производительность, так как позволяет получать элементы по одному, а не всю коллекцию сразу. Чем больше элементов в коллекции, тем больше мы выигрываем в производительности.
3️⃣ Эффективное использование памяти
Поскольку элементы обрабатываются по очереди, yield позволяет работать с большими коллекциями, не занимая много оперативной памяти. Это особенно полезно при обработке сотен тысяч объектов, когда нет необходимости хранить всю коллекцию в памяти. Используем меньше памяти. Реже отрабатывает сборщик мусора, что довольно накладно.

З.Ы. На Udemy эта тема уже есть. Там я буду выкладывать всё немного раньше в качестве благодарности за финансовую поддержку. https://www.udemy.com/course/simplecode-cshap/?referralCode=53C0314076F77DCC2A02

#SimpleCode - Сергей Журавльёв

07 Jan, 08:51


🔥 Я случайно запилил идеальную готико-дум-метал балладу с женским вокалом.
Это просто аху##о.
Если вам что-то говорят такие названия, как Draconian, Trees of Eternity, Lacuna Coil, — слушайте обязательно! 🎶🖤
https://www.youtube.com/watch?v=tNbB2V5zpzk

#SimpleCode - Сергей Журавльёв

05 Jan, 08:55


💡 В продолжение темы о вопросах на собеседовании и паттернах, одним из наиболее часто используемых вами паттернов так же является Итератор и вот почему.
Коллекции в C# могут работать с циклом foreach благодаря реализации паттерна Итератор, который, в свою очередь, может быть реализован благодаря тому, что эти коллекции реализуют интерфейсы IEnumerable и IEnumerator. Такой подход даёт возможность, не разбираясь в деталях реализации коллекции, перебирать её элементы в цикле.
🎥 В этом уроке мы разберём цикл foreach на атомы, разберёмся с тем, при чём тут паттерн Итератор, а также с интерфейсы IEnumerable и IEnumerator.
https://www.youtube.com/watch?v=YpRSnUkepv8

#SimpleCode - Сергей Журавльёв

04 Jan, 07:45


🔧 Уже завтра будет раскрыта тайна, почему на канале нет урока о цикле foreach. Разберём его на атомы и выясним, причём тут паттерн «Итератор». Ну и, соответственно, поговорим о IEnumerable и IEnumerator, на собесах без этого никак.
🎧 А сегодня хочу попросить вашей помощи с явлением миру нового трека на втором канале. На этот раз — попытка в retrowave/synthwave. Надеюсь, получится атмосферно!
Если вдруг зайдёт, жмакните лайк и что-нибудь напишите. Ну а если не зайдёт — тем более напишите! 😉
https://www.youtube.com/watch?v=D6tknX8QXSQ

#SimpleCode - Сергей Журавльёв

02 Jan, 07:08


Продолжаем тему вопросов о паттернах проектирования на собеседовании. Напоминаю, что наша цель — проявить инициативу, показать свои знания и убедить, что мы разбираемся в теме. Также мы, хоть немного, но всё же можем управлять ходом интервью, направляя его в ту область, где способны проявить себя с лучшей стороны, если, конечно, нас не прервут =)
Напоминаю, что вас спросили о том, какие паттерны проектирования вы чаще всего использовали в своей работе. На этот раз вы вспомнили паттерн "Стратегия". Хороший выбор! 😊 Давайте разберём, к чему это может вас привести.
Как всегда, вы безусловно должны знать, что представляет собой классический паттерн "Стратегия" и для чего он нужен. А помимо этого, наша с вами стратегия следующая: нужно привести пример, который связан с основами платформы .NET. Здесь важно вспомнить, что паттерн "Стратегия" отлично реализуется через делегаты. А где мы чаще всего используем делегаты? Правильно — в LINQ. Таким образом, "Стратегия" оказывается одним из наиболее часто применяемых паттернов.
Кстати, как раз сейчас я работаю над большим курсом по LINQ! 😊
Итак, рассказываем, что такое LINQ, для чего оно нужно. Обязательно упоминаем, что паттерн "Стратегия" в LINQ (если мы говорим о синтаксисе методов) реализован через extension methods (рассказываем, что это) и встроенные (универсальные) делегаты. Рассказываем о том, что такое делегаты. Основным делегатом, который используется в LINQ, является Func, но если будет возможность, упомяните также Action и Predicate. Обязательно следует упомянуть, что LINQ реализован на базе интерфейса IEnumerable (скоро будет видео). Тут вас, кстати, могут спросить про паттерн "Итератор", но это тема другого поста. Учтите, что разговор про IEnumerable может плавно перерасти в разговор про IQueryable и expression tree, где довольно часто возникает затык, так что подготовьтесь 😊
Ну и как вишенка на торте — вас могут попросить написать свой собственный LINQ-метод.
Учтите, что практически на любом собеседовании, кроме, пожалуй, Senior-позиций, все эти вопросы всё равно спросят. Так что лучше сразу показать, что вы в теме! 💪

#SimpleCode - Сергей Журавльёв

28 Dec, 12:30


🚀Как я и говорил, музон уехал на второй канал. Вот вам немного Software Stoner Metal🤘. https://www.youtube.com/watch?v=odguxNLyIso

#SimpleCode - Сергей Журавльёв

28 Dec, 08:04


Как затирать про Singleton на собесе
Итак, вы на интервью на .NET-разработчика, и вас спрашивают: какие паттерны проектирования вы чаще всего использовали в своей работе? И вы не придумали ничего лучше, чем Singleton. Всё OK, Singleton тоже паттерн. Вопрос в том, как его правильно «готовить».
Во-первых, вы реально должны знать, что такое Singleton, для чего он нужен и как работает. А дальше начинается самое интересное — это то, куда этот вопрос может вас привести.
Если бы этот вопрос задал я, то хотел бы услышать вот что:
Во-первых, если позиция предполагает работу с ASP.NET Core, можно сразу рассказать, что именно этот паттерн вы часто используете. И не потому, что сами всё это ручками пишете, а потому что используете DI (dependency injection). Работая с ASP.NET Core, вы так или иначе его юзаете.
Таким образом, отвечая на вопрос о Singleton, вы выходите на рассказ о том, что такое DI, и упоминаете модели внедрения зависимостей с использованием методов:
• AddSingleton,
• AddScoped,
• AddTransient.
На этом не останавливаемся. Дальше рассказываем, какие проблемы могут возникнуть с Singleton в многопоточной среде. Например, что будет, если работать с этим Singleton из нескольких потоков?
Тут нужно упомянуть:
• Race Condition
• механизмы синхронизации потоков (Lock, Mutex, Semaphore и т.д.)
Естественно, нужно знать, чем они отличаются.
Если нужно, вас всегда остановят и зададут уточняющий вопрос. Но благодаря такому подходу вы показываете, что не просто формально выучили паттерн. К тому же, если из вас не нужно «выдавливать» знание, это сильно упрощает задачу интервьюеру и создаёт впечатление человека, который шарит.
И, что немаловажно, вы хоть немного, пусть и не гарантированно, управляете тем, куда пойдёт интервью — туда, где с вашими знаниями всё ок. А время на интервью, сами понимаете, ограничено. 😉

#SimpleCode - Сергей Журавльёв

26 Dec, 07:07


SimpleCode — SOLID Клавиатор (Software Metal Ballad)
Меня много людей (целых 3 человека, а это уже много 😁) просили рассказать, как этот трек сделан. Поясняю:
Всё сделано с помощью нейронки Suno . Чтобы её использовать, никакой специальный гайд не нужен. Наклепать всякого рода музыку там можно за пару кликов, причём бесплатно.
Для меня лично это клепание особой ценности не несёт, но что действительно прикольно — туда можно загрузить свою собственную музыку и текст. На основе этого с вашим текстом будет создан новый трек в том стиле, который вы опишете.
Я довольно давно увлекался игрой на электрогитаре. Ну, как игрой — я называю это "побрынькиванием". Хотя я уже три года не держал гитару в руках, записи и риффчики остались. Один из них я и загрузил в нейронку — его в чистом виде можно услышать в первые 10 секунд трека.
А текст — это полёт моей буйной фантазии, слегка подправленный ChatGPT для рифмы. То, что он такой абсурдный, — сделано специально (держу в курсе если кто не понял) 🤓.
Риффов у меня осталось ещё много, да и тексты есть (тоже с прибабахом 😎). Может, даже стоит создать отдельный канал под всё это?

#SimpleCode - Сергей Журавльёв

25 Dec, 08:02


Итак, начнём с чего-то слегка безумного 😊. Сегодня я сделал то, что давно хотел 🎉. Благодаря AI, я смог использовать свои старые музыкальные наброски и идеи, чтобы превратить их вот в это 😎🎶.

Встречайте — SOLID Клавиатор (Software Metal Ballad)! 🤘🔥
https://www.youtube.com/watch?v=eQNmHW9HZrY

#SimpleCode - Сергей Журавльёв

24 Dec, 06:49


Никому не говорите пока, что меня здесь видели. 😉
З.Ы. Эта телега скоро станет полезнее!
З.З.Ы. А совсем скоро выйдет кое-что слегка безумное. 🤘

#SimpleCode - Сергей Журавльёв

24 Dec, 06:46


Channel name was changed to «#SimpleCode - Сергей Журавльёв»

#SimpleCode

09 Aug, 06:57


https://www.youtube.com/watch?v=aToq1UEKSuM&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=104

#SimpleCode

19 Jul, 06:56


https://www.youtube.com/watch?v=TLMwNFCcqVo&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=104

#SimpleCode

28 Jun, 07:29


https://www.youtube.com/watch?v=FawYy8tztdI&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=103

#SimpleCode

14 Jun, 06:41


https://www.youtube.com/watch?v=8E9P_lnJ7RI&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=102

#SimpleCode

31 May, 06:33


https://www.youtube.com/watch?v=8Slzd1G7f9Q&list=PLQOaTSbfxUtAMJaKWZbAUHFIUTdFHBESE&index=19

#SimpleCode

17 May, 07:11


https://www.youtube.com/watch?v=90WZfH-7Xow&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=101

#SimpleCode

10 May, 07:02


https://www.youtube.com/watch?v=k9XQBLUzNQA&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=99

#SimpleCode

26 Apr, 07:01


https://www.youtube.com/watch?v=V3eZX-nDQBk&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=98

#SimpleCode

19 Apr, 07:07


https://www.youtube.com/watch?v=zC0gn8_GafI&list=PLQOaTSbfxUtAMJaKWZbAUHFIUTdFHBESE&index=18

#SimpleCode

12 Apr, 07:02


https://www.youtube.com/watch?v=8eZy5xiildM&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=97

#SimpleCode

05 Apr, 07:02


https://www.youtube.com/watch?v=GAq9QrBvVtw&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=96

#SimpleCode

29 Mar, 07:20


https://www.youtube.com/watch?v=xH61vpBebjw&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=95

#SimpleCode

22 Mar, 07:28


https://www.youtube.com/watch?v=uVs4vLyvz-0&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=94

#SimpleCode

15 Mar, 07:37


https://www.youtube.com/watch?v=MDcPcKltm9M&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=93

#SimpleCode

08 Mar, 08:08


https://www.youtube.com/watch?v=tO7ohK6vTw4&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=93

#SimpleCode

01 Mar, 08:15


https://www.youtube.com/watch?v=wr_adG-biuc&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=91

#SimpleCode

22 Feb, 08:10


https://www.youtube.com/watch?v=9JaiDu6DJ-o&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=90

#SimpleCode

15 Feb, 08:38


https://www.youtube.com/watch?v=UIsf7vr87Eo&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=89

#SimpleCode

08 Feb, 08:13


https://www.youtube.com/watch?v=tSmY8ln4t8s&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=88

#SimpleCode

01 Feb, 08:06


https://www.youtube.com/watch?v=O3hY11e9Hnw&list=PLQOaTSbfxUtD6kMmAYc8Fooqya3pjLs1N&index=87

6,307

subscribers

24

photos

10

videos