TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Hududiy to‘plamlar Tematik to‘plamlar Платные каналы Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
  • Targ‘ibot
    Yandex Business orqali reklama TGStat Agency orqali kanallarda reklama TGStat.ru saytida reklama
Системный Аналитик

11 Feb 2025, 11:04

Telegram'da ochish Ulashish Shikoyat qilish

✅ SOLID

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


SOLID и ООП: в чём разница? 

🔷ООП —  методология или стиль программирования ( с основными свойствами: инкапсуляция, наследование и полиморфизм)
🔴SOLID — набор рекомендаций, как правильно использовать принципы ООП, чтобы создать код, который будет легче поддерживать и расширять
ООП даёт инструменты, а SOLID помогает применять их эффективно.


Принципы SOLID

❤️ — Single Responsibility Principle (Принцип единственной ответственности) 
Каждый класс должен решать одну задачу
делай модули меньше
🟢Пример: класс "Order" отвечает только за управление заказом, а уведомления отправляются другим классом

♥️Связь с ООП: связан с инкапсуляцией — каждый объект скрывает детали своей реализации и выполняет только одну функцию

❤️— Open/Closed Principle (Принцип открытости/закрытости) 
Класс должен быть открыт для расширений, но закрыт для изменений
делай модули расширяемыми

🟢чтобы добавить новый тип отчёта, создаём новый класс, не изменяя существующий код

♥️использует наследование - создание новых классов на основе существующих;
и полиморфизм - способность объектов разных типов использовать общий интерфейс для выполнения различных действий

❤️— Liskov Substitution Principle (Принцип подстановки Барбары Лисков) 
Подклассы должны заменять родительские классы без ошибок
наследуйся правильно
🟢 если класс "Bird" имеет метод "fly", класс "Penguin" не должен его наследовать, так как пингвины не летают

♥️связан с принципом наследования. Подклассы должны правильно реализовывать поведение родительских классов, не нарушать полиморфизм

❤️ — Interface Segregation Principle (Принцип разделения интерфейса) 
Узкие специализированные интерфейсы лучше, чем один общий
дроби интерфейсы
🟢вместо общего интерфейса "Animal" создаём отдельные интерфейсы "Flyable", "Swimmable", "Runnable"

♥️поддерживает полиморфизм и инкапсуляцию. Это делает классы более гибкими и позволяет  зависеть только от нужных методов

❤️ — Dependency Inversion Principle (Принцип инверсии зависимостей) 
Модули должны зависеть от абстракций, а не от конкретных реализаций
используй интерфейсы
🟢класс "UserService" зависит от интерфейса "Database", а не от конкретной реализации БД

♥️использовании абстракций (отделения концепции от её реализации);
и полиморфизма для уменьшения зависимости между модулями


❗Нарушение SOLID приводит к антипаттернам, таким как "God Object" (класс с множеством задач) или "Spaghetti Code" (запутанный код)


Зачем аналитику SOLID? 

➡️ поможет оценить архитектуру на этапе проектирования
🟢например, при добавлении новых способов оплаты система не должна требовать переписывания основного кода (принцип ❤️)

➡️ для составления требований к разработке и задач рефакторинга
🟢 если каждая функция изолирована, то изменения не затронут другие модули (принцип ❤️)

➡️ для согласования архитектурны с разработкой
🟢 корректное использование интерфейсов предотвратит сложную интеграцию с новыми системами в будущем (принцип ❤️)


📎 Материалы
1. Принципы SOLID в программировании — что это такое
2. SOLID
3. Простое объяснение принципов SOLID
4. SOLID принципы: что это такое и зачем они нужны?
5. SOLID — это несложно. С примерами на Python
6. SOLID == ООП?

📚Книги
1. Чистая архитектура — Роберт Мартин
2. Объектно-ориентированный анализ и проектирование с примерами приложений - Грэди Буч
3. Объектно-ориентированное мышление - Мэтт Вайсфельд
4. Приемы объектно-ориентированного проектирования. Паттерны проектирования. Хелм Ричард, Влиссидес Джон

#проектирование

➿➿➿➿➿➿➿➿➿➿

🧑‍🎓 Больше полезного в базе знаний по системному анализу

8.3k 1 153 1 36
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot