Программирование: различия между версиями
Перейти к навигации
Перейти к поиску
Artem (обсуждение | вклад) |
Artem (обсуждение | вклад) Нет описания правки |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 11: | Строка 11: | ||
== ООП == | == ООП == | ||
* Инкапсуляция | * Инкапсуляция (разделение доступа) | ||
* Наследование | * Наследование | ||
* Полиморфизм | * Полиморфизм (полиморфные методы для каждого типа свой метод) | ||
== SOLID == | == SOLID == | ||
* https://levelup.gitconnected.com/solid-principles-simplified-php-examples-based-dc6b4f8861f6 | |||
* S - Принцип единственной ответственности (The Single Responsibility Principle) | * S - Принцип единственной ответственности (The Single Responsibility Principle) | ||
Строка 22: | Строка 24: | ||
* I - Принцип разделения интерфейса (The Interface Segregation Principle) | * I - Принцип разделения интерфейса (The Interface Segregation Principle) | ||
* D - Принцип инверсии зависимостей (The Dependency Inversion Principle) | * D - Принцип инверсии зависимостей (The Dependency Inversion Principle) | ||
== Паттерны проектирования == | == Паттерны проектирования == | ||
Строка 67: | Строка 57: | ||
** Цепочка обязанностей | ** Цепочка обязанностей | ||
** Шаблонный метод | ** Шаблонный метод | ||
== GRASP == | |||
* Информационный эксперт (Information Expert) | |||
* Создатель (Creator) | |||
* Контроллер (Controller) | |||
* Слабое зацепление (Low Coupling) | |||
* Высокая связность (High Cohesion) | |||
* Полиморфизм (Polymorphism) | |||
* Чистая выдумка (Pure Fabrication) | |||
* Посредник (Indirection) | |||
* Устойчивость к изменениям (Protected Variations) | |||
== Алгоритмы и структуры данных == | == Алгоритмы и структуры данных == |
Текущая версия от 14:50, 10 февраля 2023
Программирование в общем смысле подразумевает, что вы можете заставить бесполезный ящик(системный блок) делать то, что вам нужно.
Для этого необходимо:
- Знать принципы работы операционной системы(ОС - это прослойка между вашим софтом и железом и, чтобы эффективно использовать железо, нужно подружиться с ОС)
- Знать алгоритмы и структуры данных
- Знать язык программирования и IDE
ООП
- Инкапсуляция (разделение доступа)
- Наследование
- Полиморфизм (полиморфные методы для каждого типа свой метод)
SOLID
- S - Принцип единственной ответственности (The Single Responsibility Principle)
- O - Принцип открытости/закрытости (The Open Closed Principle)
- L - Принцип подстановки Барбары Лисков (The Liskov Substitution Principle)
- I - Принцип разделения интерфейса (The Interface Segregation Principle)
- D - Принцип инверсии зависимостей (The Dependency Inversion Principle)
Паттерны проектирования
- https://designpatternsphp.readthedocs.io/ru/latest/README.html
- https://www.kobzarev.com/wp-content/uploads/books/php/PHPbook.pdf
- https://refactoring.guru/ru/design-patterns
- Порождающие паттерны
- Абстрактная фабрика
- Одиночка
- Прототип
- Строитель
- Фабричный метод
- Структурные паттерны
- Адаптер
- Декоратор
- Заместитель
- Компоновщик
- Мост
- Приспособленец
- Фасад
- Паттерны поведения
- Интерпретатор
- Итератор
- Команда
- Наблюдатель
- Посетитель
- Посредник
- Состояние
- Стратегия
- Хранитель
- Цепочка обязанностей
- Шаблонный метод
GRASP
- Информационный эксперт (Information Expert)
- Создатель (Creator)
- Контроллер (Controller)
- Слабое зацепление (Low Coupling)
- Высокая связность (High Cohesion)
- Полиморфизм (Polymorphism)
- Чистая выдумка (Pure Fabrication)
- Посредник (Indirection)
- Устойчивость к изменениям (Protected Variations)