<?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: Obiektowo czy strukturalnie?</title>
	<atom:link href="http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie/feed" rel="self" type="application/rss+xml" />
	<link>http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie</link>
	<description>...czyli Nowakerowy blog o zmaganiach programisty, ale nie tylko.</description>
	<lastBuildDate>Thu, 01 Dec 2011 12:22:51 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>Autor: Nowaker</title>
		<link>http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie/comment-page-1#comment-70</link>
		<dc:creator>Nowaker</dc:creator>
		<pubDate>Fri, 30 May 2008 21:58:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie#comment-70</guid>
		<description>&lt;p&gt;&lt;strong&gt;Zyx&lt;/strong&gt;, w moim przypadku strukturalne GeoZone to ślimak. ab -n 200 -c 10 dla GeoZone.pl daje wynik 44.5 req/s. Zaś strona mol-ksiazkowy.com.pl na frameworku Kohana ma wynik 46 req/s. Tyle że zawartość księgarni dostarczana jest protokołem SOAP! ;)&lt;/p&gt;

&lt;p&gt;[Ta księgarnia jest jeszcze &quot;under development&quot;, dlatego nie linkuję. Zostało mi jeszcze kilka funkcji i zamawiam szablon.]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p><strong>Zyx</strong>, w moim przypadku strukturalne GeoZone to ślimak. ab -n 200 -c 10 dla GeoZone.pl daje wynik 44.5 req/s. Zaś strona mol-ksiazkowy.com.pl na frameworku Kohana ma wynik 46 req/s. Tyle że zawartość księgarni dostarczana jest protokołem SOAP! ;)</p>

<p>[Ta księgarnia jest jeszcze "under development", dlatego nie linkuję. Zostało mi jeszcze kilka funkcji i zamawiam szablon.]</p>]]></content:encoded>
	</item>
	<item>
		<title>Autor: Zyx</title>
		<link>http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie/comment-page-1#comment-69</link>
		<dc:creator>Zyx</dc:creator>
		<pubDate>Fri, 30 May 2008 08:24:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie#comment-69</guid>
		<description>&lt;p&gt;Sztuka to znaleźć kompromis. Zaletą kodu strukturalnego jest jego prostota i wydajność, której czasem mi trochę brakuje, jak patrzę na współczesne kody. Prawda, że półstrukturalny kod mojego blogu modyfikuje się ciężko, ale za to jest krótki i śmiga, aż miło.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Sztuka to znaleźć kompromis. Zaletą kodu strukturalnego jest jego prostota i wydajność, której czasem mi trochę brakuje, jak patrzę na współczesne kody. Prawda, że półstrukturalny kod mojego blogu modyfikuje się ciężko, ale za to jest krótki i śmiga, aż miło.</p>]]></content:encoded>
	</item>
	<item>
		<title>Autor: Nowaker</title>
		<link>http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie/comment-page-1#comment-68</link>
		<dc:creator>Nowaker</dc:creator>
		<pubDate>Thu, 29 May 2008 19:43:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie#comment-68</guid>
		<description>&lt;p&gt;Co do tego &quot;simpleurl&quot; to również bym tak nie zrobił. Wrzuciłbym tę metodę (statyczną) do klasy-helpera url. (Taki sztuczny namespace z uwagi na to, że PHP nie posiada przestrzeni nazw, czy pakietów - jak kto woli. W frameworku KohanaPHP przyjęto taką konwencję do grupowania prostych funkcji o jednej sferze działania)&lt;/p&gt;

