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

Материал из Artem Aleksashkin's Wiki
Перейти к навигации Перейти к поиску
Строка 11: Строка 11:
== ООП ==
== ООП ==


* Инкапсуляция
* Инкапсуляция (разделение доступа)
* Наследование
* Наследование
* Полиморфизм
* Полиморфизм (полиморфные методы для каждого типа свой метод)


== SOLID ==
== SOLID ==

Версия от 14:07, 28 октября 2022

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)

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

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

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

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