<?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>Komentarze do: Singleton w JavaScript</title>
	<atom:link href="http://ferrante.pl/2009/07/09/singleton-w-javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://ferrante.pl/frontend/javascript/singleton-w-javascript/</link>
	<description>Technologie internetowe, PHP5, Python, Javascript. Publicystyka i kursy w najlepszym wydaniu.</description>
	<lastBuildDate>Fri, 03 Feb 2012 16:21:55 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>Autor: ferrante</title>
		<link>http://ferrante.pl/frontend/javascript/singleton-w-javascript/comment-page-1/#comment-9415</link>
		<dc:creator>ferrante</dc:creator>
		<pubDate>Sat, 06 Feb 2010 18:55:09 +0000</pubDate>
		<guid isPermaLink="false">http://ferrante.pl/?p=541#comment-9415</guid>
		<description>Adrianie, zalozeniem tego artykulu bylo pokazanie, jak mozna zaimplementowac klasyczny wzorzec Singleton w JavaScript.  Oczywiscie, ze pusty object literal mozna traktowac jako singleton, ale nie o tym mial byc ten artykul. 

Moglbys rowniez, polecam na przyszlosc, powstrzymac sie od zbyt ofensywnego tonu, gdyz nic nowego - przynajmniej dla mnie - tutaj nie powiedziales, natomiast mam wrazenie, ze mialo zabrzmiec niczym prawda objawiona.

PS.

A propos implementacji JScript mentorze, polecam wyprobowac sobie w IE cos takiego:

&lt;blockquote&gt;if (false) {
	function g() {};
};

