СОЛИДный код

Эпизод 2. СОЛИДный код

Рад приветствовать вас во втором эпизоде сериала “ООП здорового человека”. В этой серии: мы узнаем(если кто-то еще не знает) о главных принципах ООПешного кодирования, которые ложатся в аббревиатуру с аббревиатур SOLID. Но, поскольку я не согласен, что эти 5 принципов основные – рассмотрим еще принципы.

SOLID

Вот, что нам говорит страница Википедии: “SOLID — мнемонический акроним, введённый Майклом Фэзерсом для первых пяти принципов, названных Робертом Мартином в начале 2000-х, которые означали 5 основных принципов объектно-ориентированного программирования и проектирования”. Я не филолог и не историк – потому приму это утверждение на веру(как по мне – здесь важно только то, что это набор принципов…). Посмотрев много источников, хочу сказать, что авторство принцыпов принадлежит не Робу Мартину; он всего лишь пересказал их – некоторые перевел на более доступный язык, некоторые переосмыслил(и скажу, что в его интерпретации они стали лучше) ну и т.д… ах-да, еще и популяризировал! – что немаловажно…

В принципе, эти принципы это здравый смысл кодера, пишущего хоть маломальски значимый проект. Они, в общем-то, не просто с пальца высосаны постулаты, а выработаны годами(и десятилетиями) практики разработки.

Теперь, сами принципах:

  • S – SRP: The Single Responsibility Principle
  • О – OCP: The Open Closed Principle
  • L – LSP: The Liskov Substitution Principle
  • I – ISP: The Interface Segregation Principle
  • D – DIP: The Dependency Inversion Principle

Практическая часть

Кроме теории, я буду в коде(на моем любимом PHP) разбирать как воплотить эти принципы. Для этого я подготовил следующий god-объект(объект-бог):

<?php
class Page
{
    // достаем ID продукта из URL
    // достаем данные о продукте
    // достаем данные о валюте
    // пересчитываем цену продукта
    // рисуем страницу продукта
}

а точнее объект, содержащий все методы для работы приложения. Немного о странице приложения: вывод пользователю страницы о продукте:

  • получить идентификатор продукта;
  • информацию о нем;
  • информацию о валюте покупателя;
  • расчет цены продукта в валюте покупателя;
  • рендер продуктовых данных в шаблон.

Сами методы реализовывать я не буду(не это цель, но посмотрим…) – всего-лишь продемонстрирую “расчесывание” класса согласно этим 5-ти принципам.

Смысл

Принципы SOLID стремятся свести к минимуму изменение модулей при их добавлении или удалении. Они также способствуют откладыванию принятия технических решений и разделению труда программистов.

Добавить комментарий

Ваш адрес email не будет опубликован.