Программирование: различия между версиями
Перейти к навигации
Перейти к поиску
Artem (обсуждение | вклад) Нет описания правки |
Artem (обсуждение | вклад) Нет описания правки |
||
(не показано 14 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
[[File:codecode.jpg|400px]] | |||
Программирование в общем смысле подразумевает, что вы можете заставить бесполезный ящик(системный блок) делать то, что вам нужно. | Программирование в общем смысле подразумевает, что вы можете заставить бесполезный ящик(системный блок) делать то, что вам нужно. | ||
Строка 8: | Строка 10: | ||
== ООП == | == ООП == | ||
* Инкапсуляция | |||
* Инкапсуляция (разделение доступа) | |||
* Наследование | * Наследование | ||
* Полиморфизм | * Полиморфизм (полиморфные методы для каждого типа свой метод) | ||
== SOLID == | == SOLID == | ||
* https://levelup.gitconnected.com/solid-principles-simplified-php-examples-based-dc6b4f8861f6 | |||
* S - Принцип единственной ответственности (The Single Responsibility Principle) | * S - Принцип единственной ответственности (The Single Responsibility Principle) | ||
Строка 20: | Строка 25: | ||
* D - Принцип инверсии зависимостей (The Dependency Inversion 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) | |||
== Алгоритмы и структуры данных == | == Алгоритмы и структуры данных == | ||
* [[Деревья]] | |||
* [[Сортировка]] | * [[Сортировка]] | ||
* [[Графы]] | |||
* [[Хэш таблица]] | |||
== Языки программирования == | == Языки программирования == | ||
Строка 32: | Строка 82: | ||
* [[PHP]] | * [[PHP]] | ||
* [[Python]] | * [[Python]] | ||
* [[ | * [[Golang]] | ||
* [[Lua]] | * [[Lua]] | ||
* [[Java]] | * [[Java]] |
Текущая версия от 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)