typeof g;&lt;/blockquote&gt;</description>
		<content:encoded><![CDATA[<p>Adrianie, zalozeniem tego artykulu bylo pokazanie, jak mozna zaimplementowac klasyczny wzorzec Singleton w JavaScript.  Oczywiscie, ze pusty object literal mozna traktowac jako singleton, ale nie o tym mial byc ten artykul. </p>
<p>Moglbys rowniez, polecam na przyszlosc, powstrzymac sie od zbyt ofensywnego tonu, gdyz nic nowego &#8211; przynajmniej dla mnie &#8211; tutaj nie powiedziales, natomiast mam wrazenie, ze mialo zabrzmiec niczym prawda objawiona.</p>
<p>PS.</p>
<p>A propos implementacji JScript mentorze, polecam wyprobowac sobie w IE cos takiego:</p>
<blockquote><p>if (false) {<br />
	function g() {};<br />
};</p>
<p>typeof g;</p></blockquote>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Adrian</title>
		<link>http://ferrante.pl/frontend/javascript/singleton-w-javascript/comment-page-1/#comment-9414</link>
		<dc:creator>Adrian</dc:creator>
		<pubDate>Sat, 06 Feb 2010 17:57:53 +0000</pubDate>
		<guid isPermaLink="false">http://ferrante.pl/?p=541#comment-9414</guid>
		<description>Ekhm... A czy singletonem nie jest przypadkiem:

singleton={}?

Do tego występują &quot;singletony prototypowe&quot;:

A.prototype={
singleton=[] // lub {} lub new Konstruktor()
}

W każdej instancji A this.singleton będzie wskazywał na ten sam obiekt (musi być [] lub {} - zasadniczo wskaźniki).

JavaScript NIE JEST językiem klasowym i żadne wzorce projektowe dla języków obiektowo-klasowych nie powinny być tu używane. JS jest językiem funkcyjnym z zaimplementowaną prototypowością dla słowników (w JS nazywają się one obiektami). Nie utrudniajcie sobie życia i używajcie tego języka tak jak się powinno bo potem wychodzą takie kwiatki jak w tym poście. Poza tym każda książka traktuje o tym dlaczego w JS nie należy używać wzorca fabryki.

Ukrywanie parametrów funkcji się wykonuje za pomocą var a nie this i zmienna=null.

Aczkolwiek rozumiem, że autorzy są zafascynowani tym co można w JS napisać to jednak uważam, że należy używać jak najprostszych konstrukcji do osiągania celów. Coś na kształt wzorca fabryki jest czasem używany w JS po to aby dać userowi możliwość używania fn() i new fn() zarazem. Nie sądzę jednak aby komukolwiek poza programistami bibliotek takie konstrukcje były potrzebne. Dzisiaj wystarczy wziąć YUI, zapoznać się z konstrukcjami wymyślonymi przez Crockforda i tam zaimplementowanymi i używać NAPRAWDĘ przemyślanych, działających wszędzie konstrukcji. Tam nad każdą jedną funkcją programiści spędzają miesiące najpierw wymyślając, wdrażając i debugując. Nikt inny na świecie nie powinien odkrywać ameryki na nowo - i tak jest mała szansa, że wymyśli coś lepszego niż ci ludzie.

Mam nadzieję, że się sam gdzieś nie pomyliłem. Najgorsze jest to, że nie istnieje dobra książka do nauki tego języka. Najlepiej nauczyć się OCamla, a potem wszystkie jego konstrukcje stosować tutaj. Można też zaopatrzyć się w książkę Crockforda &quot;JavaScript - the good parts&quot;. Sam jej nie czytałem ale ten człowiek kiczu nie mógł wydać. Książkę Zacasa zdecydowanie odradzam. 

Adrian

PS. IE poprawnie interpretuje ECMAScript. To, że inne przeglądarki obsługują nieustandaryzowane rozszerzenia nie oznacza, że IE jest gorszy.</description>
		<content:encoded><![CDATA[<p>Ekhm&#8230; A czy singletonem nie jest przypadkiem:</p>
<p>singleton={}?</p>
<p>Do tego występują &#8222;singletony prototypowe&#8221;:</p>
<p>A.prototype={<br />
singleton=[] // lub {} lub new Konstruktor()<br />
}</p>
<p>W każdej instancji A this.singleton będzie wskazywał na ten sam obiekt (musi być [] lub {} &#8211; zasadniczo wskaźniki).</p>
<p>JavaScript NIE JEST językiem klasowym i żadne wzorce projektowe dla języków obiektowo-klasowych nie powinny być tu używane. JS jest językiem funkcyjnym z zaimplementowaną prototypowością dla słowników (w JS nazywają się one obiektami). Nie utrudniajcie sobie życia i używajcie tego języka tak jak się powinno bo potem wychodzą takie kwiatki jak w tym poście. Poza tym każda książka traktuje o tym dlaczego w JS nie należy używać wzorca fabryki.</p>
<p>Ukrywanie parametrów funkcji się wykonuje za pomocą var a nie this i zmienna=null.</p>
<p>Aczkolwiek rozumiem, że autorzy są zafascynowani tym co można w JS napisać to jednak uważam, że należy używać jak najprostszych konstrukcji do osiągania celów. Coś na kształt wzorca fabryki jest czasem używany w JS po to aby dać userowi możliwość używania fn() i new fn() zarazem. Nie sądzę jednak aby komukolwiek poza programistami bibliotek takie konstrukcje były potrzebne. Dzisiaj wystarczy wziąć YUI, zapoznać się z konstrukcjami wymyślonymi przez Crockforda i tam zaimplementowanymi i używać NAPRAWDĘ przemyślanych, działających wszędzie konstrukcji. Tam nad każdą jedną funkcją programiści spędzają miesiące najpierw wymyślając, wdrażając i debugując. Nikt inny na świecie nie powinien odkrywać ameryki na nowo &#8211; i tak jest mała szansa, że wymyśli coś lepszego niż ci ludzie.</p>
<p>Mam nadzieję, że się sam gdzieś nie pomyliłem. Najgorsze jest to, że nie istnieje dobra książka do nauki tego języka. Najlepiej nauczyć się OCamla, a potem wszystkie jego konstrukcje stosować tutaj. Można też zaopatrzyć się w książkę Crockforda &#8222;JavaScript &#8211; the good parts&#8221;. Sam jej nie czytałem ale ten człowiek kiczu nie mógł wydać. Książkę Zacasa zdecydowanie odradzam. </p>
<p>Adrian</p>
<p>PS. IE poprawnie interpretuje ECMAScript. To, że inne przeglądarki obsługują nieustandaryzowane rozszerzenia nie oznacza, że IE jest gorszy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: shfx</title>
		<link>http://ferrante.pl/frontend/javascript/singleton-w-javascript/comment-page-1/#comment-9401</link>
		<dc:creator>shfx</dc:creator>
		<pubDate>Wed, 03 Feb 2010 08:45:30 +0000</pubDate>
		<guid isPermaLink="false">http://ferrante.pl/?p=541#comment-9401</guid>
		<description>@Karol: http://www.aptana.org/ imho najlepsza</description>
		<content:encoded><![CDATA[<p>@Karol: <a href="http://www.aptana.org/" rel="nofollow">http://www.aptana.org/</a> imho najlepsza</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Karol</title>
		<link>http://ferrante.pl/frontend/javascript/singleton-w-javascript/comment-page-1/#comment-9362</link>
		<dc:creator>Karol</dc:creator>
		<pubDate>Fri, 22 Jan 2010 07:07:28 +0000</pubDate>
		<guid isPermaLink="false">http://ferrante.pl/?p=541#comment-9362</guid>
		<description>Możesz polecić jakąś skuteczną aplikację stworzoną do pisania JavaScript oraz debugowania tego języka?</description>
		<content:encoded><![CDATA[<p>Możesz polecić jakąś skuteczną aplikację stworzoną do pisania JavaScript oraz debugowania tego języka?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: DN</title>
		<link>http://ferrante.pl/frontend/javascript/singleton-w-javascript/comment-page-1/#comment-9267</link>
		<dc:creator>DN</dc:creator>
		<pubDate>Mon, 05 Oct 2009 21:19:14 +0000</pubDate>
		<guid isPermaLink="false">http://ferrante.pl/?p=541#comment-9267</guid>
		<description>Targetem tej kampanii chyba jednak nie powinni byc laicy, ktorzy nic nie zmienia, po prostu nie wejda na strone napisana w sposob nieczytelny dla IE...

Dobrze zakrojona kampania powinna pokazywac korzysci np dla firm komputerowych skladajacych maszyny i instalujacych na nich soft dla zwyklych userow. Wtedy na systemie windows znajdzie sie rowniez np firefox czy inna opera ustawione jako przegladarka domyslna...

Inna sprawa to ta, ze np firma dla ktorej teraz pisze soft pracuje tylko na IE, poniewaz wczesniejsze wersje softu dzialaly tylko pod IE... Odgornie pojawil sie zakaz instalowania innych przegladarek, zeby aplikacja zawsze dzialala poprawnie. Tak wiec ilestamset osob ma TYLKO IE. I zadna kampania wycelowana w uzytkownika tego nie zmieni.

Mysle, ze warto jednak miec nastawienie frontem do usera, ktory najczesciej ma niewiele do powiedzenia...</description>
		<content:encoded><![CDATA[<p>Targetem tej kampanii chyba jednak nie powinni byc laicy, ktorzy nic nie zmienia, po prostu nie wejda na strone napisana w sposob nieczytelny dla IE&#8230;</p>
<p>Dobrze zakrojona kampania powinna pokazywac korzysci np dla firm komputerowych skladajacych maszyny i instalujacych na nich soft dla zwyklych userow. Wtedy na systemie windows znajdzie sie rowniez np firefox czy inna opera ustawione jako przegladarka domyslna&#8230;</p>
<p>Inna sprawa to ta, ze np firma dla ktorej teraz pisze soft pracuje tylko na IE, poniewaz wczesniejsze wersje softu dzialaly tylko pod IE&#8230; Odgornie pojawil sie zakaz instalowania innych przegladarek, zeby aplikacja zawsze dzialala poprawnie. Tak wiec ilestamset osob ma TYLKO IE. I zadna kampania wycelowana w uzytkownika tego nie zmieni.</p>
<p>Mysle, ze warto jednak miec nastawienie frontem do usera, ktory najczesciej ma niewiele do powiedzenia&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Marek</title>
		<link>http://ferrante.pl/frontend/javascript/singleton-w-javascript/comment-page-1/#comment-9175</link>
		<dc:creator>Marek</dc:creator>
		<pubDate>Thu, 30 Jul 2009 14:04:02 +0000</pubDate>
		<guid isPermaLink="false">http://ferrante.pl/?p=541#comment-9175</guid>
		<description>bardziej chodzi o &quot;computer science in javascript&quot; niż używanie tego w przeglądarkach
mam głęboko w butach, że nie działa w IE6, ot co</description>
		<content:encoded><![CDATA[<p>bardziej chodzi o &#8222;computer science in javascript&#8221; niż używanie tego w przeglądarkach<br />
mam głęboko w butach, że nie działa w IE6, ot co</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Kamil</title>
		<link>http://ferrante.pl/frontend/javascript/singleton-w-javascript/comment-page-1/#comment-9161</link>
		<dc:creator>Kamil</dc:creator>
		<pubDate>Tue, 21 Jul 2009 12:02:06 +0000</pubDate>
		<guid isPermaLink="false">http://ferrante.pl/?p=541#comment-9161</guid>
		<description>jakiś czas temu czytałem artykuł o wzorcach tutaj:
http://www.klauskomenda.com/archives/2007/07/07/javascript-programming-patterns/

i co ciekawe częściej trafiam na określenie module niż singleton dla zapisu zbliżnego do powyższego. wynika to zapewne z innego założenia do zastosowania tego rozwiązania, bo tam zapis ten wykorzystuje się do budowania modułów, które nie będą ze sobą kolidowały.</description>
		<content:encoded><![CDATA[<p>jakiś czas temu czytałem artykuł o wzorcach tutaj:<br />
<a href="http://www.klauskomenda.com/archives/2007/07/07/javascript-programming-patterns/" rel="nofollow">http://www.klauskomenda.com/archives/2007/07/07/javascript-programming-patterns/</a></p>
<p>i co ciekawe częściej trafiam na określenie module niż singleton dla zapisu zbliżnego do powyższego. wynika to zapewne z innego założenia do zastosowania tego rozwiązania, bo tam zapis ten wykorzystuje się do budowania modułów, które nie będą ze sobą kolidowały.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Kania</title>
		<link>http://ferrante.pl/frontend/javascript/singleton-w-javascript/comment-page-1/#comment-9152</link>
		<dc:creator>Kania</dc:creator>
		<pubDate>Sun, 12 Jul 2009 18:30:36 +0000</pubDate>
		<guid isPermaLink="false">http://ferrante.pl/?p=541#comment-9152</guid>
		<description>Targetem tej kampanii chyba jednak nie powinni byc laicy, ktorzy nic nie zmienia, po prostu nie wejda na strone napisana w sposob nieczytelny dla IE...

Dobrze zakrojona kampania powinna pokazywac korzysci np dla firm komputerowych skladajacych maszyny i instalujacych na nich soft dla zwyklych userow. Wtedy na systemie windows znajdzie sie rowniez np firefox czy inna opera ustawione jako przegladarka domyslna...

Inna sprawa to ta, ze np firma dla ktorej teraz pisze soft pracuje tylko na IE, poniewaz wczesniejsze wersje softu dzialaly tylko pod IE... Odgornie pojawil sie zakaz instalowania innych przegladarek, zeby aplikacja zawsze dzialala poprawnie. Tak wiec ilestamset osob ma TYLKO IE. I zadna kampania wycelowana w uzytkownika tego nie zmieni.

Mysle, ze warto jednak miec nastawienie frontem do usera, ktory najczesciej ma niewiele do powiedzenia...</description>
		<content:encoded><![CDATA[<p>Targetem tej kampanii chyba jednak nie powinni byc laicy, ktorzy nic nie zmienia, po prostu nie wejda na strone napisana w sposob nieczytelny dla IE&#8230;</p>
<p>Dobrze zakrojona kampania powinna pokazywac korzysci np dla firm komputerowych skladajacych maszyny i instalujacych na nich soft dla zwyklych userow. Wtedy na systemie windows znajdzie sie rowniez np firefox czy inna opera ustawione jako przegladarka domyslna&#8230;</p>
<p>Inna sprawa to ta, ze np firma dla ktorej teraz pisze soft pracuje tylko na IE, poniewaz wczesniejsze wersje softu dzialaly tylko pod IE&#8230; Odgornie pojawil sie zakaz instalowania innych przegladarek, zeby aplikacja zawsze dzialala poprawnie. Tak wiec ilestamset osob ma TYLKO IE. I zadna kampania wycelowana w uzytkownika tego nie zmieni.</p>
<p>Mysle, ze warto jednak miec nastawienie frontem do usera, ktory najczesciej ma niewiele do powiedzenia&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: ferrante</title>
		<link>http://ferrante.pl/frontend/javascript/singleton-w-javascript/comment-page-1/#comment-9151</link>
		<dc:creator>ferrante</dc:creator>
		<pubDate>Sat, 11 Jul 2009 13:42:27 +0000</pubDate>
		<guid isPermaLink="false">http://ferrante.pl/?p=541#comment-9151</guid>
		<description>I taki stan rzeczy jest zły. To tak, jakby dziwić się, że fiat 126p nie wyciąga 200 na godzinę, skoro BMW już tak. Jasne, w wielu korporacjach, bibliotekach i innych tego typu lokacjach nie ma sposobu na zmianę przeglądarki, aczkolwiek kto jak nie my, developerzy, ma obowiązek uświadomić ludzi, ze stosowanie IE niesie za sobą poważne braki. Z czasem, dobrze zakrojona kampania odciśnie piętno na większych strukturach - od nitki do kłębka! Już prawie 10 lat idziemy na kompromis i używamy hacków dla IE, a nie informujemy ludzi o wysiłku, który musieliśmy ponieść i o, przede wszystkim, wadach ich przeglądarek. Ja w swoich projektach olewam IE6, z czasem pewnie IE7 i staram się informować ludzi o tym.

Pozdrawiam</description>
		<content:encoded><![CDATA[<p>I taki stan rzeczy jest zły. To tak, jakby dziwić się, że fiat 126p nie wyciąga 200 na godzinę, skoro BMW już tak. Jasne, w wielu korporacjach, bibliotekach i innych tego typu lokacjach nie ma sposobu na zmianę przeglądarki, aczkolwiek kto jak nie my, developerzy, ma obowiązek uświadomić ludzi, ze stosowanie IE niesie za sobą poważne braki. Z czasem, dobrze zakrojona kampania odciśnie piętno na większych strukturach &#8211; od nitki do kłębka! Już prawie 10 lat idziemy na kompromis i używamy hacków dla IE, a nie informujemy ludzi o wysiłku, który musieliśmy ponieść i o, przede wszystkim, wadach ich przeglądarek. Ja w swoich projektach olewam IE6, z czasem pewnie IE7 i staram się informować ludzi o tym.</p>
<p>Pozdrawiam</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Nowaker</title>
		<link>http://ferrante.pl/frontend/javascript/singleton-w-javascript/comment-page-1/#comment-9150</link>
		<dc:creator>Nowaker</dc:creator>
		<pubDate>Sat, 11 Jul 2009 13:33:04 +0000</pubDate>
		<guid isPermaLink="false">http://ferrante.pl/?p=541#comment-9150</guid>
		<description>W wielu miejscach nie można zaktualizować przeglądarki - i co wtedy zrobisz? Ja, stawiając się w roli użytkownika strony, zwyzywał ich autorów.

I największy absurd - jakim kosztem. Zyskując gwarancję niezmienności (zakaz użycia &quot;Singleton = cośtam&quot;), odcinamy 40 ze 100 osób funkcjonalność strony.</description>
		<content:encoded><![CDATA[<p>W wielu miejscach nie można zaktualizować przeglądarki &#8211; i co wtedy zrobisz? Ja, stawiając się w roli użytkownika strony, zwyzywał ich autorów.</p>
<p>I największy absurd &#8211; jakim kosztem. Zyskując gwarancję niezmienności (zakaz użycia &#8222;Singleton = cośtam&#8221;), odcinamy 40 ze 100 osób funkcjonalność strony.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