&lt;p&gt;To, że PHP jest przede wszystkim strukturalne - widać.
&lt;code&gt;$f = fopen(&#039;plik&#039;)
while (!feof ($f)) ...
$line = fgets ($f)&lt;/code&gt;
grrr... Czy by nie było lepsze coś w tę deseń?:
&lt;code&gt;$f = new FileStream (&#039;plik&#039;)
while (!$f-&gt;eof()) ...
$line = $f-&gt;getLine()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Obiektowy nie upadnie, jeśli jest napisany obiektowo, a nie korzystając z mechanizmów programowania obiektowego ;) Bo obiektowo się projektuje. Chodzi właśnie o to, aby dokładnie zaplanować, co będzie potrzebne i w jaki sposób osiągnąć późniejszą łatwość konserwacji. Wzorce projektowe odgrywają tutaj bardzo ważną rolę. Pozwolę sobie zamieścić krótki cytat z książki &quot;Wzorce projektowe. Analiza kodu sposobem na ich poznanie&quot;, A.Holub:&lt;/p&gt;

&lt;blockquote&gt;Jestem zdecydowanym zwolennikiem reguł rządzących światem systemów obiektowych, ponieważ za każdym razem, gdy którąś z tych reguł łamałem, musiałem pisać cały swój kod od początku.&lt;/blockquote&gt;

&lt;p&gt;A &lt;a href=&quot;http://www.geozone.pl&quot; rel=&quot;nofollow&quot;&gt;Geo&lt;/a&gt; upadło, pisałem je lat 3 temu strukturalnie. Przeróbki były naprawdę znaczne.&lt;/p&gt;

&lt;p&gt;Captcha - hmmm, nie widzę, żeby w ogóle była :D A odpaliłem mojego bloga w innej przeglądarce.  A może Captcha dezaktywuje się po napisaniu pierwszego zaakceptowanego komentarza? Popatrzę w ustawieniach ;)&lt;/p&gt;

&lt;p&gt;Dzięki za komentarz.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Co do tego &#8222;simpleurl&#8221; to również bym tak nie zrobił. Wrzuciłbym tę metodę (statyczną) do klasy-helpera url. (Taki sztuczny namespace z uwagi na to, że PHP nie posiada przestrzeni nazw, czy pakietów &#8211; jak kto woli. W frameworku KohanaPHP przyjęto taką konwencję do grupowania prostych funkcji o jednej sferze działania)</p>

<p>To, że PHP jest przede wszystkim strukturalne &#8211; widać.
<code>$f = fopen('plik')
while (!feof ($f)) ...
$line = fgets ($f)</code>
grrr&#8230; Czy by nie było lepsze coś w tę deseń?:
<code>$f = new FileStream ('plik')
while (!$f->eof()) ...
$line = $f->getLine()</code></p>

<p>Obiektowy nie upadnie, jeśli jest napisany obiektowo, a nie korzystając z mechanizmów programowania obiektowego ;) Bo obiektowo się projektuje. Chodzi właśnie o to, aby dokładnie zaplanować, co będzie potrzebne i w jaki sposób osiągnąć późniejszą łatwość konserwacji. Wzorce projektowe odgrywają tutaj bardzo ważną rolę. Pozwolę sobie zamieścić krótki cytat z książki &#8222;Wzorce projektowe. Analiza kodu sposobem na ich poznanie&#8221;, A.Holub:</p>

<blockquote>Jestem zdecydowanym zwolennikiem reguł rządzących światem systemów obiektowych, ponieważ za każdym razem, gdy którąś z tych reguł łamałem, musiałem pisać cały swój kod od początku.</blockquote>

<p>A <a href="http://www.geozone.pl" rel="nofollow">Geo</a> upadło, pisałem je lat 3 temu strukturalnie. Przeróbki były naprawdę znaczne.</p>

<p>Captcha &#8211; hmmm, nie widzę, żeby w ogóle była :D A odpaliłem mojego bloga w innej przeglądarce.  A może Captcha dezaktywuje się po napisaniu pierwszego zaakceptowanego komentarza? Popatrzę w ustawieniach ;)</p>

<p>Dzięki za komentarz.</p>]]></content:encoded>
	</item>
	<item>
		<title>Autor: Marcin Kłeczek</title>
		<link>http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie/comment-page-1#comment-67</link>
		<dc:creator>Marcin Kłeczek</dc:creator>
		<pubDate>Thu, 29 May 2008 06:46:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie#comment-67</guid>
		<description>&lt;p&gt;I usuń tą captchę, bo można ją automagicznie odczytać, więc tylko wydłużasz czas pisania komentarza :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I usuń tą captchę, bo można ją automagicznie odczytać, więc tylko wydłużasz czas pisania komentarza :)</p>]]></content:encoded>
	</item>
	<item>
		<title>Autor: Marcin Kłeczek</title>
		<link>http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie/comment-page-1#comment-66</link>
		<dc:creator>Marcin Kłeczek</dc:creator>
		<pubDate>Thu, 29 May 2008 06:45:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie#comment-66</guid>
		<description>&lt;p&gt;Hm.. nie dajmy się zwariować. Co powinno być obiektowe, to powinno być obiektowe, a co strukturalne - zostawić strukturalne.&lt;/p&gt;

