Re[10]: Кому ваще этот С++ нужен?
От: Evgeny.Panasyuk Россия  
Дата: 24.05.15 01:41
Оценка:
Здравствуйте, 0BD11A0D, Вы писали:

BDA>А теперь послушайте другую интерпретацию вашего наблюдения. Чуть ли не единственное, но убойное преимущество ООП — возможность так организовать код, что он становится самодокументируемым. Как раз интеллисенс играет тут первую скрипку. Вы открываете его окошко и видите ВСЕ возможности некоторого класса.


Нет, далеко не все. Например он не покажет что этот объект может быть аргументом у метода другого объекта
А вот если складывать внутрь класса всё то что может быть реализовано через его публичный интерфейс — то это уже ухудшение инкапсуляции и усложнение поддержки.
Да и например в D можно вызывать non-member функцию через "точку", такое может и к C++ добавят (была даже статья от Страуструпа об этом (как и об обратом — вызов метода с синтаксисом функции)) — так что IntelliSense это слабый аргумент (это скорее вопрос к IDE — пусть делают новые формы дополнения, а не только "через точку").

BDA>Альтернатива — курить маны. То есть, вышел новый стандарт, новый STL, новый boost и вы должны сразу прочитать, понять и запомнить все, что написано в сопроводиловке.


Читать документацию придётся в любом случае, чтобы знать контракты.

BDA>Нормальные люди предпочитают осмотреть классы с высоты птичьего полета, чтобы знать, что вообще есть, а потом уже углубленно знакомиться с нюансами вызова методов (типа, почему пишется Манчестер, читается Истанбул).


А это вообще ортогонально. Декомпозицию на контейнеры и алгоритмы можно делать и в что называется в "true OO style". То есть смотришь ты "с высоты птичьего полета" на класс UTF-8 строки, и видишь что она реализует IBidirectionalSequence, далее смотришь на алгоритмы которые принимают IBidirectionalSequence — и находишь там to_lower, split или что там нужно.

Или ты против такой декомпозиции вообще? Тогда например для каждой строки (и контейнера в общем) придётся придётся реализовывать каждый алгоритм — M контейнеров * N алгоритмов

BDA>Как раз вынесение алгоритмов за пределы классов принципиально и не дает воспользоваться этим преимуществом ООП. Процедурщина и хендловщина в полный рост.


Ты так говоришь как будто "true OOP" это всегда хорошо, а "процедурщина" плохо.
Отредактировано 24.05.2015 2:16 Evgeny.Panasyuk . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.