Принципы программирования

Принципы программирования


  • KISS - Keep it simple, stupid - Делай проще
    Код должен быть как можно проще. (подробнее)
  • DRY - Don’t repeat yourself - Не повторяйся
    Принцип разработки, нацеленный на снижение повторения кода. (подробнее)
  • SOLID
    Single responsibility (SRP) - принцип единой ответственности
    Open-Closed (OCP) - открытости и закрытости
    Liskov Substitution (LSP) - принцип подстановки
    Interface Segregation (ISP) - разделение интерфейсов
    Dependency Inversion (DIP) - инверсия зависимости
    (подробнее)
  • SLAP - Принцип единого уровня абстракций
    Функция должна делать только 1 действие. (подробнее)
  • YAGNI - You aren't gonna need it - Вам это не понадобится
    Отказ от избыточной функциональности. (подробнее)
  • Закон Деметры
    Набор правил проектирования при разработке программного обеспечения, накладывающий ограничения на взаимодействия объектов. (подробнее)
  • PSR - Рекомендации по стандартам PHP
    • PSR-1 - базовый стандарт кодирования
      • Файлы должны использовать только <?php и <?=тег.
      • Файлы ДОЛЖНЫ использовать только UTF-8 без спецификации для кода PHP.
      • Пространства имен и классы ДОЛЖНЫ следовать «автозагрузке» PSR: [ PSR-0 , PSR-4 ].
      • Имена классов ДОЛЖНЫ быть объявлены в StudlyCaps.
      • Константы классов ДОЛЖНЫ быть объявлены в верхнем регистре с разделителями подчеркивания.
      • Имена методов ДОЛЖНЫ быть объявлены в camelCase.

      Подробнее про PSR-1

    • PSR-2 - руководство по стилю кодирования
      • Код ДОЛЖЕН соответствовать «руководству по стилю кодирования» PSR [ PSR-1 ].
      • Код ДОЛЖЕН использовать 4 пробела для отступов, а не табуляции.
      • НЕ ДОЛЖНО быть жесткого ограничения на длину строки; мягкий предел ДОЛЖЕН быть 120 символов; строки ДОЛЖНЫ состоять из 80 символов или меньше.
      • После namespace объявления ДОЛЖНА быть одна пустая строка, и после блока use объявлений ДОЛЖНА быть одна пустая строка .
      • Открывающие фигурные скобки для классов ДОЛЖНЫ располагаться на следующей строке, а закрывающие фигурные скобки ДОЛЖНЫ располагаться на следующей строке после тела.
      • Открывающие фигурные скобки для методов ДОЛЖНЫ располагаться на следующей строке, а закрывающие фигурные скобки ДОЛЖНЫ располагаться на следующей строке после тела.
      • Видимость ДОЛЖНА быть объявлена ​​для всех свойств и методов; abstract и final ДОЛЖЕН быть объявлен до видимости; static ДОЛЖЕН быть объявлен после видимости.
      • Ключевые слова структуры управления ДОЛЖНЫ иметь один пробел после них; вызовы методов и функций НЕ ДОЛЖНЫ.
      • Открывающие фигурные скобки для управляющих структур ДОЛЖНЫ располагаться на одной строке, а закрывающие фигурные скобки ДОЛЖНЫ располагаться на следующей строке после тела.
      • Открывающие круглые скобки для управляющих структур НЕ ДОЛЖНЫ иметь пробел после них, а закрывающие круглые скобки для управляющих структур НЕ ДОЛЖНЫ иметь пробел перед.

      Подробнее про PSR-2

    • PSR-3 - интерфейс логирования

      Основная цель - стандартизировать библиотеки и методы логирования, используя общий интерфейс Psr\Log\LoggerInterface. Подробнее про PSR-3

    • PSR-4 - автозагрузчик классов

      Стандарт описывает спецификацию автозагрузки классов, где разместить файлы, которые будут автоматически загружаться в соответствии со спецификацией. Подробнее про PSR-4

    • PSR-6 - интерфейс кэширования

      Интерфейс, главной целью которого является стандартизировать библиотеки кеширования. Подробнее про PSR-6

    • PSR-7 - интерфейсы сообщений HTTP

      В этом документе описаны общие интерфейсы для представления сообщений HTTP. Подробнее про PSR-7

  • Паттерны проектирования
    • Контейнер свойств
      Фундаментальный шаблон проектирования, который служит для обеспечения возможности динамического расширения свойств уже созданного объекта класса.

Читайте также: Инструменты управления временем

Поделиться ссылкой:
ВКонтакт Facebook Одноклассники Twitter Mail.Ru

Популярное

Шпаргалка Git команд
Проверка ИНН по контрольной сумме PHP/JavaScript
Шпаргалка к собеседованию программиста PHP, JavaScript, JQuery, CSS, HTML, MySQL, ООП.

Возврат к списку