&lt;p&gt;Obiektowość ma sens, jeśli są ku temu przesłanki - jeśli jest sensowne dziedziczenie i możliwości łatwej wymiany/żonglowania klasami (dobrym przykładem są operacje na obrazkach, które można zamknąć w 1 funkcji publicznej, a w prywatach dodatkowe wymagane obliczenia/operacje - jest 1 interfejs i za każdym razem wiesz jak z niego skorzystać - operacje dotyczące obrazka mogą być zapisane w bazie i w dowolnym momencie odtworzone/powtórzone). Sensowne (IMO) jest również grupowanie funkcji w klasy, jeśli dotyczą podobnych struktur danych (np. operacje na wybranym typie pliku, bądź &quot;specyficznym stringu&quot;) - dodawanie klasy dla 1 funkcji (&quot;simpleurl&quot; modyfikującej string do znaków wyświetlanych w URLu) - tylko dlatego, że &quot;wszystko ma być obiektem&quot; jest bez sensu.&lt;/p&gt;

&lt;p&gt;PHP był i jest językiem przede wszystkim strukturalnym. Obiektowość jest już sensownie rozwinięta, nie zmienia to faktu, że większość funkcji głównych była/jest/będzie strukturalna. Dlatego nie ma sensu całkowite wyparcie się programowania strukturalnego. Jednocześnie warto (ale tylko tam, gdzie to ma sen) używać obiektowości.&lt;/p&gt;

&lt;p&gt;Czytanie kodu obiektowego wcale nie jest prostsze niż kodu strukturalnego (i odwrotnie). Podobnie z modyfikacją i zastępowaniem (duże serwisy) - natomiast z dopisywaniem jest już różnica - łatwiej w serwisach obiektowych.&lt;/p&gt;

&lt;p&gt;Jeszcze co do &quot;upadku&quot; (geo) - jeśli było napisane niechlujnie, zmieniały się zamysły (inne zupełnie kierunki rozwoju i duuuże przebudowy) to nawet obiektowo napisany serwis stanie się z czasem trudny do modyfikacji/rozwoju (a jak jeszcze do tego dojdzie zmiana developera :D )&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hm.. nie dajmy się zwariować. Co powinno być obiektowe, to powinno być obiektowe, a co strukturalne &#8211; zostawić strukturalne.</p>

<p>Obiektowość ma sens, jeśli są ku temu przesłanki &#8211; jeśli jest sensowne dziedziczenie i możliwości łatwej wymiany/żonglowania klasami (dobrym przykładem są operacje na obrazkach, które można zamknąć w 1 funkcji publicznej, a w prywatach dodatkowe wymagane obliczenia/operacje &#8211; jest 1 interfejs i za każdym razem wiesz jak z niego skorzystać &#8211; operacje dotyczące obrazka mogą być zapisane w bazie i w dowolnym momencie odtworzone/powtórzone). Sensowne (IMO) jest również grupowanie funkcji w klasy, jeśli dotyczą podobnych struktur danych (np. operacje na wybranym typie pliku, bądź &#8222;specyficznym stringu&#8221;) &#8211; dodawanie klasy dla 1 funkcji (&#8222;simpleurl&#8221; modyfikującej string do znaków wyświetlanych w URLu) &#8211; tylko dlatego, że &#8222;wszystko ma być obiektem&#8221; jest bez sensu.</p>

<p>PHP był i jest językiem przede wszystkim strukturalnym. Obiektowość jest już sensownie rozwinięta, nie zmienia to faktu, że większość funkcji głównych była/jest/będzie strukturalna. Dlatego nie ma sensu całkowite wyparcie się programowania strukturalnego. Jednocześnie warto (ale tylko tam, gdzie to ma sen) używać obiektowości.</p>

<p>Czytanie kodu obiektowego wcale nie jest prostsze niż kodu strukturalnego (i odwrotnie). Podobnie z modyfikacją i zastępowaniem (duże serwisy) &#8211; natomiast z dopisywaniem jest już różnica &#8211; łatwiej w serwisach obiektowych.</p>

