<?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: Architektura Mikrojądra 🥥🥝	</title>
	<atom:link href="https://www.bdabek.pl/mikrojadro/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bdabek.pl/mikrojadro/</link>
	<description>Bartosz Dąbek</description>
	<lastBuildDate>Thu, 10 Sep 2020 15:41:15 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>
		Autor: Valery Prince		</title>
		<link>https://www.bdabek.pl/mikrojadro/#comment-65</link>

		<dc:creator><![CDATA[Valery Prince]]></dc:creator>
		<pubDate>Thu, 10 Sep 2020 15:41:15 +0000</pubDate>
		<guid isPermaLink="false">https://www.bdabek.pl/?p=1512#comment-65</guid>

					<description><![CDATA[&lt;span&gt;Architektura mikrojądra lub inaczej architektura wtyczek stosowana jest najczęściej kiedy oprogramowanie musi być w stanie dostosować się do &lt;/span&gt;&lt;a href=&quot;https://aduk.de/development/wearable-emergency-button-salvatio-push/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow ugc&quot;&gt;zmieniających&lt;/a&gt;&lt;span&gt; się wymagań systemowych.&lt;/span&gt;]]></description>
			<content:encoded><![CDATA[<p><span>Architektura mikrojądra lub inaczej architektura wtyczek stosowana jest najczęściej kiedy oprogramowanie musi być w stanie dostosować się do </span><a href="https://aduk.de/development/wearable-emergency-button-salvatio-push/" target="_blank" rel="noopener noreferrer nofollow ugc">zmieniających</a><span> się wymagań systemowych.</span></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Bartosz Dąbek		</title>
		<link>https://www.bdabek.pl/mikrojadro/#comment-64</link>

		<dc:creator><![CDATA[Bartosz Dąbek]]></dc:creator>
		<pubDate>Sun, 30 Aug 2020 05:03:03 +0000</pubDate>
		<guid isPermaLink="false">https://www.bdabek.pl/?p=1512#comment-64</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://www.bdabek.pl/mikrojadro/#comment-63&quot;&gt;Irek&lt;/a&gt;.

Generalnie &lt;strong&gt;&lt;em&gt;architektura mikrojądra &lt;/em&gt;&lt;/strong&gt;wywodzi się z systemów operacyjnych,

Uważam, że samo użycie architektury powinno być podyktowane wymaganiami. Słusznie wskazałeś: &lt;strong style=&quot;background-color: rgb(252, 252, 252); color: rgb(119, 119, 119);&quot;&gt;&lt;em&gt;awaria jednego pluginu nie psuje reszty systemu &lt;/em&gt;&lt;/strong&gt;&lt;span style=&quot;background-color: rgb(252, 252, 252); color: rgb(119, 119, 119);&quot;&gt;- pewnie jest też jeden z driverów architektonicznych który należy rozważyć przed rozpoczęciem implementacji. &lt;/span&gt;

&lt;span style=&quot;background-color: rgb(252, 252, 252); color: rgb(119, 119, 119);&quot;&gt;Na ten moment nie mam doświadczenia z pracy z tą architekturą, więc nie chcę się wdawać w dyskusję. Mam nadzieję, że kiedyś będę mógł powrócić do tematu z większym bagażem doświadczeń :)&lt;/span&gt;]]></description>
			<content:encoded><![CDATA[<p>Generalnie <strong><em>architektura mikrojądra </em></strong>wywodzi się z systemów operacyjnych,</p>
<p>Uważam, że samo użycie architektury powinno być podyktowane wymaganiami. Słusznie wskazałeś: <strong style="background-color: rgb(252, 252, 252); color: rgb(119, 119, 119);"><em>awaria jednego pluginu nie psuje reszty systemu </em></strong><span style="background-color: rgb(252, 252, 252); color: rgb(119, 119, 119);">&#8211; pewnie jest też jeden z driverów architektonicznych który należy rozważyć przed rozpoczęciem implementacji. </span></p>
<p><span style="background-color: rgb(252, 252, 252); color: rgb(119, 119, 119);">Na ten moment nie mam doświadczenia z pracy z tą architekturą, więc nie chcę się wdawać w dyskusję. Mam nadzieję, że kiedyś będę mógł powrócić do tematu z większym bagażem doświadczeń 🙂</span></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Irek		</title>
		<link>https://www.bdabek.pl/mikrojadro/#comment-63</link>

		<dc:creator><![CDATA[Irek]]></dc:creator>
		<pubDate>Sat, 29 Aug 2020 18:04:45 +0000</pubDate>
		<guid isPermaLink="false">https://www.bdabek.pl/?p=1512#comment-63</guid>

					<description><![CDATA[Nazwa &quot;architektura mikrojądra&quot; jest kompletnie myląca, bo ten termin powszechnie odnosi się do systemów operacyjnych i znaczy zupełnie co innego - https://pl.wikipedia.org/wiki/Mikroj%C4%85dro

Żaden z popularnych systemów operacyjnych nie używa mikrojądra, mimo że każdy z nich ma sterowniki (czyli pluginy).

Z mikrojądrem w systemach operacyjnych chodzi o pluginy, ale też o coś więcej: chodzi też o to że każdy plugin jest odizolowany w oddzielnym procesie, zbudowanym tak, że że awaria jednego pluginu nie psuje reszty systemu.

Np. w świecie Javy taką&#160;architekturą z &quot;mikrojądrem&quot; mogą to być aplikacje Spring Bootowe podłączone do kolejek Kafki. Jedna aplikacja wrzuca coś&#160;do kolejki, inna czyta. Awaria jednej z aplikacji nic nie psuje, dodatkowo komunikaty w kolejce są&#160;przechowywane przez jakiś&#160;czas, dzięki czemu po restarcie zepsutego modułu może on kontynuować od momentu zepsucia.]]></description>
			<content:encoded><![CDATA[<p>Nazwa &#8222;architektura mikrojądra&#8221; jest kompletnie myląca, bo ten termin powszechnie odnosi się do systemów operacyjnych i znaczy zupełnie co innego &#8211; <a href="https://pl.wikipedia.org/wiki/Mikroj%C4%85dro" rel="nofollow ugc">https://pl.wikipedia.org/wiki/Mikroj%C4%85dro</a></p>
<p>Żaden z popularnych systemów operacyjnych nie używa mikrojądra, mimo że każdy z nich ma sterowniki (czyli pluginy).</p>
<p>Z mikrojądrem w systemach operacyjnych chodzi o pluginy, ale też o coś więcej: chodzi też o to że każdy plugin jest odizolowany w oddzielnym procesie, zbudowanym tak, że że awaria jednego pluginu nie psuje reszty systemu.</p>
<p>Np. w świecie Javy taką&nbsp;architekturą z &#8222;mikrojądrem&#8221; mogą to być aplikacje Spring Bootowe podłączone do kolejek Kafki. Jedna aplikacja wrzuca coś&nbsp;do kolejki, inna czyta. Awaria jednej z aplikacji nic nie psuje, dodatkowo komunikaty w kolejce są&nbsp;przechowywane przez jakiś&nbsp;czas, dzięki czemu po restarcie zepsutego modułu może on kontynuować od momentu zepsucia.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Bartosz Dąbek		</title>
		<link>https://www.bdabek.pl/mikrojadro/#comment-61</link>

		<dc:creator><![CDATA[Bartosz Dąbek]]></dc:creator>
		<pubDate>Sat, 29 Aug 2020 05:28:03 +0000</pubDate>
		<guid isPermaLink="false">https://www.bdabek.pl/?p=1512#comment-61</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://www.bdabek.pl/mikrojadro/#comment-60&quot;&gt;Marcin Erbel&lt;/a&gt;.

Słusznie. Jeżeli będziemy chcieli przetestować działanie aplikacji jako całości (przy użyciu wszystkich pluginów) to możemy wpaść w pułapkę mockowania i ciągłego przepisywania testów bo jakaś mała rzecz się zmieniła.
Przy testach integracyjnych mikrojądra skupiłbym się na testowaniu działania z konkretnym pluginem zamiast całą konfiguracją.

Przykład: masz jądro, którego zadaniem jest przetwarzanie video. Elementami jądra są np. konwersja video i zapis. Pluginami dla konwersji może być format MP4, MKV a dla zapisu: zapis do google drive&#039;a, zapis na dysk, itp. Teraz zamiast skupiać się na testowaniu całości lepiej skupić się na przetestowaniu działania konkretnego pluginu z mikrojądrem - czy wykonuje swoje działanie. Przetestowanie czy komunikacja w jądrze pomiędzy konwersją i zapisem jest poprawna powinna leżeć w kwestii testów jądra.

Jeżeli musimy przetestować całość to może wybraliśmy nie odpowiednią architekturę? Ale z drugiej strony też zobaczmy - jakakolwiek architektura by nie była - testowanie integracyjne większych części systemu zawsze będzie problematyczne.]]></description>
			<content:encoded><![CDATA[<p>Słusznie. Jeżeli będziemy chcieli przetestować działanie aplikacji jako całości (przy użyciu wszystkich pluginów) to możemy wpaść w pułapkę mockowania i ciągłego przepisywania testów bo jakaś mała rzecz się zmieniła.<br />
Przy testach integracyjnych mikrojądra skupiłbym się na testowaniu działania z konkretnym pluginem zamiast całą konfiguracją.</p>
<p>Przykład: masz jądro, którego zadaniem jest przetwarzanie video. Elementami jądra są np. konwersja video i zapis. Pluginami dla konwersji może być format MP4, MKV a dla zapisu: zapis do google drive&#8217;a, zapis na dysk, itp. Teraz zamiast skupiać się na testowaniu całości lepiej skupić się na przetestowaniu działania konkretnego pluginu z mikrojądrem &#8211; czy wykonuje swoje działanie. Przetestowanie czy komunikacja w jądrze pomiędzy konwersją i zapisem jest poprawna powinna leżeć w kwestii testów jądra.</p>
<p>Jeżeli musimy przetestować całość to może wybraliśmy nie odpowiednią architekturę? Ale z drugiej strony też zobaczmy &#8211; jakakolwiek architektura by nie była &#8211; testowanie integracyjne większych części systemu zawsze będzie problematyczne.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Marcin Erbel		</title>
		<link>https://www.bdabek.pl/mikrojadro/#comment-60</link>

		<dc:creator><![CDATA[Marcin Erbel]]></dc:creator>
		<pubDate>Fri, 28 Aug 2020 20:46:50 +0000</pubDate>
		<guid isPermaLink="false">https://www.bdabek.pl/?p=1512#comment-60</guid>

					<description><![CDATA[Hej, chyba przyczepiłbym się do założenia testowalności pluginów. Zasadniczo pluginy nie potrafią istnieć bez mikrojądra, więc nie da rady ich sensownie przetestować. Dodatkowo każdy nowy plugin zmienia funkcjonowanie całej aplikacji, co wymusza odpowiednie pisanie testów dla całej aplikacji z &quot;zamockowanymi&quot; pluginami, co z kolei doprowadza do tego, że bardzo trudne i karkołomne będzie pisanie testów do aplikacji z użytymi pluginami. Zakładając sytuację kiedy istnieje wiele wersji różnych pluginów wpadamy w ciąg niekończącego się przepisywania testów tak, aby mieć pewność, że nie zepsuliśmy całego flow aplikacji. 

Oczywiście możemy wyjść z założenia, że testujemy jednostkowo wszystkie komponenty, ale moim zdaniem największa wartość leży zawsze w testach integracyjnych, a w przypadku tej architektury mamy bardzo duży nakład, że przetestować całą konfigurację.]]></description>
			<content:encoded><![CDATA[<p>Hej, chyba przyczepiłbym się do założenia testowalności pluginów. Zasadniczo pluginy nie potrafią istnieć bez mikrojądra, więc nie da rady ich sensownie przetestować. Dodatkowo każdy nowy plugin zmienia funkcjonowanie całej aplikacji, co wymusza odpowiednie pisanie testów dla całej aplikacji z &#8222;zamockowanymi&#8221; pluginami, co z kolei doprowadza do tego, że bardzo trudne i karkołomne będzie pisanie testów do aplikacji z użytymi pluginami. Zakładając sytuację kiedy istnieje wiele wersji różnych pluginów wpadamy w ciąg niekończącego się przepisywania testów tak, aby mieć pewność, że nie zepsuliśmy całego flow aplikacji. </p>
<p>Oczywiście możemy wyjść z założenia, że testujemy jednostkowo wszystkie komponenty, ale moim zdaniem największa wartość leży zawsze w testach integracyjnych, a w przypadku tej architektury mamy bardzo duży nakład, że przetestować całą konfigurację.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
