Да да у меня есть
Я долго молчал на эту тему; пришло время высказаться.
- Кто-нибудь пытался применить эту концепцию к объектному дизайну?
Да. Я работаю над формализацией объектной нормализации (и, следовательно, основополагающей объектно-ориентированной теории) более 20 лет.
Понимая, что данные и код взаимозаменяемы, по крайней мере, в теории. Это означает, что принципы нормализации и реляционных операций могут применяться как к коду, так и к данным.
До сих пор все получалось довольно неплохо - я считаю, что полученные знания стали «секретным оружием» моих способностей проектирования, анализа и рефакторинга.
Я ничего об этом не говорил публично до этого, потому что решил, что со временем у меня будет время, чтобы закончить исследование - и самостоятельно изготовить предполагаемые инструменты.
Но я пришел к выводу, что со всем, что происходит в моей жизни, что более важно, веселее и / или более выгодно, у меня не будет времени, чтобы закончить исследование самостоятельно. Когда-либо. Также существует значительная вероятность того, что у меня просто нет необходимого теоретического обоснования CS для выполнения одной только работы.
Я спросил в местном университете о спонсировании кандидата или двух кандидатов наук, если они хотели бы заняться этим, но, увы, наш местный университет не преподает адекватную основу в семантике языка программирования.
Было проведено несколько интересных исследований в этой области, но все, что мне известно, не дало результатов. Либо он неверно предполагает, что, поскольку нормализация происходит из реляционного фона, он не применяется к объектно-ориентированным моделям, либо он предполагает, что нормализация применяется только к данным, определенным объектами. Однако есть несколько очень интересных проектов.
Действительно интересные вещи случаются, когда вы применяете нормализацию к коду - я бы сказал, что это основа всего рефакторинга .
Так что теперь я думаю, что лучшее, что можно сделать, - это высказать слово, возможно, попросив выступить на DevDays 2011 в Вашингтоне, и выяснить, есть ли сообщество, столь же взволнованное этим материалом, как и я.
Вот краткий обзор: нормализация - это процесс создания чего-то минимального и не лишнего. Следовательно, принцип «не повторяйся» (СУХОЙ) объектно-ориентированного программирования является четким проявлением целей нормализации. Я верю, что могу показать, что все известные принципы объектно-ориентированного проектирования / программирования / рефакторинга являются логическим следствием нормализации объекта. Я думаю, что я также могу показать, что есть более интересные вещи, которые можно сделать с системами в Object Normal Form (ONF), чем просто рефакторинг.