Обзор кода SimpleCode, предоставленного автором на YouTube и Patreon. Анализ не носит критического характера.
Бесплатный курс
Бесплатный курс по C# для профессионалов, представленный в виде плейлистов на YouTube, не соответствует профессиональному уровню. Вместо предметного изучения программирования, наблюдается пересказ документации без объяснения практического применения. Отсутствует профессиональный подход, характерный для курсов других авторов (например, Гоши Дударя, Хауди Хо). Автору, по всей видимости, не хватает коммерческого опыта разработки, что мешает ему выйти за рамки технического описания функциональности.
Анализ кода с Patreon
Для анализа были использованы исходные коды из видео автора, доступные на Patreon.
Проект 1: ASCII-графика
Проект по преобразованию растрового изображения в ASCII-art. Код компактный (один-два файла), использует готовые библиотеки. Хотя проект работоспособен, наблюдаются некоторые недостатки:
- Стиль именования констант не соответствует C# конвенциям (отсутствие использования заглавных букв).
- Неудачный выбор глагола Resize для метода, рисующего Bitmap. Предлагается обсудить альтернативные варианты в комментариях.
- Несогласованность в подходе к мутабельности: метод ResizeBitmap немутабельный (возвращает новый экземпляр Bitmap), а ExtendToGrayscale – мутабельный (изменяет существующий Bitmap).
- Использование методов GetPixel и SetPixel для работы с Bitmap, что приводит к низкой производительности при обработке полноразмерных изображений. Рекомендуется использовать LockBits для доступа к памяти растра.
- Структура класса: Класс Bitmap и конвертер ASCII содержат Bitmap. Предлагается использовать отдельный сервис AppState.
Несмотря на указанные недостатки, проект в целом выполнен хорошо, особенно учитывая формат YouTube.
Проект 2: Передача изображений с веб-камеры
Проект по передаче изображений с веб-камеры между компьютерами через клиент-сервер. Код характеризуется низким качеством:
- Отсутствует соблюдение правил форматирования кода (табуляция, отступы).
- Стиль кода непоследовательный, что свидетельствует о копировании фрагментов из различных источников без должной обработки.
- Стиль именования события (videoSource_Frame) не соответствует гайдлайнам C#.
- Непоследовательное использование сокращений и try-catch блоков.
В целом, проект свидетельствует о недостатке профессионального опыта в разработке на C#.
Проект 3: Игра «Жизнь»
Реализация игры «Жизнь» на основе конечного автомата. Недостатки проекта:
- Неудачное название класса GameEngine (следует использовать более конкретное название).
- Неудачный выбор названия свойства conditions.
- Непоследовательность в использовании терминологии (generation, cells).
- Непоследовательное использование нижних подчеркиваний для обозначения приватных полей.
Анализируемые проекты представляют собой фрагменты кода, написанные без соблюдения стандартов и согласованности стиля. Отсутствует системный подход к разработке. Бесплатный курс автора не рекомендован из-за поверхностного характера изложения материала.