-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


Язык для обучения программированию

Пятница, 14 Августа 2020 г. 16:59 + в цитатник
Qraizer:
Цитата OpenGL @
Подобная штука для enum-ов довольно полезна безотносительно желания повыпендриваться.
Ни разу не понадобилось, OpenGL. Перечисления по определению являются дискретным входом, для таких арифметические операции просто не определены. Если хочешь доопределить, это другой вопрос, но тут же встаёт новый: зачем оно понадобилось, не баг ли это в архитектуре?
Цитата D_KEY @
Qraizer, ну вот сериализацию на C++ ты как предлагаешь делать?
Ото ты не знаешь. Никто, кроме самого класса, не может знать лучше, как сохранить его состояние и как в дальнейшем восстановить. Какие-то атрибуты он вообще не хранит, а вычисляет при их запросе или принимает и раскладывает на составляющие при установке. (Типичнейший пример – атрибуты Ro и Fi для класса комплексных чисел, который в качестве полей хранит атрибуты Re и Im.) Какие-то вообще не его, а он их выдаёт за свои, сиречь они им делегируются. (Можно т.о. представить себе реализацию упомянутого Connection, чьи атрибуты опираются на объекты ОС.) В частном случае ты можешь реализовать сериализацию класса через его публичные гет/сеттеры, но в общем случае только сам класс знает, как это сделать не только правильно, но и эффективно. Он должен поддерживать этот интерфейс. Если его автор не озаботился, это либо ошибка дизайна класса, либо это значит, что вполне достаточно гет/сеттеров. И вот на этом нужно при обучении делать упор. А на том, как обходить недостатки дизайна, если вдруг архитектурно правильное решение – дополнить дизайн класса реализацией интерфейса сериализации – невозможно, обучать на факультативах. И там уже можно и рассказать про один из вариантов обхода неудачных проектных решений в лице рефлексии.
Понимаешь, D_KEY, проблема нынешнего образования в том, что не делается разницы между программированием как наукой и программированием как практическим навыком. И это ИМХО неправильно. Если первое выдавать за второе, мы получим армию крутых кодеров, а хотелось бы программеров.

P.S. Твоё отношение к паттерну рефлексии я понял ещё с прошлого поста, applegame, не волнуйся. Теория программирования против сильных связей между сущностями более, чем это необходимо, но ты имеешь право на иное мнение.

Добавлено
P.P.S. И ты сильно недооцениваешь Плюсы. Мне никто не помешает распарсить любую формальную грамматику, которой я научу Плюсовый компилятор в компайл-тайм. Библиотек с поддержкой интерпретации любых скриптовых языков, реальных или выдуманных, хватает. boost::spirit к примеру ещё на C++03 была. Очень хочется посмотреть на метаклассы и концепты в боевом режиме, а не песочнице experimental, но в то же время я их боюсь. Боюсь, что придётся испытать революцию, сравнимую с той, что 18 лет назад испытал после ознакомления с трудом Александреску.

https://forum.sources.ru/index.php?showtopic=419241&view=findpost&p=3836604

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку