<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Komputerowe Katharsis &#187; django</title>
	<atom:link href="http://komputerowekatharsis.wordpress.com/tag/django/feed/" rel="self" type="application/rss+xml" />
	<link>http://komputerowekatharsis.wordpress.com</link>
	<description>Jak osiągnąć wirtualne oczyszczenie wypełnione estetyzmem oraz informatyką i nie dać się zwariować</description>
	<lastBuildDate>Sat, 07 Apr 2012 19:35:51 +0000</lastBuildDate>
	<language>pl</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='komputerowekatharsis.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Komputerowe Katharsis &#187; django</title>
		<link>http://komputerowekatharsis.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://komputerowekatharsis.wordpress.com/osd.xml" title="Komputerowe Katharsis" />
	<atom:link rel='hub' href='http://komputerowekatharsis.wordpress.com/?pushpress=hub'/>
		<item>
		<title>estetyka oprogramowania</title>
		<link>http://komputerowekatharsis.wordpress.com/2010/06/25/estetyka-oprogramowania/</link>
		<comments>http://komputerowekatharsis.wordpress.com/2010/06/25/estetyka-oprogramowania/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 19:58:31 +0000</pubDate>
		<dc:creator>kbhr</dc:creator>
				<category><![CDATA[oprogramowanie]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[estetyka]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://komputerowekatharsis.wordpress.com/?p=34</guid>
		<description><![CDATA[Ostatnio znów interesuję się tym co można zrobić w Pythonie&#8230;. Python od dawna mnie już interesował w przeciwieństwie do Perla. Python z swoją przejrzystością i estetyzmem bije go o głowę. I zadałem sobie pytanie, czy w 2010 roku istnieją jakieś webowe frameworki własnie w tym języku. Mój wybór padł na Django. Oczywiście interesują mnie tylko [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=komputerowekatharsis.wordpress.com&#038;blog=14181077&#038;post=34&#038;subd=komputerowekatharsis&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ostatnio znów interesuję się tym co można zrobić w Pythonie&#8230;. Python od dawna mnie już interesował w przeciwieństwie do Perla. Python z swoją przejrzystością i estetyzmem bije go o głowę. I zadałem sobie pytanie, czy w 2010 roku istnieją jakieś webowe frameworki własnie w tym języku. Mój wybór padł na Django. Oczywiście interesują mnie tylko open sourcowe albo GPLowe projekty. Z instalacją Django na Ubuntu 9.10 nie było problemów i teraz wykonuje tutorial. Dokumentacja jak na razie w porządku.<br />
Django oparte jest o wzorzec projektowy MVC i od samego początku zwraca uwagę swoim przejrzystym i estetycznym zaprojektowaniem. Używając mi. in. kilku innych moich ulubionych wzorców projektowych:</p>
<p><em>DRY</em> czyli unikanie niepotrzebnej i szkodliwej redundancji w kodzie.. cierpienie dużych projektów, nad którymi ciężko zapanować po latach dopisywania kolejnych funkcjonalności i zmianach koncepcji&#8230;</p>
<p><em>explicit jest lepsze niż implicit</em>, czyli unikamy MAGII w kodzie. I działania poprzez tzw. efekt uboczny.</p>
<p><em>louse coupling and tight cohesion</em> &#8211; fundamentalny wzorzec projektowy Django. Czyli minimalne zależności poszczególnych warstw/modułów projektu oraz silna spójność w obrębie warstwy/modułu. I tutaj im mniej zależności między poszczególnymi warstwami tym lepiej. A spójność im większa tym lepiej. Spójność modułu jest odwrotnie proporcjonalna do jego odpowiedzialności.<br />
Przykładem nagminnym rozpowszechnionym w oprogramowaniu komercyjnym wysokiej zależności między modułami jest komunikowanie się dwóch modułów poprzez globalne zmienne. Bądź sterowanie z modułu Y modułem X poprzez ustawienie flagi x przez moduł Y. Innym jest przekazywanie parametru do funkcji poprzez strukturę, która zawiera więcej informacji niż potrzeba samej funkcji.<br />
Przykładem braku spójności w wewnątrzmodułowej jest występowanie zupełnie nie powiązanych ze sobą funkcji w jednym module. Dobrą tendencją w projektowaniu oprogramowania jest maksymalizacja spójności wewnątrz modułowej przy minimalizacji zależności między modułami.</p>
<p><em>odseparowanie logiki biznesowej od prezentacji</em>. Django ma model, szablon i widok. I tutaj separuje przy pomocy szablonów dane, które mają być prezentowane od tego jak mają być prezentowane (widok).</p>
<p>Niestety tendencja w oprogramowaniu komercyjnym jest taka, że programujemy bez zasad. Liczą się tylko nowe funkcjonalności kosztem jakości. Nikogo z menadżerów nie interesuje JAK zostało napisane oprogramowanie/moduł ważne CZY spełnie wymagania. To się tylko liczy. A zasady zostawmy akademikom.</p>
<p>A tutaj link do projektowej filozofii Django dla wnikliwych:</p>
<p>http://docs.djangoproject.com/en/dev/misc/design-philosophies/</p>
<p>warto przeczytać i zacząć stosować w swoich projektach. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/komputerowekatharsis.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/komputerowekatharsis.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/komputerowekatharsis.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/komputerowekatharsis.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/komputerowekatharsis.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/komputerowekatharsis.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/komputerowekatharsis.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/komputerowekatharsis.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/komputerowekatharsis.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/komputerowekatharsis.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/komputerowekatharsis.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/komputerowekatharsis.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/komputerowekatharsis.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/komputerowekatharsis.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=komputerowekatharsis.wordpress.com&#038;blog=14181077&#038;post=34&#038;subd=komputerowekatharsis&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://komputerowekatharsis.wordpress.com/2010/06/25/estetyka-oprogramowania/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/eaf261d8b5fb7a5fbc72408931dba97a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kbhr</media:title>
		</media:content>
	</item>
	</channel>
</rss>
