2015-02-24 52 views
5

Jakiś czas temu przeczytałem książkę pod tytułem Naked Objects i byłem podekscytowany pomysłami. Piszę tylko moją główną logikę biznesową i automatycznie generuję interfejs użytkownika? Zapisz mnie!Systemy podobne do NakedObjects?

Co więcej, potencjał wykracza poza to. Może to być świetne narzędzie do modelowania domen. Ze zdolnością do bezpośredniego powoływania swoich obiektów, jeden zaleca się bezpośrednio używać swoich obiektów domeny, po czym można odkryć ...

  • Błędy
  • Użyteczne wzory interakcji (na realizację UI, szczególnie istotne jeśli ktoś trzyma zobacz, że interfejs użytkownika to "skryptowanie obiektów domeny").
  • Nowe funkcje.

W tym celu interesuję się systemami podobnymi do Naked Objects. Zrobiłem trochę pracy na nogach, na przykład wyszukanie haseł pod ciągami takimi jak "Direct Manipulation UI", ale nie znalazłem nic przydatnego.

Czy znasz jakąś pracę z podobnymi liniami? Wolę coś w PHP lub JavaScript i nie zakładam, że używam Linuksa. Wiem o NakedPHP i Spiro (nie mogę znaleźć dokumentacji), ale obie są w zasadzie implementacjami Naked Object dla PHP i javascript.

Czy znasz jakieś inne systemy?

+1

Symfony 1.3+ i Propel (teraz nie są już obsługiwane) używane do generowania formularzy w oparciu o schematy baz danych oraz rozsądne wartości domyślne. Używał dość skomplikowanego systemu budowania formularzy OO. Zastanawiam się, czy Symfony 2.x i ORM (myślę, że Doctrine jest teraz domyślnie) robi coś podobnego? – halfer

+0

Nie jest to zły punkt widzenia, ale co z czymś bardziej związanym z obiektami? –

+0

Czy nie ma większego sensu powiązanie interfejsu użytkownika z obiektami modelu? W większości przypadków interfejsy użytkownika są tylko renderingami tabel/wierszy bazy danych. Jeśli chcesz to zrobić wprost z obiektów, a nie z modeli, to nie wiem - chciałem tylko rzucić sugestię Symfony. – halfer

Odpowiedz

2

Wpadłem na kilka innych możliwych terminów kluczowych i znalazłem kilka, chociaż nie wszystkie są w javascript.

Te wydają się być lepiej pasuje ...

Metawidget jest szczególnie interesująca. Obsługuje javascript i jest łatwy w użyciu. Możesz po prostu podać swój model domeny (obiekt JSON) i wygenerować dla niego interfejs. Co więcej, nie przejmuje ona twojej strony, więc może żyć w istniejącym już interfejsie użytkownika i pozwala na dostosowywanie interfejsu użytkownika.

They also include a comparison page with similar products.

Kolejny interesujący jest BlueJ; to platforma edukacyjna oparta na (idei?) Naked Objects, ale może być wykorzystywana do mniejszych projektów. Zasadniczo można tworzyć instancje klasy za pomocą menu kontekstowego, a następnie można w ten sam sposób sprawdzać i wywoływać metody obiektów wynikowych (potencjalnie tworząc więcej obiektów w procesie).

Idąc dalej, aby spojrzeć na dowolne automatyczne generowanie interfejsu użytkownika, istnieją wizualizatory CRUD, które są powiązane z bazą danych.

ja wciąż bada te, zwłaszcza tych obiektów, i jestem otwarty na inne propozycje.

7

Jako współautor książki Naked Objects, chciałbym dodać mój pogląd.

Nie jest niczym niezwykłym, że ludzie naprawdę lubią koncepcję wzoru nagich obiektów, ale nie podoba im się dany interfejs. Nie powiedziałeś, jak dawno temu przyglądałeś się wdrożeniu, a nawet, które z nich. Dwa główne implementacje open source (istnieje kilka innych, ale mniej ustalone) to:

  • The Naked Objects Framework dla platformy .NET
  • Apache Isis, na platformie Java

oba te mają więcej niż jeden interfejs użytkownika. Załóżmy jednak, że obejrzałeś wszystkie domyślne interfejsy i nie jesteś zadowolony z żadnego z nich. Po pierwsze, większość użytkowników, którzy używają frameworka w ustawieniach przedsiębiorstwa, w końcu dość łatwo dostosowuje domyślny interfejs użytkownika, czy to przy użyciu tylko .css, czy z dodatkowym JavaScriptem, ale nadal zachowuje koncepcję "ogólnego" interfejsu użytkownika, który jest tworzony dynamicznie.

Niedawno wspólnie z Danem Haywoodem przyjęliśmy ideę modelu nagich obiektów, wprowadzając specyfikację Restful Objects - ultra czysty interfejs REST API, który działa w każdym modelu domeny Rich. Obie implementacje nagich obiektów teraz implementują również specyfikację Restful Objects. Chodzi o to, że za pomocą interfejsu API RO stosunkowo łatwo jest zaprojektować nowy, radykalnie inny interfejs użytkownika (ogólny lub w pełni dostosowany), który komunikuje się z implementacją serwera RO. Innymi słowy, stosunkowo łatwo jest stworzyć własną koncepcję nagich obiektów po stronie klienta, ponownie wykorzystując jedną z dwóch głównych implementacji po stronie serwera.

Spiro, o której pani wspomniała, jest naszą pierwszą próbą stworzenia biblioteki klocków do tworzenia takiego interfejsu, przy użyciu JavaScript (TypeScript, faktycznie) i Angular.js. A fajną rzeczą w korzystaniu z specyfikacji RO jest to, że można uruchomić tego samego klienta w stosunku do dowolnej implementacji serwera. Polecam dobrze się temu przyjrzeć.

+0

Uwielbiałem twoją książkę !!!!! Nie pamiętam, kiedy pierwszy raz go użyłem, ale wcześniej Apache Isis i Spiro. Nie chciałem atakować interfejsu użytkownika; raczej próbowałem przenieść się na moje główne zainteresowania w Naked Objects, aby wszelkie odpowiedzi nie były zbyt skoncentrowane na jakości interfejsu dla alternatyw. Odpowiednio edytuję moje pytanie. Naprawdę chcę spróbować Spiro, ale nie mogłem znaleźć dokumentów ani przykładów - może te są w dystrybucji? W każdym razie dam Spiro kolejny wyraz. Jeśli nic więcej nie zejdzie z rury, przyjmuję twoją odpowiedź. –

Powiązane problemy