<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Komentáře k příspěvku: Názvy argumentů metod v reflexi</title>
	<atom:link href="http://blog.novoj.net/2010/04/26/nazvy-argumentu-metod-v-reflexi/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.novoj.net/2010/04/26/nazvy-argumentu-metod-v-reflexi/</link>
	<description>Dává je jen zřídka, obvykle jim není moc rozumět a často vám ani k ničemu nejsou.</description>
	<lastBuildDate>Mon, 06 Feb 2012 19:08:17 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>Od: Maaartin</title>
		<link>http://blog.novoj.net/2010/04/26/nazvy-argumentu-metod-v-reflexi/comment-page-1/#comment-22377</link>
		<dc:creator>Maaartin</dc:creator>
		<pubDate>Sun, 02 May 2010 02:03:46 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=871#comment-22377</guid>
		<description>Ta anotace by stacila jedna pro tridu, to neni zrovna moc psani. Nebo pro pakaz, kdyz by se dala k package-info.java. Tou anotaci autor prohlasi, ze jmena argumentu zustanou stabilni; bez ni by to byla tak trochu ducharina - marne ale vzpominam, jestli jsem kdy jmeno argumentu menil.</description>
		<content:encoded><![CDATA[<p>Ta anotace by stacila jedna pro tridu, to neni zrovna moc psani. Nebo pro pakaz, kdyz by se dala k package-info.java. Tou anotaci autor prohlasi, ze jmena argumentu zustanou stabilni; bez ni by to byla tak trochu ducharina &#8211; marne ale vzpominam, jestli jsem kdy jmeno argumentu menil.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Otec Fura</title>
		<link>http://blog.novoj.net/2010/04/26/nazvy-argumentu-metod-v-reflexi/comment-page-1/#comment-22330</link>
		<dc:creator>Otec Fura</dc:creator>
		<pubDate>Thu, 29 Apr 2010 19:09:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=871#comment-22330</guid>
		<description>@benzin na tomhle se asi shodneme -  konzervatismus má taky své klady

@Maartin s tou anotací to není úplně špatný nápad, ale kdyby to šlo bez ní, bylo by to přeci jen nejlepší - jde mi přeci taky o úsporu kódu, zjištění těch argumentů se skutečně může odehrávat podobně jako to v současnosti děláme u anotací, tam také musíme skenovat hierarchickou strukturu (a jde to ;-) )

@vsem díky za podnětné komentáře, jsem rád, že se podařilo trošku rozproudit diskusi</description>
		<content:encoded><![CDATA[<p>@benzin na tomhle se asi shodneme &#8211;  konzervatismus má taky své klady</p>
<p>@Maartin s tou anotací to není úplně špatný nápad, ale kdyby to šlo bez ní, bylo by to přeci jen nejlepší &#8211; jde mi přeci taky o úsporu kódu, zjištění těch argumentů se skutečně může odehrávat podobně jako to v současnosti děláme u anotací, tam také musíme skenovat hierarchickou strukturu (a jde to <img src='http://blog.novoj.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  )</p>
<p>@vsem díky za podnětné komentáře, jsem rád, že se podařilo trošku rozproudit diskusi</p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Maaartin</title>
		<link>http://blog.novoj.net/2010/04/26/nazvy-argumentu-metod-v-reflexi/comment-page-1/#comment-22302</link>
		<dc:creator>Maaartin</dc:creator>
		<pubDate>Wed, 28 Apr 2010 12:53:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=871#comment-22302</guid>
		<description>Ja bych to nekomplikoval a zustal u
&gt; Ok, to beru jako argument – nicméně pravidlo by mohlo být jednoduché – vrátí se mi to na co se zeptám.
a to jen v pripade ze tam je anotace @ParameterNames (v opacnym pripade predpokladam ze autor s tim nepocital a ty jmena pripadne nekdy zmeni). Tim odpada i nutnost pamatovat si pripadne stary jmena parametru - to je pak stejne absurni jako pamatovat si stary jmena public metod.Jen bych to namisto toho APT dal do rovnou Javy, aby se na to lezlo pres
String[] Method.getParameterNames()

Dedeni bych taky neresil, nedokazu si predstavit, ze by programator nevedel kterym smerem v hierarchii se vydat - pokud tam mam dynamicky proxy, tak vim jestli se vygenerovaly k mymu interfejsu nebo k my tride. Zadny konflikty by tez nebylo treba resit, pripadne by si poresil programator kdyby si je tam nadelal - coz si tez moc neumim predstavit.

Vyhodpu oproti APT by byla prenostitelnost (to APT je treba delat pro kazdy prekladac znova a muze se bit s jinym APT) a standardizace (rozumnel by tomu i Javadoc a jmena patricne zvyraznoval).

&gt; 4Otec: No ale dost to omezuje pouziti takovych jmen....
Me se nezda ze by to byl vubec problem, protoze tam kde bych to pouzil bych i presne vedel kam mam jit. Normalne bych to pouzil jen pro jeden druh objektu, rekneme pro entity a kdyz jsem je napsal jako tridy, tak musim u proxy jit k predkovi, atd. (uz bych se opakoval).

Vic mi vadi, ze to nepujde pouzit pro neco jako konstruktor

@com.google.inject.Inject
Article(@Named(&quot;title&quot;) String title, @Named(&quot;description&quot;) String description, Author author,  Date publishedDate)

(to Named jsem schvalne pouzil jen kde je potreba), ale k tomu me vazne nic nenapada.</description>
		<content:encoded><![CDATA[<p>Ja bych to nekomplikoval a zustal u<br />
&gt; Ok, to beru jako argument – nicméně pravidlo by mohlo být jednoduché – vrátí se mi to na co se zeptám.<br />
a to jen v pripade ze tam je anotace @ParameterNames (v opacnym pripade predpokladam ze autor s tim nepocital a ty jmena pripadne nekdy zmeni). Tim odpada i nutnost pamatovat si pripadne stary jmena parametru &#8211; to je pak stejne absurni jako pamatovat si stary jmena public metod.Jen bych to namisto toho APT dal do rovnou Javy, aby se na to lezlo pres<br />
String[] Method.getParameterNames()</p>
<p>Dedeni bych taky neresil, nedokazu si predstavit, ze by programator nevedel kterym smerem v hierarchii se vydat &#8211; pokud tam mam dynamicky proxy, tak vim jestli se vygenerovaly k mymu interfejsu nebo k my tride. Zadny konflikty by tez nebylo treba resit, pripadne by si poresil programator kdyby si je tam nadelal &#8211; coz si tez moc neumim predstavit.</p>
<p>Vyhodpu oproti APT by byla prenostitelnost (to APT je treba delat pro kazdy prekladac znova a muze se bit s jinym APT) a standardizace (rozumnel by tomu i Javadoc a jmena patricne zvyraznoval).</p>
<p>&gt; 4Otec: No ale dost to omezuje pouziti takovych jmen&#8230;.<br />
Me se nezda ze by to byl vubec problem, protoze tam kde bych to pouzil bych i presne vedel kam mam jit. Normalne bych to pouzil jen pro jeden druh objektu, rekneme pro entity a kdyz jsem je napsal jako tridy, tak musim u proxy jit k predkovi, atd. (uz bych se opakoval).</p>
<p>Vic mi vadi, ze to nepujde pouzit pro neco jako konstruktor</p>
<p>@com.google.inject.Inject<br />
Article(@Named(&#8222;title&#8220;) String title, @Named(&#8222;description&#8220;) String description, Author author,  Date publishedDate)</p>
<p>(to Named jsem schvalne pouzil jen kde je potreba), ale k tomu me vazne nic nenapada.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: benzin</title>
		<link>http://blog.novoj.net/2010/04/26/nazvy-argumentu-metod-v-reflexi/comment-page-1/#comment-22299</link>
		<dc:creator>benzin</dc:creator>
		<pubDate>Wed, 28 Apr 2010 11:26:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=871#comment-22299</guid>
		<description>4Otec: No ale dost to omezuje pouziti takovych jmen. Protoze musis vzdycky jeste nejak ziskat puvodni klasu. Nemuzes se spolehnout ze ta kterou ziskas z obektu ti staci. Je to podobny problem jako u anotaci. V podstate by stacilo jenom pri buildovani automaticky prihodit anotaci se jmenama promenych k metode. Ale to by presne mel resit ATP.

Mne spise vadi absence aspektu v zakladni jave a k tomu samozrejme i kontraktovaci api.

Ale ono je toho strasne moc co by v jave mohlo byt a neni tam a pritom v jinych jazycich to je. Napr. v Lispu je obdoba aspektu od sameho pocatku - tusim se to menuje hook. Na druhou stranu sem ale rad, ze je Java porad docela konzervativni. Prave z Pythonem, mam docela nepekne zkusenoti prave se zpetnou kompatibilitou, vzhledem k tomu ze dost velka cast KDE  a Gnome (a utilit pro neho) je psana v Pythonu, tak sem si prosel peklem, kdyz sem nechte upgradoal na novou verzi.</description>
		<content:encoded><![CDATA[<p>4Otec: No ale dost to omezuje pouziti takovych jmen. Protoze musis vzdycky jeste nejak ziskat puvodni klasu. Nemuzes se spolehnout ze ta kterou ziskas z obektu ti staci. Je to podobny problem jako u anotaci. V podstate by stacilo jenom pri buildovani automaticky prihodit anotaci se jmenama promenych k metode. Ale to by presne mel resit ATP.</p>
<p>Mne spise vadi absence aspektu v zakladni jave a k tomu samozrejme i kontraktovaci api.</p>
<p>Ale ono je toho strasne moc co by v jave mohlo byt a neni tam a pritom v jinych jazycich to je. Napr. v Lispu je obdoba aspektu od sameho pocatku &#8211; tusim se to menuje hook. Na druhou stranu sem ale rad, ze je Java porad docela konzervativni. Prave z Pythonem, mam docela nepekne zkusenoti prave se zpetnou kompatibilitou, vzhledem k tomu ze dost velka cast KDE  a Gnome (a utilit pro neho) je psana v Pythonu, tak sem si prosel peklem, kdyz sem nechte upgradoal na novou verzi.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Otec Fura</title>
		<link>http://blog.novoj.net/2010/04/26/nazvy-argumentu-metod-v-reflexi/comment-page-1/#comment-22292</link>
		<dc:creator>Otec Fura</dc:creator>
		<pubDate>Wed, 28 Apr 2010 03:47:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=871#comment-22292</guid>
		<description>@benzin teď mi dochází, že v případě dynamických proxy, které musí implementovat jmenované interfacy by muselo dojít pro implementované metody k reflexní analýze původních argumentů, tak aby implementované metody držely stejné názvy. Tohle mi při psaní minulého příspěvku úplně nedocvaklo, ale principielní problém to řekl bych neznamená.</description>
		<content:encoded><![CDATA[<p>@benzin teď mi dochází, že v případě dynamických proxy, které musí implementovat jmenované interfacy by muselo dojít pro implementované metody k reflexní analýze původních argumentů, tak aby implementované metody držely stejné názvy. Tohle mi při psaní minulého příspěvku úplně nedocvaklo, ale principielní problém to řekl bych neznamená.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Otec Fura</title>
		<link>http://blog.novoj.net/2010/04/26/nazvy-argumentu-metod-v-reflexi/comment-page-1/#comment-22277</link>
		<dc:creator>Otec Fura</dc:creator>
		<pubDate>Tue, 27 Apr 2010 12:02:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=871#comment-22277</guid>
		<description>Ano JDK Proxy staví pouze na interfacech, kdežte Cglib odvozuje ze superclass + umožňuje implementovat libovlné ifacy - tj. v tomto případě bych s instancí vůbec neoperoval. U proxy dopředu nikdy nevíš co vlastně wrapují a jestli něco wrapují. Tohle se mi nechce moc brát jako argument.

Nicméně souhlasím s tebou, že nic není triviální, jak se na první zdá. Určitě by se komplikace našly. Je otázka jak problematicky jsou řešitelné. Skutečně už je v Javě dost znát ta stále narůstající koule s nálepkou zpětná kompatibilita.

Co se týká generik, tak ty přes reflexi v runtime dostupné jsou. Jen se nedostaneš na konkrétní hodnoty wildcard generik - tam máš k dispozici jen &quot;bounds&quot;. Viz. minulý článek.</description>
		<content:encoded><![CDATA[<p>Ano JDK Proxy staví pouze na interfacech, kdežte Cglib odvozuje ze superclass + umožňuje implementovat libovlné ifacy &#8211; tj. v tomto případě bych s instancí vůbec neoperoval. U proxy dopředu nikdy nevíš co vlastně wrapují a jestli něco wrapují. Tohle se mi nechce moc brát jako argument.</p>
<p>Nicméně souhlasím s tebou, že nic není triviální, jak se na první zdá. Určitě by se komplikace našly. Je otázka jak problematicky jsou řešitelné. Skutečně už je v Javě dost znát ta stále narůstající koule s nálepkou zpětná kompatibilita.</p>
<p>Co se týká generik, tak ty přes reflexi v runtime dostupné jsou. Jen se nedostaneš na konkrétní hodnoty wildcard generik &#8211; tam máš k dispozici jen &#8222;bounds&#8220;. Viz. minulý článek.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: benzin</title>
		<link>http://blog.novoj.net/2010/04/26/nazvy-argumentu-metod-v-reflexi/comment-page-1/#comment-22275</link>
		<dc:creator>benzin</dc:creator>
		<pubDate>Tue, 27 Apr 2010 11:24:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=871#comment-22275</guid>
		<description>4Otec Fura: Prave ze bude. protze JDK proxy prebira jmena z interace a ne ze tridy. Takze kdyz ti pak do ruky vlitne proxy trida splnujici urcity interace, tak se nikdy nedozvis jake jmena metod na proxovana instance. Naproti tomu CGLIB proxy to dela  (pokud vim) jako potomka predka, takze se ke jmenum dostat muzes.

Problem je v tom, ze tohle muze mit docela nepekne dopady a neni to az tak trivialni, takze se nedivim ze se to odklada. Protoze vzdycky tu bude reseni vyhovujici jednem a nevyhovoujici druhym. Navic tu porad existuje reseni sice ukecane, ale exsituje. A konkretne property, ktere trapi daleko vetsi mnozstvi vyvojaru, porad nenaslo uspokojive resen (pokud teda vim). Podobne je tomu s generikama, ze se k nim nedostanes za behu, to mi prijde taky jako daleko vetsi problem nez jmena parametru.</description>
		<content:encoded><![CDATA[<p>4Otec Fura: Prave ze bude. protze JDK proxy prebira jmena z interace a ne ze tridy. Takze kdyz ti pak do ruky vlitne proxy trida splnujici urcity interace, tak se nikdy nedozvis jake jmena metod na proxovana instance. Naproti tomu CGLIB proxy to dela  (pokud vim) jako potomka predka, takze se ke jmenum dostat muzes.</p>
<p>Problem je v tom, ze tohle muze mit docela nepekne dopady a neni to az tak trivialni, takze se nedivim ze se to odklada. Protoze vzdycky tu bude reseni vyhovujici jednem a nevyhovoujici druhym. Navic tu porad existuje reseni sice ukecane, ale exsituje. A konkretne property, ktere trapi daleko vetsi mnozstvi vyvojaru, porad nenaslo uspokojive resen (pokud teda vim). Podobne je tomu s generikama, ze se k nim nedostanes za behu, to mi prijde taky jako daleko vetsi problem nez jmena parametru.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Otec Fura</title>
		<link>http://blog.novoj.net/2010/04/26/nazvy-argumentu-metod-v-reflexi/comment-page-1/#comment-22273</link>
		<dc:creator>Otec Fura</dc:creator>
		<pubDate>Tue, 27 Apr 2010 11:01:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=871#comment-22273</guid>
		<description>Ok, to beru jako argument - nicméně pravidlo by mohlo být jednoduché - vrátí se mi to na co se zeptám. Kdy si dám class.getSuperClass().getDeclaredMethod(&quot;blabla&quot;) dostanu se k názvům uvedeným v deklaraci předka, když zavolám class.getDeclaredMethod(&quot;blabla&quot;) dostanu názvy argumentů přetížené metody (stejně tak i v případě interfaců).

Nezdá se mi to nijak proti srsti. V případě knihoven co jsem jmenoval (iBatis, Grails) by byly zajímavé právě jen ty argumenty té konkrétní &quot;klientské&quot; třídy - tedy té nejníž v chainu dědičnosti. Co se týká JDK Proxy nebo Cglibu, taky by neměl být problém.</description>
		<content:encoded><![CDATA[<p>Ok, to beru jako argument &#8211; nicméně pravidlo by mohlo být jednoduché &#8211; vrátí se mi to na co se zeptám. Kdy si dám class.getSuperClass().getDeclaredMethod(&#8222;blabla&#8220;) dostanu se k názvům uvedeným v deklaraci předka, když zavolám class.getDeclaredMethod(&#8222;blabla&#8220;) dostanu názvy argumentů přetížené metody (stejně tak i v případě interfaců).</p>
<p>Nezdá se mi to nijak proti srsti. V případě knihoven co jsem jmenoval (iBatis, Grails) by byly zajímavé právě jen ty argumenty té konkrétní &#8222;klientské&#8220; třídy &#8211; tedy té nejníž v chainu dědičnosti. Co se týká JDK Proxy nebo Cglibu, taky by neměl být problém.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: benzin</title>
		<link>http://blog.novoj.net/2010/04/26/nazvy-argumentu-metod-v-reflexi/comment-page-1/#comment-22270</link>
		<dc:creator>benzin</dc:creator>
		<pubDate>Tue, 27 Apr 2010 09:45:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=871#comment-22270</guid>
		<description>4Otec Fura. Kde je problem:

Interface X Class - Ktere jmeno parametru bude mit prednost?
Predek X Potomek - ktery metodu prekryva, nebo implementuje. - Ktere jmeno bude mit prednost
2x Interface (stejna metoda, jina jmena promenych)  implementovano jednou tridu - Ktere jmeno bude mit prednost?

A to vsechno jak dopadne kdyz pouzijeme JDK proxy? A kdyz pouzijeme CGLIB proxy? A budou dalsi nekompatibility pri zamene techto proxy?

Bude nutne aby jmena v implementaci rozhrani byly stejne jaako ve tridach? To ale bude strasne z hlediska zpetne kompatibility. A taky se dostanete do problemu pri immplementaci dvou rozhrani s ruznymi jmeny promenych, ale stejnym jmenem metody.

Nemyslim, ze je tady pekne reseni.</description>
		<content:encoded><![CDATA[<p>4Otec Fura. Kde je problem:</p>
<p>Interface X Class &#8211; Ktere jmeno parametru bude mit prednost?<br />
Predek X Potomek &#8211; ktery metodu prekryva, nebo implementuje. &#8211; Ktere jmeno bude mit prednost<br />
2x Interface (stejna metoda, jina jmena promenych)  implementovano jednou tridu &#8211; Ktere jmeno bude mit prednost?</p>
<p>A to vsechno jak dopadne kdyz pouzijeme JDK proxy? A kdyz pouzijeme CGLIB proxy? A budou dalsi nekompatibility pri zamene techto proxy?</p>
<p>Bude nutne aby jmena v implementaci rozhrani byly stejne jaako ve tridach? To ale bude strasne z hlediska zpetne kompatibility. A taky se dostanete do problemu pri immplementaci dvou rozhrani s ruznymi jmeny promenych, ale stejnym jmenem metody.</p>
<p>Nemyslim, ze je tady pekne reseni.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Otec Fura</title>
		<link>http://blog.novoj.net/2010/04/26/nazvy-argumentu-metod-v-reflexi/comment-page-1/#comment-22266</link>
		<dc:creator>Otec Fura</dc:creator>
		<pubDate>Tue, 27 Apr 2010 06:56:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/?p=871#comment-22266</guid>
		<description>Maaartin už stihnul odpovědět v duchu, ve kterém bych odpovídal já a proto to nebudu opakovat. Všechny uváděné návrhy jen duplikují informaci, která je již obsažená v původní signatuře metody, v názvech argumentů (a některé tedy dost pracně). A jak všichni dobře víme, zdvojování informací vede pouze k nepřehlednosti a dalším chybám.

Podle mého názoru stačí pouze jasně říct, v čem je tato technika nebezpečná a že i názvy argumentů jsou součástí rozhraní. Argumentování tím, že jsem se mohl v názvu argumentu uklepnout a chtěl bych to mít možnost bez rizika v dalších verzích opravit je zcestný - stejnou chybu jsem přeci mohl udělat i při psaní anotace nebo názvu metody a v takovém případě mám problém už za současné situace.

Další věc - schválně se zkuste zamyslet nad tím, jestli v názvech argumentů chybujete častěji než v názvech metod - já tedy ne. Co se týká zmíněných použití (iBatis, Grails atd.) - zde je na první pohled jasné a jasně zdokumentované, že názvy argumentů hrají roli, protože se mapují na nějaká externí data (názvy sloupců v db, názvy paramterů v URL atd.). Řekněte mi, kdo by se mohl v daném případě cítit zmatený? Tady jsou argumenty jasně součástí API, což lze jednoduše prověřit testy - ty také zajistí i rychlé zjištění chyb v případě změny API.

Osobně v tom vidím jen riziko v případě, že se to někdo bude snažit zneužívat, jenže v takovém případě už máme řadu jiných podobných nástrojů, které se také dají zneužívat a také nám nevadí (například setAccessible(boolean) že?).

Osobně v tom faktický problém nevidím, a nutnost současný stav obcházet nějakým šíleným oprogramováváním se mi příčí.</description>
		<content:encoded><![CDATA[<p>Maaartin už stihnul odpovědět v duchu, ve kterém bych odpovídal já a proto to nebudu opakovat. Všechny uváděné návrhy jen duplikují informaci, která je již obsažená v původní signatuře metody, v názvech argumentů (a některé tedy dost pracně). A jak všichni dobře víme, zdvojování informací vede pouze k nepřehlednosti a dalším chybám.</p>
<p>Podle mého názoru stačí pouze jasně říct, v čem je tato technika nebezpečná a že i názvy argumentů jsou součástí rozhraní. Argumentování tím, že jsem se mohl v názvu argumentu uklepnout a chtěl bych to mít možnost bez rizika v dalších verzích opravit je zcestný &#8211; stejnou chybu jsem přeci mohl udělat i při psaní anotace nebo názvu metody a v takovém případě mám problém už za současné situace.</p>
<p>Další věc &#8211; schválně se zkuste zamyslet nad tím, jestli v názvech argumentů chybujete častěji než v názvech metod &#8211; já tedy ne. Co se týká zmíněných použití (iBatis, Grails atd.) &#8211; zde je na první pohled jasné a jasně zdokumentované, že názvy argumentů hrají roli, protože se mapují na nějaká externí data (názvy sloupců v db, názvy paramterů v URL atd.). Řekněte mi, kdo by se mohl v daném případě cítit zmatený? Tady jsou argumenty jasně součástí API, což lze jednoduše prověřit testy &#8211; ty také zajistí i rychlé zjištění chyb v případě změny API.</p>
<p>Osobně v tom vidím jen riziko v případě, že se to někdo bude snažit zneužívat, jenže v takovém případě už máme řadu jiných podobných nástrojů, které se také dají zneužívat a také nám nevadí (například setAccessible(boolean) že?).</p>
<p>Osobně v tom faktický problém nevidím, a nutnost současný stav obcházet nějakým šíleným oprogramováváním se mi příčí.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced

Served from: blog.novoj.net @ 2012-02-09 05:05:05 -->
