Как стать автором
Обновить

Комментарии 17

у меня крыша поехала от этого чтения
НЛО прилетело и опубликовало эту надпись здесь

Забавно распространить рассуждения о классах vs структурах данных на anemic и rich domain model

Структура данных это набор связанных элементов.

Связано ли имя человека с местом проживания, то есть, на улице Вязов живут люди с именем Фредди?
Я это к тому, что не по-русски это как-то. На мой занудный взгляд: структура данных — это элементы, объединённые/сгрупированные по определённому признаку.

"называют это Объектно/Реляционным рассогласованием импеданса" — неверно. Верно — рассогласование объектно/реляционного импеданса.


Ну и количество/время пересборки сейчас вообще никого не волнует.

Спасибо, поправил.


Насчёт времени пересборки — оно не интересует пока оно приемлемое. Благодаря железкам о нём перестали заботиться и оно таки периодически вырастает до неприличия.


А во-вторых дело не только в том, что пересобирать всё долго, дело ещё в том, что нужно пересобрать всё, что затронуто изменениями, а найти это всё не всегда просто.

В нормальных языках с нормальной модульной системой всё это не является проблемой вообще. Это боль исключительно С++.

А в каких языках нормальная модульная система?

Да хотя бы даже в D.

Интересно, как в его картину мира вписываются перегрузки функций и объектные субд?

Перегрузки функций — механизм времени компиляции, объекты в объектных субд имеют с объектами из ООП не больше общего, чем ДТО.

Перегрузки функций — механизм времени компиляции

И? В том же D вы легко можете написать функцию, которая на этапе компиляции пройдётся по всем типам структур и всем функциям и составит карту соответствия типа и функции обработки.


объекты в объектных субд имеют с объектами из ООП не больше общего, чем ДТО

Да нет, там полноценные объекты, с классами, наследованием, методами и вот этим всем.

Это придётся перекомпилировать весь код, а потом его деплоить.


А насчёт объекнтых субд с полноценными объектами действительно интересно, что бы сказал Мартин

Вы так говорите будто это долгий процесс.

Когда как, бывает и долго. Особенно учитывая, что это время надо умножать на количество разработчиков. А если пересобирать библиотеки, то это точно надолго.


Но проблема не только во времени, а ещё и в том, что у всех модулей, которые надо перекомпилировать надо обновить зависимости.

Зависимые модули сами перекомпилируются. Если же вы про зависимости пакетов, то они публикуются в виде исходников, а не бинарниками.

В сравнении объектов со структурами на данный момент и в данных аспектах концептуально побеждают структуры.
Функции есть в классах в явном виде, а о существовании данных можно только догадываться. В структурах данных в явном виде присутствуют данные, а о том какие есть функции можно только гадать.

Какие есть функции можно не гадать, а импортировать библиотеки с необходимыми функциями. Далее IDE подскажет.

В случае с классами добавлять типы просто, а добавлять функции сложно. В случае со структурами добавлять функции легко, а добавлять типы сложно.

Проблема добавления структур и использования их в уже существующих функциях уже решена, например, в языке Julia.

Декларация функции в нём фактически является декларацией её интерфейса без реализации. Декларация реализации для каждого типа данных осуществляется вместе с декларацией самого типа в совершенно другом месте. Никаких if-ов или switch-ей не требуется.

Структуры данных приводят к перекомпиляции и передеплою вызывающего кода.

В языке Julia не приводят. Тип и реализация необходимых функций могут быть в отдельном куске кода. Его компиляция не требует перекомпиляции собственно декларации функции и её вызовов.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории