Программирование: различия между версиями
Перейти к навигации
Перейти к поиску
Artem (обсуждение | вклад) Нет описания правки |
Artem (обсуждение | вклад) Нет описания правки |
||
(не показано 19 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
[[File:codecode.jpg|400px]] | |||
Программирование в общем смысле подразумевает, что вы можете заставить бесполезный ящик(системный блок) делать то, что вам нужно. | Программирование в общем смысле подразумевает, что вы можете заставить бесполезный ящик(системный блок) делать то, что вам нужно. | ||
Для этого необходимо: | Для этого необходимо: | ||
* Знать принципы работы операционной системы(ОС - это прослойка между вашим софтом и железом и чтобы эффективно использовать железо, нужно подружиться с ОС) | * Знать принципы работы операционной системы(ОС - это прослойка между вашим софтом и железом и, чтобы эффективно использовать железо, нужно подружиться с ОС) | ||
* Знать алгоритмы и структуры данных | * Знать алгоритмы и структуры данных | ||
* Знать язык программирования и IDE | * Знать язык программирования и IDE | ||
== | == ООП == | ||
* Инкапсуляция (разделение доступа) | |||
* Наследование | |||
* Полиморфизм (полиморфные методы для каждого типа свой метод) | |||
== SOLID == | |||
* https://levelup.gitconnected.com/solid-principles-simplified-php-examples-based-dc6b4f8861f6 | |||
* 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) | |||
== Алгоритмы и структуры данных == | == Алгоритмы и структуры данных == | ||
* [[Деревья]] | |||
* [[Сортировка]] | * [[Сортировка]] | ||
* [[Графы]] | |||
* [[Хэш таблица]] | |||
== Языки | == Языки программирования == | ||
* [[PHP]] | * [[PHP]] | ||
* [[Python]] | * [[Python]] | ||
* [[Golang]] | |||
* [[Lua]] | |||
* [[Java]] | |||
* [[JavaScript]] | * [[JavaScript]] | ||
* [[TypeScript]] | |||
* [[Bash]] | * [[Bash]] |
Текущая версия от 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)