Открыто

Тотальный ООП на Python

Тема в разделе "Бизнес и свое дело", создана пользователем Гайзенберг, 24 апр 2024.

Цена: 3200р.
Взнос: 3200р.

Основной список: 31 участников

  1. 24 апр 2024
    #1
    Гайзенберг
    Гайзенберг ОргОрганизатор (А)

    Тотальный ООП на Python

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

    Херня.
    Опять ты втираешь мне какую-то дичь, скажешь ты.
    Но позволь тебе возразить. Сколько ты купил|а курсов по ООП? Сколько из них них ты посмотрел|а?
    Видел|а ли ты там что-то большее, чем: "Вот мы создаем класс *Животное*, и класс *Котик* который от него наследуется"?

    В жопу этих котиков. И животных туда же. И классы автомобиль. И класс матрешка.
    Задрали!
    Позволь немного остудить тебя. Котики, они действительно неплохи для объяснения концепции... Проблема этих курсов в том, что дальше котиков никто не идет.
    И в итоге, у тебя кроме самых базовых примеров синтаксиса ничего не остается. А раз так, ты ничего не пишешь. Нет практики - нет навыка. И ты идешь на новую итерацию этого цикла.

    И вот ты опять потерялся|лась в своих 60 функциях, в попытке внести пару простых правок в код.
    А что, если я тебе скажу, что за котиками, матрешками, автомобилями кроется целый новый мир, под названием "Паттерны проектирования"?

    Писать на ООП не просто приятно, это, блять, космически удобно!
    И знаешь что еще более круто?
    Иметь возможность легко расширять и редактировать код написанный в ООП стиле, написанный с применением паттернов.
    Позволь мне провести тебя вглубь, и я покажу тебе, на сколько глубока кроличья нора!

    Для кого этот курс?

    Курс идеально тебе подойдет, если ты ощущаешь что функциональный стиль невпорядке.
    Странная мысль. Но ее не отогнать. Она как заноза в мозгу. Как стеклянный потолок. Она сводит с ума. Ты чувствуешь ограничение функционального стиля.
    Тебе тяжело поддерживать свои скрипты, тяжело их редактировать, а от идеи масштабирования ты уже давно отказался|лась...

    Ты владеешь = ["База Пайтон", "Функциональный стиль", "Аннотации типов"]

    Тебе хочется верить, что ООП это не про "Котиков" и хочется освоить не только базу, но и посмотреть что там дальше, за следующим поворотом.

    Что в программе?

    На самом деле это 3 курса в одном.
    Я планировал это как три курса. Я писал программу для 3 курсов.
    Но потом решил, да черт с ним.
    Пусть это будет большой жирный курс по ООП. Такой курс, как люблю я. Как любишь ты, дорогой Складчик.

    Часть 1. Основы ООП на Python

    В этой части мы разберем базу.
    Ты узнаешь про основные концепции ООП, что курили, в смысле чем в вдохновлялись создатели и почему профессионалы зачастую скептически относятся к наследованию.
    Разберем такие "страшные" термины, как "Полиморфизм" и "Инкапсуляция".
    Несмотря на серьёзность темы, немного времени уделим тренировке на примерах с котиками — без этого никак.
    Исследуем различные виды наследования, концепцию миксинов и разберемся, как в Python разрешаются конфликты наследования.
    Ты построишь надёжный фундамент, который позволит тебе развивать практические навыки на продвинутом уровне.

    В рамках курса мы рассмотрим следующие темы:
    • Введение в ООП: зачем оно нужно и как с его помощью решать задачи.
    • Правила именования в ООП: как правильно называть классы, объекты и методы.
    • Атрибуты класса и экземпляра: отличия и назначение.
    • Инициализация экземпляров: ключевое слово `self`, конструкторы `__init__` и `__new__`.
    • Методы экземпляра, класса и статические методы: когда и как их использовать.
    • Работа с атрибутами, использование `attr` и словаря `__dict__`.
    • Магические методы: обзор основных и дополнительных, их роль в Python.
    • Операторы сравнения и их перегрузка через декоратор `@total_ordering`.
    • Сериализация и десериализация объектов через `repr`.
    • Инкапсуляция: защита данных и методов внутри класса, модификаторы доступа `protected` и `private`.
    • Геттеры и сеттеры: безопасный доступ к данным.
    • Полиморфизм: использование одного интерфейса для разных типов данных.
    • Датаклассы в Python: автоматизация рутинных методов класса.
    • Наследование: создание иерархий классов, роль функции `super`.
    • Множественное и многоуровневое наследование: особенности и подходы.
    • Абстрактные классы и методы: создание шаблонов для наследования.
    • Разрешение конфликтов наследования: метод разрешения порядка (MRO).
    • Проверка типов с помощью `isinstance()` и `issubclass()`.
    • Миксины: их использование для гибкого расширения функциональности классов.

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

    Часть 2. UML

    Унифицированный язык моделирования.
    Те самые блок-схемки, которые ты рисовал|ла когда-то на уроках программирования в школе. Ты вырос|ла уже давно.

    И они тоже выросли.
    Это стандарт. Посмотрим на основные виды диаграмм UML, а так же познакомимся с божественным PlantUML синтаксисом, код, который позволяет рендерить диаграммы.
    Это позволит нам визуализировать любые, самые сложные конструкции кода.

    Чем великолепен UML? Он подходит для любых процессов. Не только для кодинга. И это на самом деле могло бы стать отдельным курсом, потому что с помощью него можно выстраивать диаграммы любых процессов.

    От брачного периода котиков, до сложных бизнес процессов.
    Мы же, в этой части, изучим основные виды UML диаграмм, и с помощью них, познакомимся с паттернами проектирования ООП.
    Эта часть будет полезна всем, кому интересен UML, PlantUML, а так же паттерны проектирования, без привязки к языку программирования.

    Мы рассмотрим следующие типы диаграмм:
    • Диаграмма последовательности
    • Диаграмма классов
    • Диаграмма компонентов
    • Диаграмма деятельности

    С помощью них мы на простых и понятных примерах (а за тем и на сложных) посмотрим на следующие паттерны (пока без привязки к языку)
    Предварительно.
    По количеству участников я буду расширять этот список.

    В планах:
    - Одиночка
    - Строитель
    - Абстрактная фабрика
    - Фабричный метод
    - Компонент
    - Фасад
    - Прокси
    - Стратегия
    - Состояние
    - Декоратор
    - Наблюдатель

    Часть 3. Паттерны ООП на Python

    Не пытайся "писать на ООП". Это бесполезно. Для начала тебе нужно понять главное.
    Ты знаешь что главное? ООП не что-то материальное.
    Это концепция. И основное в ней - ты. Вместо того чтобы пытаться придумать классы и их связи, используй паттерны Гость!

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

    Этот раздел разделен на три уровня сложности: от абстрактных примеров до жизненных и боевых сценариев, как я обычно демонстрирую это студентам в трехчасовых лекциях.
    Мы рассмотрим все паттерны из второй части, на примерах кода.

    Бонусы

    Для получения бонусов:
    - Организаторы и выше: подпись.
    - Прочие участники: три рекламных поста.
    В теме обязательно указывайте, что реклама выполнена, приложите ссылки на посты или укажите на подпись.

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

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

    Декораторы
    Мы детально разберем этот паттерн проектирования на Python, от концепции замыкания, до декоратора с параметрами, а так же декоратора класса и методов.

    На простых, нормальных примерах, а не вот этих ваших фракталах фибоначах.
    Я замкну твой мозг, сверну его в трубочку, а когда он разомкнется, ты познаешь всю прелесть использования декораторов в своем коде.
    ---
    Это будет увлекательное приключение. И я приложу все силы, чтобы сделать самый крутой курс по ООП, который ты видел|а.

    Пропустишь этот курс - и сказке конец.

    Ты проснешься в своей постели, и поверишь, что это был просто сон.

    Запишешься, и войдешь в страну чудес.

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

    Станет понятно, зачем все было нужно, потому что все будет правильно.
     
    Последнее редактирование модератором: 29 апр 2024
    5 пользователям это понравилось.
  2. Последние события

    1. Lilla My
      Lilla My участвует.
      17 май 2024 в 09:11
    2. Gelonos
      Gelonos участвует.
      12 май 2024 в 23:31
    3. sunny
      sunny участвует.
      12 май 2024 в 10:45
    4. skladchik.com
      В складчине участвует 30 человек(а).
      12 май 2024 в 10:45
  3. Обсуждение
  4. 24 апр 2024
    #2
    Гайзенберг
    Гайзенберг ОргОрганизатор (А)
    В каком формате будет курс?
    Курс будет в текстовом формате, создаваемом в программе Obsidian.
    Текст и примеры кода будут многократно вычитаны.

    Он будет доступен в форматах Markdown и PDF, а также возможно будет конвертирован в HTML с симпотичным Bootstrap-5 оформлением.

    Почему не будет видео?
    В курсе представлено много материала, и создание видео потребовало бы значительных трудозатрат, что существенно увеличило бы его стоимость — в 2-3-4 раза выше.
    Это могло бы не устроить большинство участников.

    Будут ли домашние задания?
    Домашних заданий в курсе не будет, однако будут практические задачки, которые можно обсуждать в приватной теме и по которым я буду давать обратную связь.

    Когда стартует курс?
    Старт курса планируется не ранее конца июля. Я хотел бы набрать не менее 50 участников и нужно время для оформления всех материалов.

    Почему так мало паттернов?
    Каждый паттерн будет подробно рассмотрен на нескольких примерах с использованием UML диаграмм и Python кода.
    Это существенно увеличивает объем курса. Если у участников возникнет интерес, я добавлю дополнительные популярные паттерны.

    Зачем нам PlantUML?
    Я не люблю рисовать, даже на компьютере. PlantUML позволяет легко рендерить UML диаграммы из кода, что делает процесс удобным и быстрым.

    Что понадобится для освоения материала?
    Для комфортного изучения материала можно использовать программу Obsidian. Так же любую программу для просмотра PDF
    Также вам может пригодиться мой курс по Obsidian.

    Для рендеринга PlantUML диаграмм можно использовать Studio Code или Obsidian с соответствующими плагинами, а также онлайн сервисы.
    Я перешел с PyCharm на VSCode и могу подготовить бонусный материал по его конфигурации.
    Плагины для просмотра Markdown в VSCode также могут быть полезны, если вы предпочтете не использовать Obsidian.
     
    Последнее редактирование: 24 апр 2024
  5. 25 апр 2024
    #3
    Dimon0014
    Dimon0014 ЧКЧлен клуба
    Бонусный материал по теме был бы кстати. Но еще хотелось бы услышать причину(ы) перехода на VSCode.
     
    1 человеку нравится это.
  6. 25 апр 2024
    #4
    Гайзенберг
    Гайзенберг ОргОрганизатор (А)
    PyCharm - он как MacOS а VS Code как Linux.
    В одном месте надо платить много денег, или использовать кряки. За тебя все уже продумали.
    В другом, надо страдать. Настраивать. Потом снова страдать.
    Но это прекрасно. Ибо ты можешь интегрировать почти все что угодно в VS Code - от встроенной поддержки баз данных, до красивого предпросмотра документов Markdown и PlantUML диаграмм :)

    В целом, уже есть готовая инструкция до студентов, буду облагораживать тогда)
     
    1 человеку нравится это.