<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.0.11" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Anemic domain model</title>
	<link>http://www.ampiaistehdas.net/artti/2007/07/06/anemic-domain-model/</link>
	<description></description>
	<pubDate>Fri, 21 Nov 2008 22:15:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.11</generator>

	<item>
		<title>by: Artti Jaakkola</title>
		<link>http://www.ampiaistehdas.net/artti/2007/07/06/anemic-domain-model/#comment-3704</link>
		<pubDate>Wed, 12 Mar 2008 10:30:45 +0000</pubDate>
		<guid>http://www.ampiaistehdas.net/artti/2007/07/06/anemic-domain-model/#comment-3704</guid>
					<description>Moikka :-)

&gt; ei se ole mikään fowlerin kontroversiaali idea
&gt; vaan ikiaikainen OO-periaate. domainluokissa
&gt; _pitää_ olla logiikkaa !

Miksi? Mitä sillä saavutetaan ja miten se parantaa koodin ylläpidettävyyttä?

Minulle ei riitä se, että ukko ylijumala Fowler sanoo jossain rapakon takana, että tehkää näin. Se, että joku hämäräveikko kirjoittaa 7000 rivisen service-luokan, ei mielestäni riitä myöskään perusteluksi sille, että sovelluslogiikkaa vietäisiin domain-malliin. Juuri tämän takia ns. service-domain-jaottelusta on nähdäkseni tullut niin suosittu.

