Episodes
Мы обсуждали смысл метрик качества кода, но как они работают изнутри? Для этого у нас будет специальный гость .... ;) Спасибо всем, кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:04:10 Code Coverage - лучшая метрика? 00:16:00 Изнутри Code Coverage 00:29:20 Бесполезные метрики 00:36:00 Метрика - количество коммитов 00:39:20 Cyclomatic...
Published 11/15/24
Published 11/15/24
ООП против ФП ... ну что тут еще говорить? Спасибо всем, кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:08:40 ООП 00:34:00 ФП Ссылки: - https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/object-oriented/ : ООП в C# - https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/functional/pattern-matching : ФП в C# Видео:...
Published 11/08/24
В прошлый раз мы разобрали единую метрику от Microsoft, сегодня же пройдемся по другим популярным способам запихнуть качество кода в одно число. Спасибо всем, кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:09:00 Зачем Cyclomatic complexity? 00:27:00 Метод, который вызывается один раз, code smell? 00:31:55 Code Smells метрика 00:43:00...
Published 11/01/24
Мы часто называем что-то "говнокодом", но можно ли быть объективным и просто выделить ключевые метрики "говнистости"? Спасибо всем, кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:08:50 Что такое Code Quality метрики? 00:13:20 Maintainability Index это то что нужно? 00:30:20 Что говорят наши зратели? 00:33:00 Код - как...
Published 10/25/24
Все любят чистую архитектуру, но не будет ли больше грязи от нее в нашем коде? P.S.: в процессе записи мы случайно остановили стрим ... и не смогли перезапустить. Так что выпуск может показаться "неоконченным". Спасибо всем, кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:05:00 Зачем нужна Чистая Архитектура? 00:11:00 Unit тесты не...
Published 09/27/24
На AutoMapper многие накидываются, но проблема не в самой библиотеке, а в подходе, недостатки которого забивают автомаппером. Об этом и поговорим. Спасибо всем, кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:07:10 Копирование Dto в модель 00:24:50 AutoMapper для версионирования 00:32:10 AutoMapper и условия 00:36:45 Сущность per...
Published 09/22/24
Когда говорят о качестве кода, часто упоминают DDD. Но реально ли так сильны эти три буквы? Спасибо всем, кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:04:20 Что такое DDD? 00:13:20 На сколько сильно программист должен знать предметную область? 00:36:20 Стратегические паттерны DDD 00:41:00 Самое главное - единый язык 00:44:00...
Published 09/07/24
MediatR они б.. ставят, MediatR! Он нам и на..й не нужон MediatR ваш. Спасибо всем, кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:04:30 MediatR нужон? 00:07:15 Шо такое этот ваш MediatR? 00:25:10 Накуа мне MediatR этот ваш? 00:30:25 MediatR в деталях 00:42:50 Защищаем MediatR Ссылки: - https://github.com/jbogard/MediatR : Предмет...
Published 08/30/24
Разбираем говнокод, защищаем говнокод, обмаз... проникаемся говнокодом и не только. Спасибо всем, кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:05:00 Код на русском 00:07:00 Неправильное использование API 00:14:35 Generics Madness 00:20:40 Layout кода 00:28:40 Pattern Matching сложно читать? 00:39:00 История Code Behind 00:43:55...
Published 08/23/24
Было время, когда паттерны спрашивали на все собеседованиях, но ... прошло. Попробуем "откопать стюардессу" ... Спасибо всем, кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:14:40 Зачем нужны паттерны 00:16:50 Паттерн = шаблон? 00:23:00 Нужны ли паттерны GoF в 2024 году? 00:40:45 Виды паттернов 00:53:30 Протекающие паттерны 00:55:00...
Published 08/16/24
Есть 2 стула: на одном бесконечный рефакторинг, на втором говнокод. Оба варианта приводят к архивации репозитория. А как писать код "для души", чтобы и результат был, и душа не страдала? Спасибо всем, кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:06:30 Как рефакторить пет проекты 00:19:10 Как сделать расширяемое и простое...
Published 08/09/24
Есть два стула: на одном программист пишет пет проект и никогда не заканчивает, на другом менеджер орет под ухом "говнокодь и в прод". А есть ли золотая середина? Спасибо всем, кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:12:00 Манагеры - мудаки 00:16:00 Как объяснить что такое легаси тупому манагеру 00:26:40 "А почему вы пишете...
Published 08/02/24
C# развивается с немыслимыми темпами, но не вызывает ли подобная скорость рост говнокода? Спасибо всем кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:05:50 Generics 00:11:30 Префиксы ref, readonly, scoped 00:13:30 Primary Constructors 00:18:10 Tuples 00:24:20 Pattern Matching 00:34:30 Что такое говнокод? 00:39:50 Ranges 00:43:50...
Published 07/26/24
Выбор имени не просто сложно, а ... очень сложно. И сегодня мы поделимся супер-пупер принципом выбора имен: NURGLESS. Спасибо всем кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:03:00 Почему нейминг - самое главное? 00:10:00 NURGLESS Принцип 00:12:25 Ubiquitous Language 00:34:50 Referenced names 00:39:40 Google it 00:45:00 Local...
Published 07/19/24
Код это не только бизнес логика, но и 3-4 килограма логгов, трейсов, проверок, ассертов, которые не прибавляют в читабельности. Что же делать? Спасибо всем кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:03:40 Что такое замусоривание кода? 00:32:00 Что делать: хулиганство 00:37:30 #region 00:42:30 Выделение логики в отдельный...
Published 07/12/24
Люди убеждены, что следование правилам SOLID сделает их код действительно хорошим... но так ли это? Спасибо всем кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:03:30 Что такое CUPID? 00:13:00 SOLID как философия 00:20:00 Single-responsibility principle 00:27:00 В чем вред философии SOLID? 00:32:15 Open–closed principle 00:37:50...
Published 07/07/24
Новый формат: Адвокат Нургла! Разбираем примеры говнокода, пытаемся оправдать автора, думаем как превратить говно в конфетку. Спасибо всем кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:07:00 Разбираем говнокод Ссылки: - https://govnokod.xyz/language/cs/ : Источник вдохновения Видео: https://youtube.com/live/4igB2SOk30Y Слушайте...
Published 06/28/24
"Вы написал говнокод, сэр" - многие из нас боятся это услышать. Но что такое говнокод? Можно ли "дружить с говнокодом"? Что делать, если Вы поняли, что пишете говнокод? Спасибо всем кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:03:00 Легаси = Говнокод? 00:08:10 Что такое "Читаемость кода"? 00:16:00 Говнокод - код, сложный в...
Published 06/14/24
Что такое интеграционные тесты? Как их писать? Можно ли перевернуть тестовую пирамиду? Спасибо всем кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:05:10 Что такое интеграционный тест? 00:15:40 А что если только интеграционные тесты? 00:20:30 Как работают интеграционные тесты в Rider/Resharper? 00:33:40 Интеграционные тесты для...
Published 06/07/24
TDD - это не про тесты! TDD - это не "правильно и обязательно"! TDD - это ... узнаете в новом выпуске :) Спасибо всем кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:07:00 Что такое TDD? 00:15:40 Test Frist или TDD 00:34:00 TDD на легаси 00:45:55 Чем TDD плох? 00:49:00 TDD и состояние потока Ссылки: - https://youtu.be/TmY3AuoW_PU :...
Published 05/31/24
Писать тесты "за деньги" мы привыкли, но пет проекты же для души! Так есть ли смысл? Спасибо всем кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:05:40 Зачем писать тесты на пет проекты? 00:13:00 Тесты для gamedev 00:18:00 Чем отличаются pet-project тесты от production тестов? 00:21:30 Бюджет пет проекта 00:29:20 Мотивация писать...
Published 05/24/24
В C# принято создавать отдельный интерфейс для каждой сущности ради обеспечения тестируемости. Но так ли это нужно? Можно ли обойтись без создания дублирующего кода? Спасибо всем кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:02:50 В чем проблема интерфейсов для тестов? 00:18:45 protected virtual метод вместо выноса...
Published 05/10/24
Вы решились отрефакторить тесты, но как? - Следовать принципу "Сложные тесты результат сложного кода" и переделать код? - Неинвазивно поменять только тесты? Что же выбрать? Спасибо всем кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1Z Shownotes: 00:00:00 Вступление 00:11:55 Сколько тестов надо писать? 00:21:00 Меняем и тесты, и тестируемый код 00:46:45 Рефакторим...
Published 04/27/24
Присоединяйтесь к брейншторму "как улучшить тесты", добавляйте свой Pull Request в https://github.com/dotnetmore/shit-tests Тесты должны быть понятные, говорили они. Тесты должны быть короткие, учили они. Но что делать, если только arrange занимает 20 строк? А если act - больше чем просто вызов метода? А если логика кода достаточно сложная, так что в однострочный assert не влезает? Спасибо всем кто нас слушает. Ждем Ваши комментарии. Бесплатный открытый курс "Rust для DotNet...
Published 04/20/24