<?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: Lombok dobre i słabe strony	</title>
	<atom:link href="https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/feed/" rel="self" type="application/rss+xml" />
	<link>https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/</link>
	<description>Blog o programowaniu w Javie</description>
	<lastBuildDate>Fri, 04 Aug 2023 17:07:11 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-5177</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 11:17:56 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=256#comment-5177</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-5176&quot;&gt;adam&lt;/a&gt;.

&lt;blockquote&gt; Dobra kończę, bo pewnie pierdziele głupoty o 2 nad ranem <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" />&lt;/blockquote&gt;
Trochę tak ;) a trochę masz rację, ale problemy, które opisałeś, są w większości nieistotne albo do rozwiązania w łatwy sposób. Zachęcam do zapoznania się z dokumentacją. Większość ludzi używa Lomboka, zwłaszcza jak korzystają ze Springa i Spring Data (bo jest już dołączony w tej paczce). Skraca on czas pisania kodu i to jest bardzo istotna zaleta ;)]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-5176">adam</a>.</p>
<blockquote><p> Dobra kończę, bo pewnie pierdziele głupoty o 2 nad ranem 🙂</p></blockquote>
<p>Trochę tak 😉 a trochę masz rację, ale problemy, które opisałeś, są w większości nieistotne albo do rozwiązania w łatwy sposób. Zachęcam do zapoznania się z dokumentacją. Większość ludzi używa Lomboka, zwłaszcza jak korzystają ze Springa i Spring Data (bo jest już dołączony w tej paczce). Skraca on czas pisania kodu i to jest bardzo istotna zaleta 😉</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: adam		</title>
		<link>https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-5176</link>

		<dc:creator><![CDATA[adam]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 00:59:21 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=256#comment-5176</guid>

					<description><![CDATA[Ja tej biblioteki nie używałem, ten wpis był pierwszym miejscem gdy zapoznałem się z nią, ale już widzę kilka problemów, nie wiem czy dobrze zrozumiałem zasadę działania, ale jeśli tak to kod jest budowany w procesie kompilacji zgodnie z annotations. Czyli jak na klasie postawie adnotacje do setterów i getterów to wygeneruje mi je dla wszystkich zmiennych, ale mogę mieć przecież zmienne prywatne określające stan obiektu i o ile getter byłby przydatny o tyle setter już niekoniecznie. Poza tym w tym getterze lub setterze mogłyby być robione jeszcze jakieś dodatkowe operacje i już to jest niemożliwe. To samo z konstrukorami. Konstruktor konstruuje obiekt, nie tylko ustawia jego membery. W takich sytuacjach jest to nieprzydatne. Kolejna sprawa to czas kompilacji. Kolejna to dodawanie do projektu dodatkowej biblioteki, która zasadniczo nie wnosi nic poza tym oczyszczeniem kodu to ryzykowna zabawa, bo zyskuje się niewiele (jak dla mnie to nic), a ryzykuje błędami które może mieć ta biblioteka i na dodatek może potem być problem z nazwami adnotacji z innych bibliotek czy frameworków, właściwie nie wiem czy w adnotacjach w Javie można rozwiązać konflikty nazw, jeśli można no ten ten problem odpada, ale chyba nie można, w każdym razie nie wiem tego. Pewnie jakbym zapoznał się z tym bliżej i przemyślał temat to znalazłbym więcej wad. Nie wiem jak wygląda sprawa z debuggerem :). Dobra kończę, bo pewnie pierdziele głupoty o 2 nad ranem :)]]></description>
			<content:encoded><![CDATA[<p>Ja tej biblioteki nie używałem, ten wpis był pierwszym miejscem gdy zapoznałem się z nią, ale już widzę kilka problemów, nie wiem czy dobrze zrozumiałem zasadę działania, ale jeśli tak to kod jest budowany w procesie kompilacji zgodnie z annotations. Czyli jak na klasie postawie adnotacje do setterów i getterów to wygeneruje mi je dla wszystkich zmiennych, ale mogę mieć przecież zmienne prywatne określające stan obiektu i o ile getter byłby przydatny o tyle setter już niekoniecznie. Poza tym w tym getterze lub setterze mogłyby być robione jeszcze jakieś dodatkowe operacje i już to jest niemożliwe. To samo z konstrukorami. Konstruktor konstruuje obiekt, nie tylko ustawia jego membery. W takich sytuacjach jest to nieprzydatne. Kolejna sprawa to czas kompilacji. Kolejna to dodawanie do projektu dodatkowej biblioteki, która zasadniczo nie wnosi nic poza tym oczyszczeniem kodu to ryzykowna zabawa, bo zyskuje się niewiele (jak dla mnie to nic), a ryzykuje błędami które może mieć ta biblioteka i na dodatek może potem być problem z nazwami adnotacji z innych bibliotek czy frameworków, właściwie nie wiem czy w adnotacjach w Javie można rozwiązać konflikty nazw, jeśli można no ten ten problem odpada, ale chyba nie można, w każdym razie nie wiem tego. Pewnie jakbym zapoznał się z tym bliżej i przemyślał temat to znalazłbym więcej wad. Nie wiem jak wygląda sprawa z debuggerem :). Dobra kończę, bo pewnie pierdziele głupoty o 2 nad ranem 🙂</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Adam		</title>
		<link>https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-5138</link>

		<dc:creator><![CDATA[Adam]]></dc:creator>
		<pubDate>Fri, 30 Dec 2022 15:37:14 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=256#comment-5138</guid>

					<description><![CDATA[To może nie wada, ale ostatnio znalazłem błąd, który był małoczytelny w Lomboku
import javax.ws.rs.QueryParam + BeanParam -z pomocą tych 2 adnotacji można stworzyć BeanParam który zmapuje wszystkie queryParamy. W ramach refactoru dodaliśmy tą adnotację do klasy która wcześniej  miała adnotację @Builder z lomboka.
Builder wykluczał bezargumentowy kontstruktor i błąd był bardzo nieczytelny. To nie wada Lomboka, ale trzeba pamiętać że Builder będzie się kłócił z wstrzykiwaniem QueryParam czy  JPA, może by mogli czytelniejszy wyjątek dodać]]></description>
			<content:encoded><![CDATA[<p>To może nie wada, ale ostatnio znalazłem błąd, który był małoczytelny w Lomboku<br />
import javax.ws.rs.QueryParam + BeanParam -z pomocą tych 2 adnotacji można stworzyć BeanParam który zmapuje wszystkie queryParamy. W ramach refactoru dodaliśmy tą adnotację do klasy która wcześniej  miała adnotację @Builder z lomboka.<br />
Builder wykluczał bezargumentowy kontstruktor i błąd był bardzo nieczytelny. To nie wada Lomboka, ale trzeba pamiętać że Builder będzie się kłócił z wstrzykiwaniem QueryParam czy  JPA, może by mogli czytelniejszy wyjątek dodać</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: czesio		</title>
		<link>https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-200</link>

		<dc:creator><![CDATA[czesio]]></dc:creator>
		<pubDate>Mon, 14 Oct 2019 12:24:32 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=256#comment-200</guid>

					<description><![CDATA[Przy okazji warto zwrócić uwagę też uwagę na @ToString  na encji,  które może wykonać wywołanie pól opisanych adnotacją @LazyLoad.]]></description>
			<content:encoded><![CDATA[<p>Przy okazji warto zwrócić uwagę też uwagę na @ToString  na encji,  które może wykonać wywołanie pól opisanych adnotacją @LazyLoad.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-124</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Tue, 13 Aug 2019 12:06:48 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=256#comment-124</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-123&quot;&gt;Marek&lt;/a&gt;.

Dzięki za komentarz Marek.
Ad. 1 i 2 Zgadza się może nie napisałem tego wystarczająco jasno, ale o to właśnie chodzi.
Ad. 3 Trafna uwaga]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-123">Marek</a>.</p>
<p>Dzięki za komentarz Marek.<br />
Ad. 1 i 2 Zgadza się może nie napisałem tego wystarczająco jasno, ale o to właśnie chodzi.<br />
Ad. 3 Trafna uwaga</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Marek		</title>
		<link>https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-123</link>

		<dc:creator><![CDATA[Marek]]></dc:creator>
		<pubDate>Tue, 13 Aug 2019 11:59:23 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=256#comment-123</guid>

					<description><![CDATA[1. Koniecznosc uzycia NoArgsConstructor dla encji hibernetowych - to problem samego hibernata , a nie lomboka samego w sobie. Ma byc konstruktor i kropka. To samo za
2. Immutable class i NoArgsConstructor -&#062; to specyfka javy i final, a nie problem lomboka

Poza tym wszystko sie zgadza. Dodalbym jeszcze:
3. koniecznosc wlaczenia &quot;annotation processing&quot; w Intelij albo &quot;org.projectlombok:lombok:${lombokVer}&quot; w gradle

Pozdawiam]]></description>
			<content:encoded><![CDATA[<p>1. Koniecznosc uzycia NoArgsConstructor dla encji hibernetowych &#8211; to problem samego hibernata , a nie lomboka samego w sobie. Ma byc konstruktor i kropka. To samo za<br />
2. Immutable class i NoArgsConstructor -&gt; to specyfka javy i final, a nie problem lomboka</p>
<p>Poza tym wszystko sie zgadza. Dodalbym jeszcze:<br />
3. koniecznosc wlaczenia &#8222;annotation processing&#8221; w Intelij albo &#8222;org.projectlombok:lombok:${lombokVer}&#8221; w gradle</p>
<p>Pozdawiam</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Punky		</title>
		<link>https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-117</link>

		<dc:creator><![CDATA[Punky]]></dc:creator>
		<pubDate>Fri, 09 Aug 2019 04:27:26 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=256#comment-117</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-113&quot;&gt;Marcin&lt;/a&gt;.

Tak jak sugerował kolega wyżej… Lombok może być etapem pośrednim zanim przesiądziemy się na Kotlina ? tak było w moim wypadku. Nic tak dobrze nie eliminuje boilerplate jak Kotlin i tyle ?]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-113">Marcin</a>.</p>
<p>Tak jak sugerował kolega wyżej… Lombok może być etapem pośrednim zanim przesiądziemy się na Kotlina ? tak było w moim wypadku. Nic tak dobrze nie eliminuje boilerplate jak Kotlin i tyle ?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Marcin		</title>
		<link>https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-116</link>

		<dc:creator><![CDATA[Marcin]]></dc:creator>
		<pubDate>Thu, 08 Aug 2019 15:58:00 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=256#comment-116</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-115&quot;&gt;Mateusz Dąbrowski&lt;/a&gt;.

Co do samych zalet używania Lomboka zgadzam się w pełni i całkiem fajny artykół, ale wydaje mi się że ludzie powinni wiedzieć w co się pakują zanim zaczną używać lomboka ;) 

A co do zmiany jezyka to wiem że często to jest problem, ale dorzucanie stopniowo do projektu Kotlina jest storunkowo proste (nikt nie mówi o rewolucji i przepisywaniu projektu), najwiekszym problemem jest przekonanie zespołu.]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-115">Mateusz Dąbrowski</a>.</p>
<p>Co do samych zalet używania Lomboka zgadzam się w pełni i całkiem fajny artykół, ale wydaje mi się że ludzie powinni wiedzieć w co się pakują zanim zaczną używać lomboka 😉 </p>
<p>A co do zmiany jezyka to wiem że często to jest problem, ale dorzucanie stopniowo do projektu Kotlina jest storunkowo proste (nikt nie mówi o rewolucji i przepisywaniu projektu), najwiekszym problemem jest przekonanie zespołu.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-115</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Thu, 08 Aug 2019 12:36:06 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=256#comment-115</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-113&quot;&gt;Marcin&lt;/a&gt;.

Dzięki za komentarz Marcin. Masz rację, ale bez tego haka nie było by Lomboka. Ja starałem się wypisać głównie wady związane z użytkowaniem tego narzędzia.

Co do przyszłości Lomboka, to myślę, że nie ma się o co martwić. Jeśli wystarczająco duża ilość developerów będzie go używać, to będzie bezpieczny. 

Niech przykładem będzie klasa Unsafe, której używanie to też hak. A kiedy developerzy Javy chcieli ją usunąć, społeczność zaprotestowała i klasa ta nie została usunięta.

Co do innych języków, w większości przypadków nie jest to opcja. Zwykle nie możesz tak po prostu zmienić języka w projekcie.]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-113">Marcin</a>.</p>
<p>Dzięki za komentarz Marcin. Masz rację, ale bez tego haka nie było by Lomboka. Ja starałem się wypisać głównie wady związane z użytkowaniem tego narzędzia.</p>
<p>Co do przyszłości Lomboka, to myślę, że nie ma się o co martwić. Jeśli wystarczająco duża ilość developerów będzie go używać, to będzie bezpieczny. </p>
<p>Niech przykładem będzie klasa Unsafe, której używanie to też hak. A kiedy developerzy Javy chcieli ją usunąć, społeczność zaprotestowała i klasa ta nie została usunięta.</p>
<p>Co do innych języków, w większości przypadków nie jest to opcja. Zwykle nie możesz tak po prostu zmienić języka w projekcie.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Marcin		</title>
		<link>https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/#comment-113</link>

		<dc:creator><![CDATA[Marcin]]></dc:creator>
		<pubDate>Thu, 08 Aug 2019 09:00:42 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=256#comment-113</guid>

					<description><![CDATA[Brakuje mi tylko w minusach lomboka ze jego mechanizm działania jest oparty na jednym wielkim hacku i bazuje na nie dokonać oficjalnym api kompilatora którego raczej nie powinno się używać i które w kolejnych wersjach javy może zniknąć co może skutecznie uniemożliwić upgrade javy w naszym projekcie. 
Uważam ze jezeli tak bardzo przeszkadza nam ten zbędny kod w Javie to już lepiej zacząć korzystać z języka który oferuje nam takie ułatwienia jak Kotlin/Scala]]></description>
			<content:encoded><![CDATA[<p>Brakuje mi tylko w minusach lomboka ze jego mechanizm działania jest oparty na jednym wielkim hacku i bazuje na nie dokonać oficjalnym api kompilatora którego raczej nie powinno się używać i które w kolejnych wersjach javy może zniknąć co może skutecznie uniemożliwić upgrade javy w naszym projekcie.<br />
Uważam ze jezeli tak bardzo przeszkadza nam ten zbędny kod w Javie to już lepiej zacząć korzystać z języka który oferuje nam takie ułatwienia jak Kotlin/Scala</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
