Программирование: различия между версиями

Материал из Artem Aleksashkin's Wiki
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показано 13 промежуточных версий этого же участника)
Строка 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 ==


* [[Linux]]
* Информационный эксперт (Information Expert)
* Создатель (Creator)
* Контроллер (Controller)
* Слабое зацепление (Low Coupling)
* Высокая связность (High Cohesion)
* Полиморфизм (Polymorphism)
* Чистая выдумка (Pure Fabrication)
* Посредник (Indirection)
* Устойчивость к изменениям (Protected Variations)


== Алгоритмы и структуры данных ==
== Алгоритмы и структуры данных ==
Строка 35: Строка 82:
* [[PHP]]
* [[PHP]]
* [[Python]]
* [[Python]]
* [[GO]]
* [[Golang]]
* [[Lua]]
* [[Lua]]
* [[Java]]
* [[Java]]

Текущая версия от 14:50, 10 февраля 2023

Codecode.jpg

Программирование в общем смысле подразумевает, что вы можете заставить бесполезный ящик(системный блок) делать то, что вам нужно.

Для этого необходимо:

  • Знать принципы работы операционной системы(ОС - это прослойка между вашим софтом и железом и, чтобы эффективно использовать железо, нужно подружиться с ОС)
  • Знать алгоритмы и структуры данных
  • Знать язык программирования и 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)

Паттерны проектирования

  • Порождающие паттерны
    • Абстрактная фабрика
    • Одиночка
    • Прототип
    • Строитель
    • Фабричный метод
  • Структурные паттерны
    • Адаптер
    • Декоратор
    • Заместитель
    • Компоновщик
    • Мост
    • Приспособленец
    • Фасад
  • Паттерны поведения
    • Интерпретатор
    • Итератор
    • Команда
    • Наблюдатель
    • Посетитель
    • Посредник
    • Состояние
    • Стратегия
    • Хранитель
    • Цепочка обязанностей
    • Шаблонный метод


GRASP

  • Информационный эксперт (Information Expert)
  • Создатель (Creator)
  • Контроллер (Controller)
  • Слабое зацепление (Low Coupling)
  • Высокая связность (High Cohesion)
  • Полиморфизм (Polymorphism)
  • Чистая выдумка (Pure Fabrication)
  • Посредник (Indirection)
  • Устойчивость к изменениям (Protected Variations)

Алгоритмы и структуры данных

Языки программирования