<?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#"
	>

<channel>
	<title>Dobre praktyki &#8211; Praktyczna Java</title>
	<atom:link href="https://praktycznajava.pl/category/dobre-praktyki/feed/" rel="self" type="application/rss+xml" />
	<link>https://praktycznajava.pl</link>
	<description>Odnajdź się w pracy jako Java Developer!</description>
	<lastBuildDate>Sat, 15 Jan 2022 20:55:28 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>
<site xmlns="com-wordpress:feed-additions:1">199065390</site>	<item>
		<title>Spring Security &#8211; jak skutecznie zabezpieczać aplikację?</title>
		<link>https://praktycznajava.pl/2021/12/24/spring-security-jak-skutecznie-zabezpieczac-aplikacje/</link>
					<comments>https://praktycznajava.pl/2021/12/24/spring-security-jak-skutecznie-zabezpieczac-aplikacje/#respond</comments>
		
		<dc:creator><![CDATA[Redaktor]]></dc:creator>
		<pubDate>Fri, 24 Dec 2021 15:31:52 +0000</pubDate>
				<category><![CDATA[Dobre praktyki]]></category>
		<category><![CDATA[Spring Security]]></category>
		<category><![CDATA[Spring Security - jak skutecznie zabezpieczać aplikację?]]></category>
		<guid isPermaLink="false">https://praktycznajava.pl/?p=790</guid>

					<description><![CDATA[<p>Spring Security wydany w 2008 roku. Zajmuje się bezpieczeństwem aplikacji. Jest to zestaw narzędzi, które pomagają w łatwy sposób dodać uwierzytelnianie i autoryzację do aplikacji. Trzy główne koncepty: Authentication &#8211; uwierzytelnianie za pomocą np. loginu i hasła Authorization &#8211; to sprawdzanie czy dana zalogowana osoba ma konkretne uprawnienie do tej części aplikacji np. do konkretnych &#8230;</p>
<p>Artykuł <a rel="nofollow" href="https://praktycznajava.pl/2021/12/24/spring-security-jak-skutecznie-zabezpieczac-aplikacje/">Spring Security &#8211; jak skutecznie zabezpieczać aplikację?</a> pochodzi z serwisu <a rel="nofollow" href="https://praktycznajava.pl">Praktyczna Java</a>.</p>
]]></description>
		
					<wfw:commentRss>https://praktycznajava.pl/2021/12/24/spring-security-jak-skutecznie-zabezpieczac-aplikacje/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">790</post-id>	</item>
		<item>
		<title>Tipy &#038; Triki &#8211; Jak korzystać z Optionala?</title>
		<link>https://praktycznajava.pl/2021/12/24/tipy-amp-triki-jak-korzystac-z-optional/</link>
					<comments>https://praktycznajava.pl/2021/12/24/tipy-amp-triki-jak-korzystac-z-optional/#respond</comments>
		
		<dc:creator><![CDATA[Redaktor]]></dc:creator>
		<pubDate>Fri, 24 Dec 2021 15:31:17 +0000</pubDate>
				<category><![CDATA[Dobre praktyki]]></category>
		<category><![CDATA[Optional]]></category>
		<category><![CDATA[Tipy &amp; Triki - Jak korzystać z Optionala?]]></category>
		<guid isPermaLink="false">https://praktycznajava.pl/?p=728</guid>

					<description><![CDATA[<p>Klasa Optional została wprowadzona w Javie 8. Pozwala wygodnie obsługiwać potencjalne NullPointerException. O jej podstawowych możliwościach przeczytasz np. tutaj: link. Dlaczego używać Optionali? Używając Optionala mamy trochę więcej kodu. Ale mamy duży uzysk. Ludzie (korzystający z funkcji, która zwraca takiego Optionala) będą wiedzieć, że ten obiekt może być lub nie i muszą sobie z tym &#8230;</p>
<p>Artykuł <a rel="nofollow" href="https://praktycznajava.pl/2021/12/24/tipy-amp-triki-jak-korzystac-z-optional/">Tipy &amp; Triki &#8211; Jak korzystać z Optionala?</a> pochodzi z serwisu <a rel="nofollow" href="https://praktycznajava.pl">Praktyczna Java</a>.</p>
]]></description>
		
					<wfw:commentRss>https://praktycznajava.pl/2021/12/24/tipy-amp-triki-jak-korzystac-z-optional/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">728</post-id>	</item>
		<item>
		<title>Spring Webflux i programowanie reaktywne</title>
		<link>https://praktycznajava.pl/2021/12/24/spring-webflux-i-programowanie-reaktywne/</link>
					<comments>https://praktycznajava.pl/2021/12/24/spring-webflux-i-programowanie-reaktywne/#respond</comments>
		
		<dc:creator><![CDATA[Redaktor]]></dc:creator>
		<pubDate>Fri, 24 Dec 2021 15:29:38 +0000</pubDate>
				<category><![CDATA[Dobre praktyki]]></category>
		<category><![CDATA[Spring Webflux i programowanie reaktywne]]></category>
		<guid isPermaLink="false">https://praktycznajava.pl/?p=619</guid>

					<description><![CDATA[<p>Spring Webflux &#8211; odpowiednik Spring MVC. Wprowadzony w Spring 5. Umożliwia pisanie aplikacji w stylu reaktywnym. Jeśli przetwarzamy dużo danych i mamy wiele użytkowników, potrzebujemy przetwarzania asynchronicznego, ponieważ wtedy aplikacje będą szybsze i wydajniejsze. W Javie korzystanie z asynchroniczności może być kłopotliwe, ponieważ może sprawić, że kod będzie trudny do czytania i utrzymywania. Programowanie reaktywne &#8230;</p>
<p>Artykuł <a rel="nofollow" href="https://praktycznajava.pl/2021/12/24/spring-webflux-i-programowanie-reaktywne/">Spring Webflux i programowanie reaktywne</a> pochodzi z serwisu <a rel="nofollow" href="https://praktycznajava.pl">Praktyczna Java</a>.</p>
]]></description>
		
					<wfw:commentRss>https://praktycznajava.pl/2021/12/24/spring-webflux-i-programowanie-reaktywne/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">619</post-id>	</item>
		<item>
		<title>Zasada Open/Close. SOLID</title>
		<link>https://praktycznajava.pl/2021/11/24/zasada-open-close-solid/</link>
					<comments>https://praktycznajava.pl/2021/11/24/zasada-open-close-solid/#respond</comments>
		
		<dc:creator><![CDATA[Redaktor]]></dc:creator>
		<pubDate>Wed, 24 Nov 2021 20:12:04 +0000</pubDate>
				<category><![CDATA[Dobre praktyki]]></category>
		<category><![CDATA[Zasada Open/Closed. SOLID]]></category>
		<guid isPermaLink="false">https://praktycznajava.pl/?p=709</guid>

					<description><![CDATA[<p>Zasada Open/Close&#8211; Zdefiniowana przez Bertranda Meyera w 1988 roku. Wchodzi w skład SOLID. Mówi ona: &#8220;Element oprogramowania (klasa, moduł, funkcja) powinien być otwarty na rozbudowę, ale zamknięty na modyfikacje.&#8221; &#8220;Oznacza to, że zachowanie elementu oprogramowania powinno pozwalać na rozbudowę bez konieczności modyfikowania samego elementu.&#8221; Robert C. Martin. &#8220;Czysta architektura&#8221; Open/Close otwarty na rozbudowę — ponieważ &#8230;</p>
<p>Artykuł <a rel="nofollow" href="https://praktycznajava.pl/2021/11/24/zasada-open-close-solid/">Zasada Open/Close. SOLID</a> pochodzi z serwisu <a rel="nofollow" href="https://praktycznajava.pl">Praktyczna Java</a>.</p>
]]></description>
		
					<wfw:commentRss>https://praktycznajava.pl/2021/11/24/zasada-open-close-solid/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">709</post-id>	</item>
		<item>
		<title>Tipy &#038; Triki &#8211; Jak korzystać ze Stream API?</title>
		<link>https://praktycznajava.pl/2021/11/24/tipy-triki-jak-korzystac-ze-stream-api/</link>
					<comments>https://praktycznajava.pl/2021/11/24/tipy-triki-jak-korzystac-ze-stream-api/#respond</comments>
		
		<dc:creator><![CDATA[Redaktor]]></dc:creator>
		<pubDate>Wed, 24 Nov 2021 20:10:02 +0000</pubDate>
				<category><![CDATA[Dobre praktyki]]></category>
		<category><![CDATA[Stream API]]></category>
		<category><![CDATA[Tipy &amp; Triki - Jak korzystać ze Stream API?]]></category>
		<guid isPermaLink="false">https://praktycznajava.pl/?p=768</guid>

					<description><![CDATA[<p>Stream API wprowadzono w Javie 8. Umożliwia opakowywanie danych i wykonywanie na nich różnych operacji. O jego podstawowych zastosowaniach przeczytasz tutaj: link. Przejdźmy do bardziej zaawansowanych zagadnień. Na potrzeby przykładów skorzystamy z takiego produktu: I takiej listy produktów: Poniżej przekonwertujemy strumień zawierający obiekty Product na strumień zawierający obiekty Product.Type. Następnie wypiszemy na konsolę: Oto wynik: &#8230;</p>
<p>Artykuł <a rel="nofollow" href="https://praktycznajava.pl/2021/11/24/tipy-triki-jak-korzystac-ze-stream-api/">Tipy &amp; Triki &#8211; Jak korzystać ze Stream API?</a> pochodzi z serwisu <a rel="nofollow" href="https://praktycznajava.pl">Praktyczna Java</a>.</p>
]]></description>
		
					<wfw:commentRss>https://praktycznajava.pl/2021/11/24/tipy-triki-jak-korzystac-ze-stream-api/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">768</post-id>	</item>
		<item>
		<title>Clean code w testach. Jak to zrobić dobrze?</title>
		<link>https://praktycznajava.pl/2021/11/13/clean-code-w-testach-jak-to-zrobic-dobrze/</link>
					<comments>https://praktycznajava.pl/2021/11/13/clean-code-w-testach-jak-to-zrobic-dobrze/#respond</comments>
		
		<dc:creator><![CDATA[Redaktor]]></dc:creator>
		<pubDate>Sat, 13 Nov 2021 10:09:49 +0000</pubDate>
				<category><![CDATA[Dobre praktyki]]></category>
		<category><![CDATA[Clean code w testach. Jak to zrobić dobrze?]]></category>
		<guid isPermaLink="false">https://praktycznajava.pl/?p=595</guid>

					<description><![CDATA[<p>Dobrze napisane testy nie powinny posiadać zduplikowanego kodu. Powtarzalnym kodem jest kod przygotowujący dane testowe, w związku z tym konieczny jest Clean code. Poniżej poglądowy przykład: W testach potrzebujemy wiele podobnych obiektów różniących się przykładowo jednym polem. Powoduje to, że podobny kod będzie wielokrotnie powielany. Powoduje to szereg problemów: Zmiany w konstrukcji obiektów wymuszają zmianę &#8230;</p>
<p>Artykuł <a rel="nofollow" href="https://praktycznajava.pl/2021/11/13/clean-code-w-testach-jak-to-zrobic-dobrze/">Clean code w testach. Jak to zrobić dobrze?</a> pochodzi z serwisu <a rel="nofollow" href="https://praktycznajava.pl">Praktyczna Java</a>.</p>
]]></description>
		
					<wfw:commentRss>https://praktycznajava.pl/2021/11/13/clean-code-w-testach-jak-to-zrobic-dobrze/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">595</post-id>	</item>
		<item>
		<title>CompletableFuture przegra walkę z nowym Projektem Loom?</title>
		<link>https://praktycznajava.pl/2021/11/13/completablefuture-przegra-walke-z-nowym-projekt-loom/</link>
					<comments>https://praktycznajava.pl/2021/11/13/completablefuture-przegra-walke-z-nowym-projekt-loom/#respond</comments>
		
		<dc:creator><![CDATA[Redaktor]]></dc:creator>
		<pubDate>Sat, 13 Nov 2021 10:06:49 +0000</pubDate>
				<category><![CDATA[Dobre praktyki]]></category>
		<guid isPermaLink="false">https://praktycznajava.pl/?p=721</guid>

					<description><![CDATA[<p>Projekt Loom &#8211; głównym celem jest obsługa lekkiego modelu współbieżności w Javie. Nie ma jeszcze tego dostępnego w Javie. Przede wszystkim możemy jednak uzyskać dostęp do prototypów na wiki tego projektu. Dlatego w Javie obecnie polegamy na klasie Thread, który tak naprawdę jest mapowany na wątek systemu operacyjnego. Wady takiego rozwiązania: droższe tworzenie wątków (czas &#8230;</p>
<p>Artykuł <a rel="nofollow" href="https://praktycznajava.pl/2021/11/13/completablefuture-przegra-walke-z-nowym-projekt-loom/">CompletableFuture przegra walkę z nowym Projektem Loom?</a> pochodzi z serwisu <a rel="nofollow" href="https://praktycznajava.pl">Praktyczna Java</a>.</p>
]]></description>
		
					<wfw:commentRss>https://praktycznajava.pl/2021/11/13/completablefuture-przegra-walke-z-nowym-projekt-loom/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">721</post-id>	</item>
		<item>
		<title>Prawo Demeter. 4 zasady projektowania wujka Boba.</title>
		<link>https://praktycznajava.pl/2021/10/30/prawo-demeter-4-zasady-projektowania-wujka-boba/</link>
					<comments>https://praktycznajava.pl/2021/10/30/prawo-demeter-4-zasady-projektowania-wujka-boba/#respond</comments>
		
		<dc:creator><![CDATA[Redaktor]]></dc:creator>
		<pubDate>Sat, 30 Oct 2021 10:53:13 +0000</pubDate>
				<category><![CDATA[Dobre praktyki]]></category>
		<category><![CDATA[Prawo Demeter. 4 zasady projektowania wujka Boba.]]></category>
		<guid isPermaLink="false">https://praktycznajava.pl/?p=552</guid>

					<description><![CDATA[<p>Preferuj polimorfizm zamiast if/else czy switch/case Przed użyciem switch&#8217;a zastanów się nad użyciem polimorfizmu, ponieważ wujek Bob przyjmuje zasadę, &#8220;jednego switcha&#8221;. Czyli jeden switch umieszczony w fabryce. Powinien on tworzyć obiekty polimorficzne, ponieważ zastępują one switch&#8217;e w innych miejscach aplikacji. Rozdziel kod wielowątkowy Staraj się trzymać te kody oddzielnie, ponieważ zasadniczo się różnią. Różnią się &#8230;</p>
<p>Artykuł <a rel="nofollow" href="https://praktycznajava.pl/2021/10/30/prawo-demeter-4-zasady-projektowania-wujka-boba/">Prawo Demeter. 4 zasady projektowania wujka Boba.</a> pochodzi z serwisu <a rel="nofollow" href="https://praktycznajava.pl">Praktyczna Java</a>.</p>
]]></description>
		
					<wfw:commentRss>https://praktycznajava.pl/2021/10/30/prawo-demeter-4-zasady-projektowania-wujka-boba/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">552</post-id>	</item>
		<item>
		<title>GraphQL konkurencją dla RESTa?</title>
		<link>https://praktycznajava.pl/2021/10/29/graphql-konkurencja-dla-resta/</link>
					<comments>https://praktycznajava.pl/2021/10/29/graphql-konkurencja-dla-resta/#respond</comments>
		
		<dc:creator><![CDATA[Redaktor]]></dc:creator>
		<pubDate>Fri, 29 Oct 2021 09:37:03 +0000</pubDate>
				<category><![CDATA[Dobre praktyki]]></category>
		<category><![CDATA[GraphQL konkurencją dla RESTa?]]></category>
		<category><![CDATA[REST]]></category>
		<guid isPermaLink="false">https://praktycznajava.pl/?p=669</guid>

					<description><![CDATA[<p>Stworzony przez Facebooka GraphalQL staje się coraz popularniejszy. Jak działa i czy stanie się konkurencją dla RESTa?</p>
<p>Artykuł <a rel="nofollow" href="https://praktycznajava.pl/2021/10/29/graphql-konkurencja-dla-resta/">GraphQL konkurencją dla RESTa?</a> pochodzi z serwisu <a rel="nofollow" href="https://praktycznajava.pl">Praktyczna Java</a>.</p>
]]></description>
		
					<wfw:commentRss>https://praktycznajava.pl/2021/10/29/graphql-konkurencja-dla-resta/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">669</post-id>	</item>
		<item>
		<title>Czy dobrze zinterpretowałeś pierwszą regułę SOLID?</title>
		<link>https://praktycznajava.pl/2021/10/27/czy-dobrze-zinterpretowales-pierwsza-regule-solid/</link>
					<comments>https://praktycznajava.pl/2021/10/27/czy-dobrze-zinterpretowales-pierwsza-regule-solid/#respond</comments>
		
		<dc:creator><![CDATA[Redaktor]]></dc:creator>
		<pubDate>Wed, 27 Oct 2021 18:16:28 +0000</pubDate>
				<category><![CDATA[Dobre praktyki]]></category>
		<category><![CDATA[Pierwsza reguła SOLID]]></category>
		<category><![CDATA[SOLID]]></category>
		<guid isPermaLink="false">https://praktycznajava.pl/?p=637</guid>

					<description><![CDATA[<p>SOLID &#8211; akronim. Wymyślony przez Roberta C. Martina &#8211; wujka Boba. Zbiór dobrych praktyk. S &#8211; Single Responsibility Principle (SRP). Pierwsza reguła. Brzmi: &#8220;Każdy moduł powinien mieć jedną i tylko jedną przyczynę zmian.&#8221; Reguła ta często jest źle interpretowana. Programiści zakładają, że moduł powinien wykonywać tylko jedno zadanie. Nie o to chodzi w tej regule. &#8230;</p>
<p>Artykuł <a rel="nofollow" href="https://praktycznajava.pl/2021/10/27/czy-dobrze-zinterpretowales-pierwsza-regule-solid/">Czy dobrze zinterpretowałeś pierwszą regułę SOLID?</a> pochodzi z serwisu <a rel="nofollow" href="https://praktycznajava.pl">Praktyczna Java</a>.</p>
]]></description>
		
					<wfw:commentRss>https://praktycznajava.pl/2021/10/27/czy-dobrze-zinterpretowales-pierwsza-regule-solid/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">637</post-id>	</item>
	</channel>
</rss>