<p>Jeszcze co do &#8222;upadku&#8221; (geo) &#8211; jeśli było napisane niechlujnie, zmieniały się zamysły (inne zupełnie kierunki rozwoju i duuuże przebudowy) to nawet obiektowo napisany serwis stanie się z czasem trudny do modyfikacji/rozwoju (a jak jeszcze do tego dojdzie zmiana developera :D )</p>]]></content:encoded>
	</item>
	<item>
		<title>Autor: Nowaker</title>
		<link>http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie/comment-page-1#comment-65</link>
		<dc:creator>Nowaker</dc:creator>
		<pubDate>Wed, 28 May 2008 23:22:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie#comment-65</guid>
		<description>&lt;p&gt;Oczywiście, Twój wpis nie był na temat strukturalnie vs obiektowo. Mój wpis to tylko lekkie nawiązanie ;)&lt;/p&gt;

&lt;p&gt;Co do &quot;Javowskiego&quot; stylu - styl ten mi odpowiada. Wg mnie jest lepszy od tego, co mamy w PHP. Co prawda w Javie pisałem tylko jeden projekt (mała gra) na zaliczenie przedmiotu, jednak trochę się z tym nakodziłem i jakieś doświadczenie w tym mam.&lt;/p&gt;

&lt;p&gt;Nawiasem mówiąc Java ma bardzo duży wkład we wzorce projektowe, czy architekturę frameworków. Bez Javy dużo tego co mamy po prostu by nie było.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Oczywiście, Twój wpis nie był na temat strukturalnie vs obiektowo. Mój wpis to tylko lekkie nawiązanie ;)</p>

<p>Co do &#8222;Javowskiego&#8221; stylu &#8211; styl ten mi odpowiada. Wg mnie jest lepszy od tego, co mamy w PHP. Co prawda w Javie pisałem tylko jeden projekt (mała gra) na zaliczenie przedmiotu, jednak trochę się z tym nakodziłem i jakieś doświadczenie w tym mam.</p>

<p>Nawiasem mówiąc Java ma bardzo duży wkład we wzorce projektowe, czy architekturę frameworków. Bez Javy dużo tego co mamy po prostu by nie było.</p>]]></content:encoded>
	</item>
	<item>
		<title>Autor: Malcom</title>
		<link>http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie/comment-page-1#comment-64</link>
		<dc:creator>Malcom</dc:creator>
		<pubDate>Wed, 28 May 2008 23:10:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.nowaker.net/devblog/programowanie/obiektowo-czy-strukturalnie#comment-64</guid>
		<description>&lt;p&gt;Dla scislosci nie poruszalem tematu struct vs. oop, bo akurat sam sobie nie wyobrazam pisac czegokolwiek wiekszego (nawet malego) nie obiektowo czy to w php, czy c++ ;)&lt;/p&gt;

&lt;p&gt;Ale mozna zaobserwowac w wielu projektach i kodach napisanych w php podejscie javowe, ktore mi osobiscie nie zbyt przypada do gustu  (tak jak sama java), gdzie wszystko jest pakowane w obiekty, gdzie aby zrobic malutka rzecz trzeba utworzyc 40 instancji roznych klas i wzajemnie nimi zaglowac :P&lt;/p&gt;

&lt;p&gt;Co do przedostatniego akapitu o upadku projektu, moge powtorzyc po raz kolejny, ze nie stalo sie to z powdu strukturalnego projektowania, bo oczywiscie projekt byl OOP. Nie co zmienily sie moje zamilowania i odejscie od webdeveloperki oraz narzut zbyt wielu obowiazkow i nowych roznorakich projektow.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Dla scislosci nie poruszalem tematu struct vs. oop, bo akurat sam sobie nie wyobrazam pisac czegokolwiek wiekszego (nawet malego) nie obiektowo czy to w php, czy c++ ;)</p>

<p>Ale mozna zaobserwowac w wielu projektach i kodach napisanych w php podejscie javowe, ktore mi osobiscie nie zbyt przypada do gustu  (tak jak sama java), gdzie wszystko jest pakowane w obiekty, gdzie aby zrobic malutka rzecz trzeba utworzyc 40 instancji roznych klas i wzajemnie nimi zaglowac :P</p>

<p>Co do przedostatniego akapitu o upadku projektu, moge powtorzyc po raz kolejny, ze nie stalo sie to z powdu strukturalnego projektowania, bo oczywiscie projekt byl OOP. Nie co zmienily sie moje zamilowania i odejscie od webdeveloperki oraz narzut zbyt wielu obowiazkow i nowych roznorakich projektow.</p>]]></content:encoded>
	</item>
</channel>
</rss>

