.
и функциональное программирование тоже.
Так получилось, что, несмотря на то, что я знаком со многими парадигмами и техниками программирования, я не придерживаюсь строго ни одной из них.
Однако я не считаю ни одного из них отстойным.
Почему? Потому что программирование — это искусство оперировать абстрактной информацией.
Это очень сложное искусство – поскольку человеческий мозг совершенно не приспособлен для работы с абстракциями.
Почему я люблю ООП и использую его в своих проектах? Потому что концепция классов и объектов облегчает мне манипулирование абстрактными сущностями, которые я держу в голове.
Многие из них (эти сущности) действительно выглядят как сходящие с конвейера штампованные изделия, состоящие из n рычагов, выполняющие m функций и имеющие какое-то скрытое от пользователя внутреннее состояние.
Почему я люблю функциональное программирование? Потому что это позволяет мне держать в уме рабочий процесс моих объектов в виде конвейера, где на каждом этапе применяется новая операция.
Почему мне нравится, например, подход или прототипы MVC? Да, по той же причине.
Каждая парадигма, метод, шаблон и технология в конечном итоге направлены на то, чтобы сделать модель приложения в моей голове более ясной и удобной для использования, чтобы я мог писать более элегантный код с меньшим количеством ошибок.
А еще для того, чтобы человеку, который будет поддерживать этот код, было легко составить в голове картину того, как все это работает. Поэтому я не ограничиваюсь каким-то одним подходом и выбираю в каждый конкретный момент тот, который мне кажется более удобным для описания предметной области.
Есть только одно правило: подобные проблемы надо решать одинаковым способом.
Доводить любой подход до крайности – то есть до того, как использовать его там, где он ничего не облегчает, а только все усложняет – это отстой.
Решение простое: всегда исходить из удобства, которое обеспечивает тот или иной подход, и не более того.
Теги: #ООП #Функциональное программирование #программирование #ООП
-
Смартфон Для Путешественников Sony Z3 Dual
19 Oct, 24