Tak, tak mam
Długo milczałem na ten temat; czas się wypowiedzieć.
- Czy ktoś próbował zastosować tę koncepcję do projektowania obiektów?
Tak. Od ponad 20 lat pracuję nad sformalizowaniem normalizacji obiektów (i stąd leżącej u podstaw teorii obiektowej).
Uświadomienie sobie, że dane i kod są wymienne, przynajmniej w teorii. Oznacza to, że zasady normalizacji i operacje relacyjne mogą mieć zastosowanie zarówno do kodu, jak i danych.
Do tej pory działało całkiem nieźle - wierzę, że zdobyte spostrzeżenia były „tajną bronią” moich możliwości projektowania, analizy i refaktoryzacji.
Nie powiedziałem wcześniej o tym publicznie, ponieważ pomyślałem, że w końcu będę miał czas, aby dokończyć badania - i sam stworzyć implikowane narzędzia -.
Ale doszedłem do wniosku, że biorąc pod uwagę wszystko, co dzieje się w moim życiu, co jest ważniejsze, bardziej zabawne i / lub bardziej opłacalne, nie będę miał czasu, aby sam dokończyć badania. Zawsze. Istnieje również znacząca możliwość, że po prostu nie mam niezbędnych podstaw teoretycznych CS do samodzielnego ukończenia pracy.
Zapytałem na lokalnym uniwersytecie o sponsorowanie doktora lub dwóch doktorantów, czy chcieliby podjąć tę sprawę, ale niestety nasz lokalny uniwersytet nie uczy odpowiedniej podstawy w semantyce języka programowania.
Przeprowadzono kilka interesujących badań w tej dziedzinie, ale wszystko - o czym wiem - nie osiągnęło tego celu. Albo błędnie zakłada, że ponieważ normalizacja pochodzi z tła relacyjnego, nie ma ona zastosowania do modeli obiektowych lub zakłada, że normalizacja dotyczy tylko danych zdefiniowanych przez obiekty. Istnieje jednak kilka bardzo interesujących projektów typu miss-miss ...
Naprawdę ciekawe rzeczy dzieją się, gdy zastosujesz normalizację do kodu - co, jak twierdzę, jest podstawą całego refaktoryzacji .
Teraz myślę, że najlepszą rzeczą do zrobienia jest rozpowszechnianie wiadomości, być może poprzez poproszenie o przemówienie na DevDays 2011 w DC i sprawdzenie, czy istnieje społeczność tak podekscytowana takimi rzeczami jak ja.
Oto krótki wgląd: normalizacja to proces tworzenia czegoś minimalnego i niepotrzebnego. Zasada „programowania obiektowego” (Don't Repeat Yourself (DRY)) jest zatem wyraźnym przejawem celów normalizacji. Wierzę, że mogę pokazać, że wszystkie dobrze znane zorientowane obiektowo zasady projektowania / programowania / refaktoryzacji są logiczną konsekwencją normalizacji obiektu. Myślę, że mogę również pokazać, że istnieje więcej ciekawych rzeczy, które można zrobić z systemami w Object Normal Form (ONF) niż tylko refaktoryzacja.