2012-01-24 15 views
5

Właśnie oglądaliśmy prezentację wuja Boba na oprogramowaniu Architecture:Struktura EBC - czym tak naprawdę jest granica?

http://www.cleancoders.com/codecast/clean-code-episode-7/show

Opowiada o strukturze EBC (podmioty - Kontrolery - Granice)

On kładzie nacisk na fakt, że wszystkie oprogramowanie musi być podstawowym choć jako całość przypadków użycia.

Rzeczywiście wielokrotnie powtarza, że ​​decyzje dotyczące narzędzi, ram itp. Muszą zostać odroczone.

byłem zaintrygowany terminem „Boundaries”, więc znalazłem następujące wyjaśnienie:

http://process.osellus.com/sites/wiki/OpenUP%20DSDM/Wiki%20Pages/Guidance%20-%20Entity-Control-Boundary%20Pattern.aspx

tutaj widzimy, że granice są istotne dla każdego mechanizmu dostarczania jak postaci do mechanizmu internetowej (MarketingCampaignForm) etc ...

więc moje pytanie brzmi:

Czy boudaries trzeba wiedzieć o rodzaju mechanizmu realizacji, które zostaną wykorzystane, a więc sprzeczne z punktu wuja Boba widzenia?

Lub muszą być proste POJO reprezentujące prostą strukturę danych, która będzie dzielona między wewnętrznym systemem a mechanizmem dostarczania; i zawierające dane wejściowe od użytkownika i dane wyjściowe ze sterowników w systemie wewnętrznym?

+1

Dlaczego zostało to odrzucone? : | –

Odpowiedz

3

Trochę rozciągnięte może (puryści będą mnie nienawidzić), ale można pomyśleć o granicy jako koncepcyjnie podobny do widzenia w MVC, choć to bardziej ogólnego pojęcia: jeśli system naraża REST API dla Na przykład, tak naprawdę nie można tego nazwać widokiem (ani implementacją MVC, fwiw), ale jest to bardziej ogólnie interfejs twojego systemu do świata zewnętrznego.

Innymi słowy, granica jest częścią systemu, który współdziała z podmiotami przypadków użycia, czyli ludzi lub systemy poza systemu.

Od Eclipse EPF:

granica elementem leży na peryferiach systemu lub podsystemu, ale wewnątrz niej. Dla każdego scenariusza rozważanego w całym systemie lub w ramach jakiegoś podsystemu, niektóre elementy brzegowe będą elementami "z przodu koniec", które akceptują dane wejściowe spoza obszaru objętego projektem, , a inne elementy będą "zapleczem", zarządzające komunikacja z elementami wspierającymi poza systemem lub podsystemem pod numerem.

+0

Czy to znaczy, że elementy brzegowe powinny być interfejsami? –

+1

Nie trzeba. Elementami granicznymi mogą być również klasy abstrakcyjne lub nawet proste klasy Java. –

+0

Przepraszam, że przeszkadzam wam, ale prawie zero pytań i odpowiedzi związanych z EBC dotyczy, a ponieważ wydaje się, że pracowaliście z tym wzorem, byłbym bardzo wdzięczny za opinię na temat [tego pytania] (http://stackoverflow.com/q/26656302/1654265). –