Python с нуля к первым деньгам за коды
320 subscribers
91 photos
44 videos
154 links
Download Telegram
#SOLID #Python #OOP #D #Программирование #Кодинг #Продукт #VSCode
🔁 D — Dependency Inversion Principle (Инверсия зависимостей)

Зависимости — от абстракций, не от конкретики. VS Code + SOLID = гибкий код, который легко продать.

# Плохо: зависимость от конкретного класса
class LightBulb:
def turn_on(self): print("Лампочка включена")

class Switch:
def __init__(self):
self.bulb = LightBulb() # Жёсткая привязка!

def operate(self):
self.bulb.turn_on()


➡️ Следующий пост: как инвертировать зависимости

Знаешь с кем поделиться?
#SOLID #Python #D #OOP #Архитектура #VSCode #Программист #Фриланс
🔁 D — Dependency Inversion Principle (Инверсия зависимостей)

Зависимости — от абстракций, не от конкретики.
VS Code + SOLID = гибкий код, который легко продать, масштабировать и поддерживать.
Пиши так, чтобы клиент мог заменить "лампочку" на "вентилятор" — без переписывания всего кода 💡

# Плохо: Жёсткая зависимость от конкретного класса
class LightBulb:
def turn_on(self):
print("💡 Лампочка включена")

class Switch:
def __init__(self):
self.bulb = LightBulb() # Привязка к конкретике!

def operate(self):
self.bulb.turn_on()

# Что, если захотим включать вентилятор? Переписывать Switch? 😬


# Хорошо: Зависимость от абстракции — интерфейса
from abc import ABC, abstractmethod

class Switchable(ABC):
@abstractmethod
def turn_on(self): pass

@abstractmethod
def turn_off(self): pass

class LightBulb(Switchable):
def turn_on(self): print("💡 Лампочка включена")
def turn_off(self): print("💡 Лампочка выключена")

class Fan(Switchable):
def turn_on(self): print("🌀 Вентилятор включён")
def turn_off(self): print("🌀 Вентилятор выключен")

class Switch:
def __init__(self, device: Switchable): # Зависимость от интерфейса!
self.device = device

def operate(self):
self.device.turn_on()

# Теперь можно подключать ЛЮБОЕ устройство!
switch = Switch(Fan())
switch.operate() # 🌀 Вентилятор включён — без изменений в Switch!


📌 Почему это важно для тебя?
→ Ты можешь легко заменить компоненты (БД, API, платежки)
→ Код не ломается при расширении
→ Работодатели и заказчики ценят такой подход — он экономит время и деньги
→ Такой код — продукт, за который платят 💰


🚀 Примени DIP в своём проекте → выложи на GitHub → покажи заказчику.
Ты уже на шаг ближе к фрилансу или стажировке.

Знаешь с кем поделиться?
#SOLID #Python #OOP #D #GitHub #Архитектура #Фриланс #PyCharm
DIP — внедряй зависимости через абстракции

Твой код должен быть как конструктор LEGO — легко заменять детали. GitHub + SOLID = доверие и повторные заказы.

from abc import ABC, abstractmethod

class Switchable(ABC):
@abstractmethod
def turn_on(self): pass
@abstractmethod
def turn_off(self): pass

class LightBulb(Switchable):
def turn_on(self): print("Лампочка включена")
def turn_off(self): print("Лампочка выключена")

class Fan(Switchable):
def turn_on(self): print("Вентилятор включён")
def turn_off(self): print("Вентилятор выключен")

class Switch:
def __init__(self, device: Switchable): # Зависимость от интерфейса
self.device = device

def operate(self):
self.device.turn_on()

# Можно подключать любое устройство!
switch = Switch(Fan())
switch.operate() # Включает вентилятор


➡️ Следующий пост: SOLID в реальной жизни 🧠

Знаешь с кем поделиться?