Программирование

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

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)

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

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