Nahé předměty - Naked objects
Nahé objekty je architektonický vzor používaný v softwarovém inženýrství .
Definice
Vzor nahých objektů je definován třemi principy:
- Veškerá obchodní logika by měla být zapouzdřena do objektů domény . Tento princip není u nahých předmětů jedinečný; je to silný závazek k zapouzdření .
- Uživatelské rozhraní by měl být přímý znázornění objektů domény, se všemi uživatelských akcí se skládá z vytváření, vyhledávání, nebo vyvolání metody na objekty domény. Tento princip není u nahých objektů jedinečný: jedná se o interpretaci objektově orientovaného uživatelského rozhraní .
Inovativní funkce vzoru nahého objektu vzniká kombinací 1. a 2. principu do 3. principu:
- Uživatelské rozhraní bude zcela automaticky vytvořeno z definic doménových objektů. To lze provést pomocí několika různých technologií, včetně generování zdrojového kódu . Doposud implementace vzoru nahých objektů upřednostňovaly technologii odrazu .
Vzor nahých objektů byl poprvé formálně popsán v disertační práci Richarda Pawsona, která zahrnuje zkoumání předchůdců a inspirace pro vzor zahrnující například morfické uživatelské rozhraní.
Nahé objekty obvykle kontrastují se vzorem model – pohled – řadič . Publikovaná verze Pawsonovy práce však obsahuje předmluvu Trygve Reenskauga , který nejprve formuloval vzor model - pohled - řadič, což naznačuje, že nahé objekty jsou blíže původnímu záměru modelu - pohled - řadič (MVC) než mnoho následujících interpretace a implementace.
Výhody
Pawsonova práce tvrdí, že vzor má čtyři výhody:
- Rychlejší vývojový cyklus , protože je třeba vyvíjet méně vrstev. V konvenčnějším designu musí vývojář definovat a implementovat tři nebo více samostatných vrstev: vrstvu doménových objektů, prezentační vrstvu a skripty úkolů nebo procesů, které je spojují. (Je-li nahý objekty vzor v kombinaci s objektově-relační mapování nebo objektové databázi , pak je možné vytvořit všechny vrstvy systému ze samotné definice objekt domény, který však netvoří součást pouhým objektů vzoru o sobě .) Práce obsahuje případovou studii porovnávající dvě různé implementace stejné aplikace: jednu založenou na konvenční „čtyřvrstvé“ implementaci; druhý pomocí nahých předmětů.
- Větší agilita s odkazem na snadnost, s jakou může být aplikace změněna tak, aby vyhovovala budoucím změnám v obchodních požadavcích. Částečně to vyplývá ze snížení počtu vyvinutých vrstev, které je třeba udržovat v synchronizaci. Rovněž se však tvrdí, že vynucená korespondence 1: 1 mezi prezentací uživatele a modelem domény nutí kvalitnější modelování objektů , což zase zvyšuje agilitu.
- Posílenější styl uživatelského rozhraní . Tuto výhodu lze skutečně připsat výslednému objektově orientovanému uživatelskému rozhraní (OOUI), spíše než samotným nahým objektům, ačkoli se uvádí argument, že nahé objekty usnadňují koncipování a implementaci OOUI.
- Snadnější analýza požadavků . Argumentem zde je, že se vzorem nahých objektů tvoří doménové objekty společný jazyk mezi uživateli a vývojáři a že tento společný jazyk usnadňuje proces projednávání požadavků - protože neexistují žádná další vyjádření k diskusi. V kombinaci s rychlejším vývojovým cyklem je možné prototypovat funkční aplikace v reálném čase.
Praktická zkušenost
Odbor sociálního zabezpečení (DSP) (dříve známý jako odboru sociálních věcí a rodiny), v Irsku vybudovala sadu podnikových aplikací pomocí nahé objekty vzor. V rámci svého programu SDM (Service Delivery Modernization) navrhl DSP novou podnikovou architekturu, která splňuje plánované nové obchodní požadavky a poskytuje dlouhodobě větší agilitu. Vzor nahých objektů tvoří klíčový prvek architektury SDM. V listopadu 2002 byl DSP spuštěn s novou aplikací, která nahradila stávající systém správy přídavků na děti. Toto je považováno za první operační aplikaci vzoru nahých objektů kdekoli. Zkušenost DSP s vytvářením této první aplikace, včetně reakcí uživatelů na radikální uživatelské rozhraní, je rozsáhle dokumentována v Pawsonově práci a nověji v prezentaci na QCon London 2011.
Jedním z nejpozoruhodnějších aspektů zkušeností s DSP byl způsob, jakým technika Naked Objects umožňovala opětovné použití velmi aktivně. Jakmile byl doménový objekt, jako je zákazník, definován pro jednu „aplikaci“, mohl by být (byl) snadno přizpůsoben s minimem vylepšení a přidání pro použití jinde. To naznačuje, že tento přístup by se mohl stát oblíbeným ve vládních kruzích, kde je opětovné použití považováno za účinnou techniku pro rozbití hluchých systémů. Politika britské „transformační vlády“ se zvláště těší na to, aby se opětovné použití stalo standardním požadavkem nových vládních systémů, a to jak spotřebovávání dalších vládních systémových komponent, tak zpřístupňování nových pro ostatní. Toto opětovné použití je často vnímáno z hlediska služeb, ale stejně silným přístupem by mohly být i objekty.
Počáteční „architektura Naked Object Architecture“ DSP byla vyvinuta externím dodavatelem, ale architektura byla následně přestavěna kolem rámce Naked Objects Framework, který nyní tvoří základ pro budoucí vývoj aplikací, jak potvrzuje požadavek na výběrová řízení na čtyřletý program další aplikace, které mají být vytvořeny pomocí nahých předmětů.
Kritiky
Vzor nahých předmětů vyvolal od první veřejné demonstrace této myšlenky na konferenci OOPSLA 2001 pod hlavičkou Intriguing Technologies značné množství kritiky . Tato kritika se obvykle zaměřila na jednu ze tří hlavních oblastí:
- Platnost cíle zapouzdřit veškerou obchodní logiku do doménových objektů. Argumenty pro i proti této myšlence lze nalézt ve výzkumné literatuře pro objektově orientované programování a doménový design .
- Použitelnost objektově orientovaných uživatelských rozhraní.
- Použitelnost obecných uživatelských rozhraní.
Žádná z těchto kritik není u nahých předmětů jedinečná, ale skutečnost, že nahé objekty kombinují všechny tři myšlenky, jí dává vyšší profil.
Vztah k jiným myšlenkám
Vzor nahých objektů má význam pro několik dalších oborů a / nebo trendů, včetně:
- Mechanismy ukládání objektů
Objektově-relační mapování , databáze objektů a perzistence objektů se týkají eliminace nutnosti psát konvenční vrstvu pro přístup k datům pod objekty domény. Tyto vzory jsou komplementární a potenciálně synergické se vzorem nahých objektů, který se zabývá eliminací nutnosti psát vrstvy nad objekty domény.
- Agilní vývoj softwaru
Nahé objekty jsou kompatibilní s trendem k agilním metodikám vývoje mnoha různými způsoby, ale zejména k jemnozrnnému iterativnímu vývoji. Zkušenost DSP (popsaná výše) byla pravděpodobně také největší aplikací technik agilního vývoje softwaru v rámci organizace veřejného sektoru na celém světě.
- Doménový design
Návrh založený na doméně je myšlenka, že model rozvíjející se domény (objektu) by měl být použit jako mechanismus, který pomůže prozkoumat požadavky spíše než naopak. Skutečnost, že nahý objektový systém vynucuje přímou korespondenci mezi uživatelským rozhraním a modelem domény, usnadňuje pokus o návrh řízený doménou a zvyšuje viditelnost výhod.
- Modelem řízená architektura (MDA)
Ačkoli nahé objekty neodpovídají přísné definici MDA, sdílí mnoho stejných cílů. Dan Haywood tvrdil, že nahé předměty představují účinnější přístup k dosažení těchto cílů.
- Uklidňující objekty
Standard pro vytváření rozhraní RESTful z objektového modelu domény. Ačkoli specifikace Restful Objects neuvádí, že rozhraní musí být generováno reflexivně z modelu domény, tato možnost existuje.