Serialisoinnista pitäisikin sitten kirjoittaa oma juttunsa.</description>
		<content:encoded><![CDATA[<p>Moikka <img src='http://www.ampiaistehdas.net/artti/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>> ei se ole mikään fowlerin kontroversiaali idea<br />
> vaan ikiaikainen OO-periaate. domainluokissa<br />
> _pitää_ olla logiikkaa !</p>
<p>Miksi? Mitä sillä saavutetaan ja miten se parantaa koodin ylläpidettävyyttä?</p>
<p>Minulle ei riitä se, että ukko ylijumala Fowler sanoo jossain rapakon takana, että tehkää näin. Se, että joku hämäräveikko kirjoittaa 7000 rivisen service-luokan, ei mielestäni riitä myöskään perusteluksi sille, että sovelluslogiikkaa vietäisiin domain-malliin. Juuri tämän takia ns. service-domain-jaottelusta on nähdäkseni tullut niin suosittu.</p>
<p>Serialisoinnista pitäisikin sitten kirjoittaa oma juttunsa.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: mika</title>
		<link>http://www.ampiaistehdas.net/artti/2007/07/06/anemic-domain-model/#comment-3697</link>
		<pubDate>Fri, 29 Feb 2008 09:29:22 +0000</pubDate>
		<guid>http://www.ampiaistehdas.net/artti/2007/07/06/anemic-domain-model/#comment-3697</guid>
					<description>terve, katos mitä löyty kun googlasi aneemista :)

tämmönen datan ja logiikan erotteluhan on ihan kamalaa, ei se ole mikään fowlerin kontroversiaali idea vaan ikiaikainen OO-periaate. domainluokissa _pitää_ olla logiikkaa ! muuten kannattaa harkita jotain möhkö-service-haroo-JDBC:tä-tekniikkaa ilman minkäänsorttista mallia. 

jos domain-luokka lihoo niin silloin kannattaa miettiä onko se domainmalli tarpeeksi hienojakoinen. jonnekin se bloat joka tapauksessa menee, terv. nimim. "olen nähnyt 7000 rivin service-luokkia".

samaa mieltä kyllä service-kutsuista domain modelin seassa, ihan liian sekavaa kenen pitäisi kutsua missä ja ketä, onko joku kutsunut jne. yksi tapa on pitää ne poissa domain-luokista ja tehdä kutsut service-tasolla. nyt siis service == "ulkoinen" järjestelmä niinkuin tietokanta tai "documentService".

serialisoinnista ... sitä voisi ensinnäkin välttää kun vain mahdollista ja jos on pakko kuljetella niitä jonnekin niin silloin se on DTO-aika ...</description>
		<content:encoded><![CDATA[<p>terve, katos mitä löyty kun googlasi aneemista <img src='http://www.ampiaistehdas.net/artti/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>tämmönen datan ja logiikan erotteluhan on ihan kamalaa, ei se ole mikään fowlerin kontroversiaali idea vaan ikiaikainen OO-periaate. domainluokissa _pitää_ olla logiikkaa ! muuten kannattaa harkita jotain möhkö-service-haroo-JDBC:tä-tekniikkaa ilman minkäänsorttista mallia. </p>
<p>jos domain-luokka lihoo niin silloin kannattaa miettiä onko se domainmalli tarpeeksi hienojakoinen. jonnekin se bloat joka tapauksessa menee, terv. nimim. &#8220;olen nähnyt 7000 rivin service-luokkia&#8221;.</p>
<p>samaa mieltä kyllä service-kutsuista domain modelin seassa, ihan liian sekavaa kenen pitäisi kutsua missä ja ketä, onko joku kutsunut jne. yksi tapa on pitää ne poissa domain-luokista ja tehdä kutsut service-tasolla. nyt siis service == &#8220;ulkoinen&#8221; järjestelmä niinkuin tietokanta tai &#8220;documentService&#8221;.</p>
<p>serialisoinnista &#8230; sitä voisi ensinnäkin välttää kun vain mahdollista ja jos on pakko kuljetella niitä jonnekin niin silloin se on DTO-aika &#8230;
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Artti Jaakkola</title>
		<link>http://www.ampiaistehdas.net/artti/2007/07/06/anemic-domain-model/#comment-3405</link>
		<pubDate>Sat, 07 Jul 2007 00:02:25 +0000</pubDate>
		<guid>http://www.ampiaistehdas.net/artti/2007/07/06/anemic-domain-model/#comment-3405</guid>
					<description>Nähtävästi ensimmäinen esimerkki onkin kaikkien mielestä karsea.

Lueskelin lisää aiheesta ja useammalla "rich domain modelia" ajavalla saitilla suositellaan domain-malliin sijoitettavaksi liiketoimintasääntöjä, laskentasääntöjä ja validointeja. Nämähän eivät useasti ole suoraan riippuvaisia palvelukerroksesta:

En ole oikein tästäkään vakuuttunut. Joissain tapauksissa esimerkiksi liiketoiminta- tai validointisäännöt ovat staattisia, eivätkä muutu tilanteen mukaan (esimerkiksi shakkipelissä säännöt ovat aina samat), mutta esimerkiksi liiketoimintajärjestelmissä sääntöjä tulee voida muuttaa, eikä niitä näin ollen voi kovakoodata domain-luokkiin.

Tietysti domainlogiikkaa (kuten Fowler sitä kutsuu) voidaan parametroida varsin vapaasti, mutta siltikin sijoittaisin nämäkin toiminnallisuudet domainin ulkopuolelle.

Kuten asia JBoss Rulesin dokumentaatiossa ilmaistaan:

"- Logic and Data Separation

Your data is in your domain objects, the logic is in the rules. This is fundamentally breaking the OO coupling of data and logic (this can be an advantage as well as a disadvantage depending on your point of view). The upshot is that the logic can be much easier to maintain as there are changes in the future, as the logic is all layed out in rules. "</description>
		<content:encoded><![CDATA[<p>Nähtävästi ensimmäinen esimerkki onkin kaikkien mielestä karsea.</p>
<p>Lueskelin lisää aiheesta ja useammalla &#8220;rich domain modelia&#8221; ajavalla saitilla suositellaan domain-malliin sijoitettavaksi liiketoimintasääntöjä, laskentasääntöjä ja validointeja. Nämähän eivät useasti ole suoraan riippuvaisia palvelukerroksesta:</p>
<p>En ole oikein tästäkään vakuuttunut. Joissain tapauksissa esimerkiksi liiketoiminta- tai validointisäännöt ovat staattisia, eivätkä muutu tilanteen mukaan (esimerkiksi shakkipelissä säännöt ovat aina samat), mutta esimerkiksi liiketoimintajärjestelmissä sääntöjä tulee voida muuttaa, eikä niitä näin ollen voi kovakoodata domain-luokkiin.</p>
<p>Tietysti domainlogiikkaa (kuten Fowler sitä kutsuu) voidaan parametroida varsin vapaasti, mutta siltikin sijoittaisin nämäkin toiminnallisuudet domainin ulkopuolelle.</p>
<p>Kuten asia JBoss Rulesin dokumentaatiossa ilmaistaan:</p>
<p>&#8220;- Logic and Data Separation</p>
<p>Your data is in your domain objects, the logic is in the rules. This is fundamentally breaking the OO coupling of data and logic (this can be an advantage as well as a disadvantage depending on your point of view). The upshot is that the logic can be much easier to maintain as there are changes in the future, as the logic is all layed out in rules. &#8221;
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
