<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>webbricks &#187; Post Tags &#187; DRY</title>
	<atom:link href="http://blog.grzegorzpawlik.com/tag/dry/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.grzegorzpawlik.com</link>
	<description>Doświadczenie, to coś, co zdobywamy tuż po chwili w której było nam potrzebne ...</description>
	<lastBuildDate>Thu, 29 Jul 2010 15:22:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Fat model, skinny controller &#8211; przykład</title>
		<link>http://blog.grzegorzpawlik.com/2010/05/fat-model-skinny-controller-przyklad/</link>
		<comments>http://blog.grzegorzpawlik.com/2010/05/fat-model-skinny-controller-przyklad/#comments</comments>
		<pubDate>Fri, 21 May 2010 04:00:00 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Controller]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[model]]></category>

		<guid isPermaLink="false">http://blog.grzegorzpawlik.com/?p=975</guid>
		<description><![CDATA[Niedawno przy projekcie trafiliśmy na ciekawy problem. Chciałbym się podzielić z Wami tym czego się nauczyliśmy. Problem przedstawię w bardzo uproszczonej formie, bo trudno bez machania rękoma przy zabazgranej tablicy wyjaśnić go w całości. Problem Mamy formularz dodawania kosztów, który jest dość specyficzny. Można dodać &#8220;łysy koszt&#8221; i wtedy pojawia się formularz z wyborem firmy [...]]]></description>
		<wfw:commentRss>http://blog.grzegorzpawlik.com/2010/05/fat-model-skinny-controller-przyklad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dług techniczny &#8211; przykład z życia wzięty</title>
		<link>http://blog.grzegorzpawlik.com/2010/03/dlug-techniczny-przyklad-z-zycia-wziety/</link>
		<comments>http://blog.grzegorzpawlik.com/2010/03/dlug-techniczny-przyklad-z-zycia-wziety/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 11:24:22 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[dług techniczny]]></category>
		<category><![CDATA[element]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[View]]></category>

		<guid isPermaLink="false">http://blog.grzegorzpawlik.com/?p=867</guid>
		<description><![CDATA[Można się spierać co jest długiem technicznym, a co nie jest. Chciałbym Wam pokazać przykład kodu, który świetnie nadaje się do zobrazowania problemu. Problem: Na jeden ze stron jest wyszukiwarka- formularz, w którym po wpisaniu danych w inputach i selectach przesyła te dane jako parametry &#8220;named&#8221;, np.: example.com/controller/action/field1:value1/field2:value2 Potrzebny jest kawałek kodu javascript, który wygeneruje [...]]]></description>
		<wfw:commentRss>http://blog.grzegorzpawlik.com/2010/03/dlug-techniczny-przyklad-z-zycia-wziety/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial: dashboard web 2.0 dla leniwych&#8230;</title>
		<link>http://blog.grzegorzpawlik.com/2010/02/tutorial_dashboard_web_2-0_dla_leniwyc/</link>
		<comments>http://blog.grzegorzpawlik.com/2010/02/tutorial_dashboard_web_2-0_dla_leniwyc/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 14:15:26 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.grzegorzpawlik.com/?p=706</guid>
		<description><![CDATA[&#8230; czyli dobrych programistów W moim pierwszym tutorialu napiszę jak wydajnie korzystać z tego co daje Ci cakePHP i jQuery. Aktualnie cake opiera się na współpracy z innym frameworkiem javascript &#8211; prototype. Ale już w wersji 1.3 core cake&#8217;a ma współpracować z jquery. Już nie mogę się doczekać. Ten tutorial oparłem na wersji 1.3.0-beta dlatego, [...]]]></description>
		<wfw:commentRss>http://blog.grzegorzpawlik.com/2010/02/tutorial_dashboard_web_2-0_dla_leniwyc/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Zcalenie edit() i add() w kontrolerze</title>
		<link>http://blog.grzegorzpawlik.com/2010/02/zcalenie-edit-i-add-w-kontrolerze/</link>
		<comments>http://blog.grzegorzpawlik.com/2010/02/zcalenie-edit-i-add-w-kontrolerze/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 14:00:20 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Controller]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[View]]></category>

		<guid isPermaLink="false">http://blog.grzegorzpawlik.com/?p=662</guid>
		<description><![CDATA[Gdy przyjrzysz się bliżej kontrolerom stworzonym przy pomocy narzędzia &#8216;bake&#8217; (lub takim, jakie powstają po wykonaniu tutoriala) możesz stwierdzić, że łamią one koncepcję DRY. Jesteś w stanie powiedzieć, które z dwóch metod są niemal identyczne? Jeśli nie &#8211; sprawdź, które dwa widoki są niemal identyczne. Ok, może spaliłem swoją zagadkę, bo w tytule tego postu [...]]]></description>
		<wfw:commentRss>http://blog.grzegorzpawlik.com/2010/02/zcalenie-edit-i-add-w-kontrolerze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skróć swoje listingi</title>
		<link>http://blog.grzegorzpawlik.com/2010/02/skroc-swoje-listingi/</link>
		<comments>http://blog.grzegorzpawlik.com/2010/02/skroc-swoje-listingi/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 17:00:48 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Inne]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[CakePHP 1.2]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[element]]></category>

		<guid isPermaLink="false">http://blog.grzegorzpawlik.com/?p=615</guid>
		<description><![CDATA[Pewnie w niemal każdym swoim widoku index.ctp masz fragment kodu podobny do tego: &#60;?php $i = 0; foreach ($tracks as $track): $class = null; if ($i++ % 2 == 0) { $class = ' class="altrow"'; } ?&#62; &#60;tr&#60;?php echo $class;?&#62;&#62; &#60;td&#62; &#60;?php echo $track['Track']['id']; ?&#62; &#60;/td&#62; &#60;td&#62; &#60;?php echo $track['Track']['name']; ?&#62; &#60;/td&#62; &#60;td&#62; &#60;?php echo [...]]]></description>
		<wfw:commentRss>http://blog.grzegorzpawlik.com/2010/02/skroc-swoje-listingi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dobre praktyki programowania w CakePHP #4</title>
		<link>http://blog.grzegorzpawlik.com/2009/10/dobre-praktyki-programowania-w-cakephp-4/</link>
		<comments>http://blog.grzegorzpawlik.com/2009/10/dobre-praktyki-programowania-w-cakephp-4/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 20:12:34 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[beforeFilter]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[mvc]]></category>

		<guid isPermaLink="false">http://blog.grzegorzpawlik.com/?p=365</guid>
		<description><![CDATA[O podobnych kwestiach pisałem już przy okazji wpisu #2 z tej serii. Ale warto jeszcze raz przypomnieć o tym, że tak jak zasady projektowania obiektowego tak należy dokładnie zrozumieć co oznacza podział aplikacji na warstwy MVC. W tym wpisie skupię się na warstwie modelu. Jest ona czasem nazywana warstwą biznesową aplikacji- i nie jest to [...]]]></description>
		<wfw:commentRss>http://blog.grzegorzpawlik.com/2009/10/dobre-praktyki-programowania-w-cakephp-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dobre praktyki programowania w CakePHP #3</title>
		<link>http://blog.grzegorzpawlik.com/2009/06/dobre-praktyki-programowania-w-cakephp-3/</link>
		<comments>http://blog.grzegorzpawlik.com/2009/06/dobre-praktyki-programowania-w-cakephp-3/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 17:45:34 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[DRY]]></category>

		<guid isPermaLink="false">http://blog.grzegorzpawlik.com/?p=279</guid>
		<description><![CDATA[Tym razem krótka notka&#8230; Zauważyłem, że czasem gdy stosujemy wzorzec MVC, zapominamy* że istnieje coś takiego jak projektowanie i programowanie zorientowane obiektowo. (*)zakładając, że wcześniej wiedzieliśmy, że coś takiego istnieje &#8211; to nie jest takie oczywiste. Chodzi mi o to, że jak piszesz class, private i extends to jeszcze za mało, żeby powiedzieć iż Twój [...]]]></description>
		<wfw:commentRss>http://blog.grzegorzpawlik.com/2009/06/dobre-praktyki-programowania-w-cakephp-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zarządzanie wersjami STRUKTURY bazy danych w cakePHP 1.2</title>
		<link>http://blog.grzegorzpawlik.com/2009/03/zarzadzanie-wersjami-struktury-bazy-danych-w-cakephp-12/</link>
		<comments>http://blog.grzegorzpawlik.com/2009/03/zarzadzanie-wersjami-struktury-bazy-danych-w-cakephp-12/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 14:39:00 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[CakePHP 1.2]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[zarządzanie projektem]]></category>

		<guid isPermaLink="false">http://meta.vipserv.org/blog.grzegorzpawlik.com/?p=62</guid>
		<description><![CDATA[W poprzednich postach (m.in. zarządzanie wersjami oprogramowania) udało mi się nakreślić problem przy zarządzaniu oprogramowaniem pojawiający się na styku kod-baza danych. Nawet mogę powiedzieć, że mały sukces na tym polu odnotowałem przy pomocy&#160;ImageBehavior, jednak jeśli chodzi o strukturę &#8211; ciągle zmagałem się do tej pory z przeciwnościami. Jednak okazuje się, że cake w nowym wydaniu [...]]]></description>
		<wfw:commentRss>http://blog.grzegorzpawlik.com/2009/03/zarzadzanie-wersjami-struktury-bazy-danych-w-cakephp-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ImageBehavior &#8211; uploaduj pliki prosto do bazy</title>
		<link>http://blog.grzegorzpawlik.com/2009/03/imagebehavior-uploaduj-pliki-prosto-do-bazy/</link>
		<comments>http://blog.grzegorzpawlik.com/2009/03/imagebehavior-uploaduj-pliki-prosto-do-bazy/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 13:01:00 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[behavior]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[RAD]]></category>

		<guid isPermaLink="false">http://meta.vipserv.org/blog.grzegorzpawlik.com/?p=56</guid>
		<description><![CDATA[Jakiś czas temu napisałem o pomyśle cake&#8217;owego Behavior (http://webbricks.blogspot.com/2009/02/pliki-w-formie-binarnej-w-bazie.html). Poniżej prezentuję pierwsze podejście do problemu: /** * ImageBehavior - take best from database blobs adn file image storage * requires ’content’ field that is a blob (mediumblob or longblob), and * ’ext’ varchar(10) field and * ’modified’ datetime field * @author Grzegorz Pawlik * @version [...]]]></description>
		<wfw:commentRss>http://blog.grzegorzpawlik.com/2009/03/imagebehavior-uploaduj-pliki-prosto-do-bazy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nam obiektowo pisać (nie) kazano&#8230;</title>
		<link>http://blog.grzegorzpawlik.com/2008/10/nam-obiektowo-pisac-nie-kazano/</link>
		<comments>http://blog.grzegorzpawlik.com/2008/10/nam-obiektowo-pisac-nie-kazano/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 20:33:00 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Inne]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[OOP]]></category>

		<guid isPermaLink="false">http://meta.vipserv.org/blog.grzegorzpawlik.com/?p=40</guid>
		<description><![CDATA[&#8230; czyli co się dzieje, kiedy ktoś kto nie wie dlaczego się używa kodu obiektowego, pisze takowy bo musi. Jest sobie jedna, bardzo wazna metoda w bardzo ważnej klasie, w bardzo ważnym projekcie. Ciągnie się od linii 484 do majaczącej na horyzoncie (i zdecydowanie poza ekranem) linii 745. Jest w niej o wiele za dużo. [...]]]></description>
		<wfw:commentRss>http://blog.grzegorzpawlik.com/2008/10/nam-obiektowo-pisac-nie-kazano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
