18.07.2012, 12:54
|
#6
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: ООП
У Страуструпа целый раздел посвящён, так сказать, философии программирования (никак не найду время изучить его более досконально).
Эпиграф к нему:
Сообщение от 24 Проектирование и программирование
Стремитесь, чтобы все было просто:
просто, как только возможно, но не проще того.
— А. Эйнштейн
|
Далее приведу фрагмент про классы:
Сообщение от 24.3.1. Что представляют собой классы
Начинающим обычно бывает трудно выявлять классы, но проблема эта
рассасывается со временем без долговременных последствий. Затем, однако, наступает
фаза, когда классы и классовые иерархии размножаются неконтролируемым
образом. Это, как раз, может вызвать долговременные проблемы, усложнив программу
и затруднив ее понимание и сопровождение. Не нужно каждую мелкую деталь
системы обязательно представлять классом, и не всякую взаимосвязь нужно
отражать в форме наследования классов. Цель проектирования — смоделировать
систему с соответствующим уровнем детализации и на соответствующем уровне
абстракции. Нахождение баланса между простотой и общностью — это не простое
дело.
|
В обзоре языка там же написано:

Сообщение от 2.8. Заключение
Не существует идеальных языков программирования. К счастью, язык и не
обязан быть идеальным, чтобы быть подходящим инструментом для создания больших
программных систем. На самом деле, язык программирования общего назначения
не может быть идеальным одновременно для всех решаемых с его помощью задач.
То, что идеально для одной задачи, в другой является скорее недостатком, ибо
достижение совершенства предполагает специализацию. Язык C++ разрабатывался
так, чтобы он служил хорошим инструментом для решения широкого круга задач,
и чтобы на нем можно было явно выразить широкий круг идей (идиом
программирования).
Не все можно выразить непосредственно, пользуясь встроенными средствами
языка. Но это и не нужно. Средства языка существуют для поддержки
разнообразных технологий и стилей программирования. Как следствие, в процессе изучения
языка нужно фокусироваться на освоении стилей программирования, для него
родных и естественных, а вовсе не на подробнейшем изучении мельчайших деталей
языковых конструкций.
В практическом программировании мало толку от знания «потайных мест»
языка или от применения максимально возможных средств. Отдельные средства языка
сами по себе не представляют большого интереса. Только во взаимодействии с
другими средствами и в контексте применяемой технологии они приобретают смысл
и интерес. Так что, читая последующие главы, помните, что истинной целью
изучения деталей языка является стремление научиться использовать их так, чтобы
поддерживать выбранный стиль программирования в контексте основательного плана
построения программной системы.
|
А вообще - принцип Бритвы Оккама рулит (и, кстати, Страуструп тоже его упоминает)
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|