Skip to content

Latest commit

 

History

History
17 lines (15 loc) · 3.01 KB

CLEANCODE.md

File metadata and controls

17 lines (15 loc) · 3.01 KB

Основные принципы ООП

  • Абстракция. Моделирование требуемых атрибутов и взаимодействий сущностей в виде классов для определения абстрактного представления системы.
  • Инкапсуляция. Скрытие внутреннего состояния и функций объекта и предоставление доступа только через открытый набор функций.
  • Наследование. Возможность создания новых абстракций на основе существующих.
  • Полиморфизм. Возможность реализации наследуемых свойств или методов отличающимися способами в рамках множества абстракций.

SOLID

  • Single Responsibility Principle. Принцип единственной ответственности. Для каждого класса должно быть определено единственное назначение. Все ресурсы, необходимые для его осуществления, должны быть инкапсулированы в этот класс и подчинены только этой задаче.
  • Open-Closed Principle. Принцип открытости/закрытости. «программные сущности … должны быть открыты для расширения, но закрыты для модификации».
  • Liskov Substitution Principle. Принцип подстановки Лисков. «функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа не зная об этом»
  • Interface Segregation Principle. Принцип разделения интерфейса. «много интерфейсов, специально предназначенных для клиентов, лучше, чем один интерфейс общего назначения»
  • Dependency Inversion Principle. Принцип инверсии зависимостей. «Зависимость на Абстракциях. Нет зависимости на что-то конкретное»

Clean Code

  • Все названия в формате CamelCase. Классы - с большой буквы, методы, поля и переменные - с маленькой.
  • Именя должны передавать намерения. Плохое название - d, dsc; хорошее - daysSinceCreation.
  • Методы должны быть компактными (< 20 строк) и выполнять только одну операцию. Как можно меньше параметров (возможно стоит объединить в отдельный класс).