Некоторая серьезная критика ООП? [закрытый]

23
задан 4 revs, 3 users 86% 1 July 2018 в 09:16
поделиться

8 ответов

Какая версия ООП? Оригинальное видение Алана Кея? Уродливая современная его форма, которая полностью упускает из виду и, таким образом, обременяет нас причудливым контролем доступа, переменными-членами и т. Д.? Ориентация на наследование? На основе прототипа? Композиционное ООП?

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

Я не могу указать вам на какие-либо книги или статьи, которые убили мой интерес к ООП как к серебряной пуле (в отличие от одного из многих методов, которые я могу использовать для сохранения жизнеспособности моих проектов). Однако я могу указать на самую забавную критику определенного бренда ООП: Классическая книга Стива Йегге «Казнь в Королевстве существительных» .

19
ответ дан 29 November 2019 в 01:27
поделиться

Проблема в том, что большинство людей на самом деле не разбираются в объектно-ориентированном программировании, поэтому многие проектируют ОТСТОЯТЕЛЬНО.

Прочтите работы Скотта Амблера, включая его (теперь уже довольно старый) Создание работающих объектных приложений . Это открыло глаза для довольно многих людей.

4
ответ дан 29 November 2019 в 01:27
поделиться

как насчет казни Стива Йегге в королевстве существительного для java стиля OO

0
ответ дан 29 November 2019 в 01:27
поделиться

Rick Hickey's Are We There Yet ? - A Deconstruction of Object Oriented Time стала для меня открытием. Это самая логичная критика ОО, с которой я сталкивался.

12
ответ дан 29 November 2019 в 01:27
поделиться

Возможно, это не совсем то, что вы искали, но взгляните на номер журнала IEEE Software за январь/февраль: Объектно-ориентированный анализ: Is It Just Theory?. Основной вывод заключается в том, что OOA не обеспечивает хорошего соотношения затрат и выгод, поэтому используется слабо.

Учитывая, что OOA не используется эффективно или не поддерживается в "реальном мире", я подозреваю, что для больших проектов разработки общая архитектура системы, развернутая объектная модель и иерархия классов оказываются неоптимальными и плохо понимаемыми (реализуемыми) различными частями команды разработчиков. Вторая статья в том же журнале: Four Trends Leading to Java Runtime Bloat указывает на некоторые общие проблемы ООП, которые препятствуют развертыванию систем Java (ООП) большого объема. Наблюдения, сделанные в этой статье, вероятно, применимы к большинству высокоархитектурных ООП-приложений.

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

3
ответ дан 29 November 2019 в 01:27
поделиться

Библия Гедеона объектно-ориентированных шаблонов проектирования, метко названная Шаблоны проектирования . Одна из лучших книг по разработке программного обеспечения, которые я когда-либо читал.

-1
ответ дан 29 November 2019 в 01:27
поделиться

Вы действительно должны увидеть Mr.B. Jacobs's:

OOP Myths Debunked

(также известный как OOP Oversold.)

2
ответ дан 29 November 2019 в 01:27
поделиться

Если вам нужна критика объектно-ориентированного программирования, вот что я бы порекомендовал:

  1. Изучить Smalltalk
  2. Изучить Эрланг
  3. Изучить схему

Как только вы это сделаете, у вас будет много критики общепринятой интерпретации объектно-ориентированного программирования.

(Подсказка: объектно ориентированный объект во многих отношениях был предназначен для более близкого сходства с моделью вычислений Актера, но общая интерпретация этого фактически является модификацией процедурной / структурированной модели)

9
ответ дан 29 November 2019 в 01:27
поделиться