tag:blogger.com,1999:blog-51973744943778478192024-03-18T20:47:24.257+01:00Holistycznie o inżynierii oprogramowania<br><br><br><br><br><br>
Inżynieria oprogramowania w ujęciu systemowym.
Zintegrowane podejście do metodyk,<br> technologii (głównie Java EE), architektury i rozwoju ścieżki kariery programisty.Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.comBlogger217125tag:blogger.com,1999:blog-5197374494377847819.post-31673326985528323232016-08-25T23:10:00.001+02:002016-08-25T23:10:38.554+02:00Core dumpNa prawdę warto przeczytać: <a href="https://geekyprimitives.wordpress.com/2016/08/13/frameworks-libraries-languages-and-deconstructing-bullshit/">https://geekyprimitives.wordpress.com/2016/08/13/frameworks-libraries-languages-and-deconstructing-bullshit/</a>Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com7tag:blogger.com,1999:blog-5197374494377847819.post-58830702579661879552016-07-17T13:56:00.001+02:002016-07-18T21:48:21.818+02:00Prezentacje z Devoxx<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: inherit;">W dniu poprzedzającym <a href="http://devoxx.pl/" target="_blank">konferencję</a> wstałem o 5 rano i udałem się...</span></div>
<span style="font-family: inherit;">STOP!</span><br />
<span style="font-family: inherit;">To nie będzie sprawozdanie z wycieczki do muzeum z IV klasy</span><br />
<br />
Dzięki dobrej woli <a href="https://www.linkedin.com/in/grzegorzduda" target="_blank">Grześka Dudy</a> mamy dostęp do pełnych prezentacji już miesiąc po konferencji.<br />
<br />
<span style="font-family: inherit;">Lista moich faworytów:</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<div style="background: rgb(255, 255, 255); border: 0px; display: table-cell; margin: 0px; padding: 0px; vertical-align: top; width: 824px; word-wrap: break-word;">
<span class="watch-title" dir="ltr" id="eow-title" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Neal Ford - Why does Yesterday's Best Practice Become Tomorrow's Antipattern?"><span style="font-family: inherit;"><b>Neal Ford - Why does Yesterday's Best Practice Become Tomorrow's Antipattern?</b></span></span><br />
<span class="watch-title" dir="ltr" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Neal Ford - Why does Yesterday's Best Practice Become Tomorrow's Antipattern?"><span style="font-family: inherit;"><b><br /></b></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/Kp5YJBQsCPE/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/Kp5YJBQsCPE?feature=player_embedded" width="320"></iframe></div>
<br />
<span style="font-family: inherit;">Piękne, wysokopoziomowe ujęcie naszych przyziemnych problemów.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<div style="background: rgb(255, 255, 255); border: 0px; display: table-cell; margin: 0px; padding: 0px; vertical-align: top; width: 824px; word-wrap: break-word;">
<span class="watch-title" dir="ltr" id="eow-title" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Wojciech Seliga - Ten lessons I painfully learnt while moving from software ..."><span style="font-family: inherit;"><b>Wojciech Seliga - Ten lessons I painfully learnt while moving from software developer to </b></span></span><b>entrepreneur</b><br />
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/ffXpiFEq1jE/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/ffXpiFEq1jE?feature=player_embedded" width="320"></iframe></div>
<br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Wojtek ma niesamowity talent do trafiania w punkt z refleksją i radą. Myślę, że powinien spisać je w formie dedykowanej strony "poradnikowej" albo apki, która losowo codziennie przypomina jedną mądrość (poważnie bez kszty sarkazmu). Sam złapałem się na większości punktów przypominając sobie własne błędy popełnione i popełniane w firmie.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<div style="background: rgb(255, 255, 255); border: 0px; display: table-cell; margin: 0px; padding: 0px; vertical-align: top; width: 824px; word-wrap: break-word;">
<span class="watch-title" dir="ltr" id="eow-title" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Neal Ford - Evolutionary Architectures"><span style="font-family: inherit;"><b>Neal Ford - Evolutionary Architectures</b></span></span><br />
<span class="watch-title" dir="ltr" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Neal Ford - Evolutionary Architectures"><span style="font-family: inherit;"><b><br /></b></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/c3yDwKztsfU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/c3yDwKztsfU?feature=player_embedded" width="320"></iframe></div>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">ThoughtWorks buduje swój techniczny wizerunek poprzez "kronikarzy". Fowler jest jednim z nich, ale Neal zdradził, że nowe osoby pracują nad książką będącą almanahem architektonciznym.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">W pewnej części pracujemy nad tym w firmie - zestaw metryk i wytycznych architektonicznych. Wiele osób pyta o takie materiały podczas szkoleń i po prezentacjach, wytyczne przydają się również podczas audytów.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Dobrze, że TW </span><span style="font-family: inherit;">oficjalnie rekomenduje bounded context z DDD jako wsparcie w określaniu granicy Microservisów (bez tego całość nie ma sensu i jest skazana na porażkę).</span><br />
<br />
Wydaje mi się, że w wywodzie Neala brakuje jednego elementu, który mówi jak konkretnie podejść do decouplingu: <span style="font-family: inherit;"><a href="https://en.wikipedia.org/wiki/Connascence_(computer_programming)">https://en.wikipedia.org/wiki/Connascence_(computer_programming)</a></span><br />
Podejście, o którym mówiłem na tegorocznej Confiturze i podlinkuję jak tylko pojawi się video.<br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<br />
<div style="background: rgb(255, 255, 255); border: 0px; display: table-cell; margin: 0px; padding: 0px; vertical-align: top; width: 824px; word-wrap: break-word;">
<span class="watch-title" dir="ltr" id="eow-title" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Ted Neward - Pragmatic Architecture"><span style="font-family: inherit;"><b>Ted Neward - Pragmatic Architecture</b></span></span><br />
<span class="watch-title" dir="ltr" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Ted Neward - Pragmatic Architecture"><span style="font-family: inherit;"><b><br /></b></span></span>
<br />
<div style="text-align: center;">
<span class="watch-title" dir="ltr" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Ted Neward - Pragmatic Architecture"><iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/jNgZtM6SQmE/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/jNgZtM6SQmE?feature=player_embedded" width="320"></iframe><span style="font-family: inherit;"><br /></span></span></div>
</div>
<div style="font-weight: normal;">
<span class="watch-title" dir="ltr" style="background: transparent; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Ted Neward - Pragmatic Architecture"><span style="font-family: inherit;"><br /></span></span></div>
<div style="font-weight: normal;">
<span class="watch-title" dir="ltr" style="background: transparent; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Ted Neward - Pragmatic Architecture"><span style="font-family: inherit;">Głos sumienia architektów - chało by się rzec:)</span></span></div>
<div style="font-weight: normal;">
<span class="watch-title" dir="ltr" style="background: transparent; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Ted Neward - Pragmatic Architecture"><span style="font-family: inherit;">Bardzo podoba mi się definicja architektury jaką podaje Ted:</span></span></div>
<div style="font-weight: normal;">
<span class="watch-title" dir="ltr" id="eow-title" style="background: transparent; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Ted Neward - Pragmatic Architecture"><span style="font-family: inherit;"><i>Architektura to zestaw odpowiedzi jakie dajemy zanim programiści je zadadzą. Zasady jakie go prowadzą w codziennej pracy a nie prostokąty.</i></span></span></div>
<div style="font-weight: normal;">
<span class="watch-title" dir="ltr" style="background: transparent; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Ted Neward - Pragmatic Architecture"><span style="font-family: inherit;"><br /></span></span></div>
<div style="font-weight: normal;">
<span class="watch-title" dir="ltr" style="background: transparent; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Ted Neward - Pragmatic Architecture"><span style="font-family: inherit;">Osobny problem to: jak te odpowiedzi dokumentować? Swoją propozycję również przedstawię we wspomnianej prezentacji z Confitury.</span></span></div>
<div style="font-weight: normal;">
<span class="watch-title" dir="ltr" style="background: transparent; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Ted Neward - Pragmatic Architecture"><span style="font-family: inherit;"><br /></span></span></div>
<div style="font-weight: normal;">
<span class="watch-title" dir="ltr" style="background: transparent; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Ted Neward - Pragmatic Architecture"><span style="font-family: inherit;">Kolejna ciekawa myśl to metafora architekta. W IT p</span></span><span style="background-color: transparent; font-family: inherit;">otrzeba lidera. Ted proponuje metaforę dyrygenta lub w przypadku małego zespołu frontmana, ew. reżysera.</span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="font-weight: normal;">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://images.latinpost.com/data/images/full/49131/james-hetfield.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://images.latinpost.com/data/images/full/49131/james-hetfield.jpg" height="320" width="221" /></a></div>
<span style="background-color: transparent; font-family: inherit;"><br /></span></div>
<div style="font-weight: normal;">
<span style="background-color: transparent; font-family: inherit;"><br /></span></div>
<div style="font-weight: normal;">
<span style="background-color: transparent; font-family: inherit;"><br /></span></div>
<br />
<div style="background: rgb(255, 255, 255); border: 0px; display: table-cell; margin: 0px; padding: 0px; vertical-align: top; width: 824px; word-wrap: break-word;">
<span class="watch-title" dir="ltr" id="eow-title" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Łukasz Szydło - Preconditions for good code review"><span style="font-family: inherit;"><b>Łukasz Szydło - Preconditions for good code review</b></span></span><br />
<span class="watch-title" dir="ltr" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Łukasz Szydło - Preconditions for good code review"><span style="font-family: inherit;"><b><br /></b></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/r4sA4hrYDs0/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/r4sA4hrYDs0?feature=player_embedded" width="320"></iframe></div>
<br />
<span style="font-family: inherit;">Krótka prezentacja, która rzuca świeże światło na sensowne CR, które dają realną zmianę.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<br />
<div style="background: rgb(255, 255, 255); border: 0px; display: table-cell; margin: 0px; padding: 0px; vertical-align: top; width: 824px; word-wrap: break-word;">
<span class="watch-title" dir="ltr" id="eow-title" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Bartek Nowakowski, Kuba Marchwicki - Niańczenie programistów vs. zarządzanie..."><span style="font-family: inherit;"><b>Bartek Nowakowski, Kuba Marchwicki - Niańczenie programistów vs. zarządzanie dziećmi</b></span></span><br />
<span class="watch-title" dir="ltr" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Bartek Nowakowski, Kuba Marchwicki - Niańczenie programistów vs. zarządzanie..."><span style="font-family: inherit;"><b><br /></b></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/RaXTXXEcjU0/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/RaXTXXEcjU0?feature=player_embedded" width="320"></iframe></div>
Flow może jeszcze do dopracowania, ale urzekła mnie paralela, którą budują prelegenci - niespodzianka na samym końcu.<br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">//==============================</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">A tutaj moja skromna prezentacja:</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<div style="background: rgb(255, 255, 255); border: 0px; display: table-cell; margin: 0px; padding: 0px; vertical-align: top; width: 824px; word-wrap: break-word;">
<span class="watch-title" dir="ltr" id="eow-title" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Sławek Sobótka - Prezentacje i wystąpienia - jak nie tylko przetrwać ale..."><span style="font-weight: normal;"><span style="font-family: inherit;"><b>Prezentacje i wystąpienia - jak nie tylko przetrwać ale i dobrze się bawić</b></span></span></span><br />
<span class="watch-title" dir="ltr" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-image-outset: initial; border-image-repeat: initial; border-image-slice: initial; border-image-source: initial; border-image-width: initial; border: 0px; margin: 0px; padding: 0px;" title="Devoxx Poland 2016 - Sławek Sobótka - Prezentacje i wystąpienia - jak nie tylko przetrwać ale..."><span style="font-weight: normal;"><span style="font-family: inherit;"><b><br /></b></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/pYA5lu0W9_U/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/pYA5lu0W9_U?feature=player_embedded" width="320"></iframe></div>
Przy okazji dziękuję wszystkim, którzy głosowali za miejsce w pierwszej dziesiątce wśród tak znakomitego grona. Dzięki!:)<br />
<br />
<a href="https://prezi.com/-rrgaok7ouoo/45min-jak-prezentowac-swoje-pomysy-przed-ludzmi-technicznymi-i-biznesem/" target="_blank">Slajdy</a> - gdyby ktoś potrzebował.Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com12tag:blogger.com,1999:blog-5197374494377847819.post-76307277478158138012016-05-03T22:56:00.000+02:002016-05-03T22:56:09.354+02:00Jak rekrutować analityka do zespołu lub projektuZapytajcie go na czym polega praca analityka.<br />
Moim zdaniem na tym: <a href="http://it-consulting.pl/autoinstalator/wordpress/2016/05/03/wiedza-a-nauka-i-prawda">http://it-consulting.pl/autoinstalator/wordpress/2016/05/03/wiedza-a-nauka-i-prawda</a>Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com13tag:blogger.com,1999:blog-5197374494377847819.post-90474507987376260242016-03-24T08:17:00.003+01:002016-03-24T08:17:18.842+01:00Systemy złośliwe<i>"<span style="background-color: white; color: #1e2121; font-family: 'Open Sans', sans-serif; font-size: 14px; line-height: 21px;">Problemy, w których rozwiązaniu mają pomóc budowane złożone systemy są zwykle „problemami złośliwymi” (Rittel i Webber, 1973). „Problem złośliwy” to taki skomplikowany problem, w którym jest tak wiele powiązanych ze sobą bytów, że nie istnieje jego ostateczna specyfikacja. Prawdziwy charakter problemu objawia się dopiero w miarę opracowywania rozwiązania."</span></i><br />
<br />
Znalezione u Jarka: <a href="http://it-consulting.pl/autoinstalator/wordpress/2016/03/22/tdd-czy-same-testy-to-wymagania" target="_blank">TDD – czy same testy to wymagania?</a> który argumentuje jak zwykle celnie i bez potrzeby dobijania drugim strzałem:)Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com7tag:blogger.com,1999:blog-5197374494377847819.post-56333900965076653862016-02-22T20:19:00.003+01:002016-02-22T20:19:26.939+01:00Korzyści z DDD z punktu widzenia właściciela firmy softwareowej... i jej klientów.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/MzV2vGSTpo8/0.jpg" src="https://www.youtube.com/embed/MzV2vGSTpo8?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com4tag:blogger.com,1999:blog-5197374494377847819.post-18106887054304223902016-01-22T15:38:00.000+01:002016-01-22T15:38:09.810+01:0021 lat po wzorcachNa kanale <a href="http://15.jdd.org.pl/" target="_blank">JDD</a> pojawiła się prezentacja Ralpha Johnsona - jednego z autorów klasycznej i znanej chyba każdemu programiści pozycji <a href="http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612">http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612</a><br />
<br />
Książka (i jej pochodne) ukształtowała mnie, community Java i .NET, część pokolenia...<br />
Dzięki niej zaczęliśmy myśleć innymi metaforami niż uczono nas na uczelni. U mnie osobiście "namacalne" metafory każdego wzorca rozwinęły spojrzenie kinestetyczno-wizualne na strukturę kodu, które do tej pory jest podstawą mojego poczucia estetyki. Z czasem wzorce odpinamy jak boczne kółka w rowerku, ale sam sposób budowania myśli i komunikowania się z zespołem pozostaje.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/BfHJo_aYj3g/0.jpg" src="https://www.youtube.com/embed/BfHJo_aYj3g?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />
<br />
Ralph opowiada o tym co motywowało autorów oraz o zmianach jakie poczyniłby w drugiej edycji od strony merytorycznej jak i co do formy.<br />
<br />
Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com3tag:blogger.com,1999:blog-5197374494377847819.post-19074925777541875972015-12-28T22:36:00.002+01:002015-12-28T22:38:23.177+01:00Generowanie diagramów architektonicznych w C4Jestem wielkim fanem <a href="https://leanpub.com/software-architecture-for-developers" target="_blank">podejścia C4</a> w dokumentowaniu architektury - co widać na video w poprzednim poście:)<br />
<br />
C4 sprawdza się nie tylko dla nowych projektów oraz do nadawania struktury myślom podczas szkoleń... przydaje się również jako "mapa" podczas misji ratunkowych w projektach ze spuścizną:)<br />
<br />
Polecam świetną prezentację twórcy C4 na temat narzędzi do automatycznego generowania diagramów. Moim zdaniem generowane nie mają takiej wartości w opowiadaniu historii jak ułożone ręcznie, ale lepsze taki niż żadne aby przedzierać się przez spuściznę:)<br />
<br />
Prezentacje jest wartościowa z uwagi na przemyślane komentarze autora z meta-poziomu: kiedy, dlaczego i po co warto stosować dany rodzaj informacji wizualnej oraz rysowanie czego nie ma żadnej wartości:)<br />
<br />
<a href="https://www.youtube.com/watch?v=oDpdaXt0HQI">https://www.youtube.com/watch?v=oDpdaXt0HQI</a><br />
<br />
<br />
//=================<br />
W dużych projektach dodaję M (jak Moduł) tworząc Context Container Module Component Class<br />
gdzie moduł grupuje komponenty.<br />
Moduł można sobie wyobrazić jako jednostkę logiczną (Bounded Context z DDD) czy jako produkt (np. moduł magazynowy czy sprzedaży w ERP) a komponent jako np jednostkę deploymentu (np. klienty, AI itd).<br />
Traktowanie komponentu dosłownie jako @Component w Springu (jak pokazuje przykładowo Brown) wydaje mi się skrajnie niepraktyczne poza malutkimi systemami, ale każdy może sobie popróbować sam co ma dla niego wartość...<br />
<br />Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com4tag:blogger.com,1999:blog-5197374494377847819.post-17141182381284106542015-11-06T23:13:00.001+01:002015-11-07T12:20:02.337+01:00Architektura dla średnio zaawansowanych programistówNa początku tego roku stworzyłem prezentację, która podsumowuje kilka ładnych lat mojej pracy i zamyka tym samym pewien etap: <i>"Co było pierwsze: kod czy architektura?"</i><br />
<br />
Została zarejestrowana podczas tegorocznej edycji <a href="http://dotnetconf.pl/">http://dotnetconf.pl/</a> (również: Devoxx, Infoshare i kilka mniejszych) i możecie obejrzeć ją w całości poniżej:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/JvzRYDpclJ8/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/JvzRYDpclJ8?feature=player_embedded" width="320"></iframe></div>
<br />
Slajdy:<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="400" id="iframe_container" mozallowfullscreen="" src="https://prezi.com/embed/hqbvuqrdnvkj/?bgcolor=ffffff&lock_to_path=0&autoplay=0&autohide_ctrls=0&landing_data=bHVZZmNaNDBIWnNjdEVENDRhZDFNZGNIUE43MHdLNWp4eFBrV0JIL1Q0cTRkWTFkTXJ5K0lrazRtYXRoNmZodzRRRmlDRmVnb0d2R0cvdHdvY2tXaWJSbGNIS1NnYTA9&landing_sign=gnpibOSqUU7aGasl1R7QUBmeKC5RzOxPt2ESR8UH4_Q" webkitallowfullscreen="" width="550"></iframe><br />
<br />
<br />
Prezentacja z uwagi na brak czasu omawia wyłanianie się kodu z architektury. Natomiast podejście Emergent Design gdzie architektura wyłania się z kodu można zobaczyć tutaj począwszy od 50. minuty (w nieco gorszej jakości audio i video):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/eu0_P0EYWag/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/eu0_P0EYWag?feature=player_embedded" width="320"></iframe></div>
<br />
<br />
<br />
<br />
Wiele osób pytało o materiały, więc pomyślałem, że warto zrobić moją prywatną listę książek, które polecam na początek:<br />
<br />
<ul>
<li>S. Brown <i>Software architecture for developers</i> - prosta i skuteczna metodyka rysowania diagramów, które mają sens i wnoszą wartość do projektu; dzięki tej książce dowiecie się, że słowo architektura nie ma sensu w IT jeżeli nie dodasz do niego przymiotnika</li>
<li>V. Vernon <i>Implementing DDD</i> - nawet jeżeli nie interesujesz się DDD, to znajdziesz tutaj kompendium wiedzy o współczesnych stylach arch w kontekście nietrywialnego przykładu dziedzinowego</li>
<li>C. Larman <i>Applying UML and Patterns </i>- tytuł jest zmyłką;) książka nie traktuje o UML, została napisana w czasach gdy UML dodawał +20 do sprzedaży;) autor przedstawia kompletny zwinny proces produkcji softu </li>
<li>Seria <i>Pattern oriented software architecture</i> - to po prostu trzeba mieć w domu na półce... początkowe tomy są dla wszystkich, końcowe są zorientowane na specyficzne problemy</li>
</ul>
<div>
Swego czasu popełniłem również serię artykułów dla programistamag.pl <i>Receptury projektowe - niezbędnik początkującego architekta</i>, którą można pobrać całkowicie darmowo tutaj: <a href="http://bottega.com.pl/artykuly-i-prezentacje#receptury">http://bottega.com.pl/artykuly-i-prezentacje#receptury</a><br />
<br />
Tutaj można znaleźć projekt, który ilustruje omawiane techniki <a href="https://github.com/BottegaIT/ddd-leaven-v2">https://github.com/BottegaIT/ddd-leaven-v2</a></div>
<div>
<br /></div>
<div>
Polecam również <a href="https://www.google.pl/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=udi+dahan&tbm=vid" target="_blank">Udi Dahan</a>.</div>
<div>
<br /></div>
<div>
<br /></div>
<br />
<b>Mam do Was prośbę: podajcie w komentarzach swoje propozycje "must read" wraz z krótkim komentarzem dlaczego warto.</b>Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com6tag:blogger.com,1999:blog-5197374494377847819.post-74226868085598033312015-07-01T22:50:00.000+02:002015-07-02T08:09:52.275+02:00Konkurs na Confiturze<a href="http://bottega.com.pl/" target="_blank">Bottega</a> jako partner tegorocznej <a href="http://2015.confitura.pl/#/">Confitury</a> zaprasza uczestników konferencji do konkursu (a właściwie dwóch).<br />
<br />
<h2>
Konkurs 1: Rozśmiesz nas</h2>
1. Wchodzisz na stronę, której adres znajdziesz w sobotę w naszej ulotce znajdującej w materiałach dla uczestników. Znajdziesz tam aplikację (cloud, rest, node.js:), która pozwala na <b>tworzenie memów</b>. Konkurs przeznaczony jest tylko dla uczestników konferencji, dlatego musisz podać maila (nie zbieramy maili, organizatorzy przekazali nam hashe waszych maili)<br />
<br />
2. Dokończ mema:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4qANaE5tkCZXWRbjM6_ku4Vj_K7cRaj8QmQP5U-yG6SGzOeFCD2frsB7nGMyxN9GLvJq8uW8QHzRMEoCMzVQ1-LqmZ6QuNx-eij3dqPJrmmOulUwLM3996bpIiJfbJGATvE3VH_KUucw/s1600/mem.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4qANaE5tkCZXWRbjM6_ku4Vj_K7cRaj8QmQP5U-yG6SGzOeFCD2frsB7nGMyxN9GLvJq8uW8QHzRMEoCMzVQ1-LqmZ6QuNx-eij3dqPJrmmOulUwLM3996bpIiJfbJGATvE3VH_KUucw/s320/mem.jpg" width="260" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
przykład:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG9w4gPhR2P1RKZELKcZPAn1u09Fq7DYWX-TupeK6jOSGm35inSUTgU842u0vvu56RPo-bvYJgrqk-Ox-FfkFpJsZa9620LE89Puxw4sTL3awoiyzbGN7E34ziN70RrlO2qAK9lgibGqw/s1600/mem2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG9w4gPhR2P1RKZELKcZPAn1u09Fq7DYWX-TupeK6jOSGm35inSUTgU842u0vvu56RPo-bvYJgrqk-Ox-FfkFpJsZa9620LE89Puxw4sTL3awoiyzbGN7E34ziN70RrlO2qAK9lgibGqw/s320/mem2.jpg" width="260" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<span id="goog_904945551"></span><span id="goog_904945552"></span>3. Autor mema, który zebrał najwięcej głosów wygrywa drona Syma X8C (z kamerką HD:)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.syma-rc.com/image/data/X8C/6-A.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.syma-rc.com/image/data/X8C/6-A.jpg" height="320" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h2 style="clear: both; text-align: left;">
Konkurs 2: Głosuj na memy</h2>
<div>
1. Wchodzisz na stronę, której adres znajdziesz w sobotę w naszej ulotce znajdującej w materiałach dla uczestników. Znajdziesz tam aplikację (cloud, rest, node.js:), która pozwala na <b>głosowanie na stworzone w Konkursie 1 memy</b>. Konkurs przeznaczony jest tylko dla uczestników konferencji, dlatego musisz podać maila (nie zbieramy maili, organizatorzy przekazali nam hashe waszych maili)</div>
<div>
<br /></div>
<div>
2. Głosujesz na memy, które są śmieszne/nie są czerstwe (wyłaniając tym samym zwycięzcę Konkursu 1)</div>
<div>
<br /></div>
<div>
3. Wśród głosujących rozlosujemy 3 egzemplarze książki:</div>
<div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.publio.pl/files/product/card/6b/73/21/96800-twoj-mozg-w-dzialaniu-david-rock-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.publio.pl/files/product/card/6b/73/21/96800-twoj-mozg-w-dzialaniu-david-rock-1.jpg" /></a></div>
<br />
<br />Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com2tag:blogger.com,1999:blog-5197374494377847819.post-81653067775727841922015-05-08T17:34:00.001+02:002015-05-10T21:35:16.596+02:00Video: Jesteś ekspertem i co dalej?Prezentacja "Jesteś ekspertem i co dalej? Ścisły przewodnik po materii miękkiej dla ekspertów IT - część II", którą pokazywałem na JUGach w Poznaniu, Wrocławiu, Lublinie i Łodzi oraz na 4Developers doczekała się porządnych slajdów i video (na warszawskim JUG).<br />
<br />
Zajawka: <a href="https://www.facebook.com/BottegaITSolutions/videos/vb.213242472061197/964224023629701/?type=2&theater">https://www.facebook.com/BottegaITSolutions/videos/vb.213242472061197/964224023629701/?type=2&theater</a><br />
<br />
<br />
Prezentacja 2h 20 min:)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/mqXHTbpKZ88/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/mqXHTbpKZ88?feature=player_embedded" width="320"></iframe></div>
<br />
Prezi: <a href="https://prezi.com/dllleqt07g33/jestes-ekspertem-i-co-dalej">https://prezi.com/dllleqt07g33/jestes-ekspertem-i-co-dalej</a><br />
<br />
Zainteresowanych dalszym zgłębianiem tematu odsyłam do źródeł: <a href="http://art-of-software.blogspot.com/2015/01/materiay-ze-spotkania.html">http://art-of-software.blogspot.com/2015/01/materiay-ze-spotkania.html </a><br />
<br />
Prezentacja jest ekstraktem z szerszego, zakrojonego na kilka dni programu: <a href="http://bottega.com.pl/szkolenia#Career">Projektowanie kariery z uwzględnieniem architektury Twojego mózgu</a>. Tutaj opis: <a href="http://bottega.com.pl/pdf/program_architektura_kariery.pdf">http://bottega.com.pl/pdf/program_architektura_kariery.pdf</a><br />
<br />
<br />
<br />Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com13tag:blogger.com,1999:blog-5197374494377847819.post-80201176411290698892015-04-08T15:02:00.001+02:002015-04-08T15:55:44.347+02:00Szkolenie DDD do wygrania na drabinie ekspertów.Podczas tegorocznej konferencji <a href="http://4developers.org.pl/pl/">4Developers</a> zorganizowaliśmy własną ścieżkę firmy Bottega: "Drabina ekspertów".<br />
<br />
Plan dostępny tutaj <a href="http://4developers.org.pl/pl/agenda/agenda/">http://4developers.org.pl/pl/agenda/agenda/</a><br />
Strona nie jest do końca restful;) więc wklejam plan:<br />
<br />
<ul>
<li><span class="point-title" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; font-weight: bold; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/lecture/kiedy-jak-i-po-co-migrowac-na-nosql/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #428bca; text-decoration: none;">Kiedy, jak i po co migrować na NoSQL </a></span><span class="point-speaker" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/speakers/gil-mariusz/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #9fafbd; text-decoration: none;">Mariusz Gil</a> </span></li>
<li><span class="point-title" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; font-weight: bold; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/lecture/cqrs-dla-kazdego/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #428bca; text-decoration: none;">CQRS dla każdego</a> </span><span class="point-speaker" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/speakers/aniserowicz-maciej/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #9fafbd; text-decoration: none;">Maciej Aniserowicz</a> </span></li>
<li><span class="point-title" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; font-weight: bold; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/lecture/do-you-think-youre-doing-microservice-architecture-what-about-infrastructure-and-provisioning/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #428bca; text-decoration: none;">Do you think you're doing microservice architecture? What about infrastructure and provisioning?</a> </span><span class="point-speaker" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/speakers/grzejszczak-marcin/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #9fafbd; text-decoration: none;">Marcin Grzejszczak</a>, </span><span class="point-speaker" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/speakers/szczesny-lukasz/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #9fafbd; text-decoration: none;">Łukasz Szczęsny</a> </span></li>
<li><span class="point-title" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; font-weight: bold; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/lecture/skalowanie-i-integracja-systemow-w-asynchronicznym-stylu-wzorce-i-style-architektoniczne/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #428bca; text-decoration: none;">Skalowanie i integracja systemów w asynchronicznym stylu - wzorce i style architektoniczne</a> </span><span class="point-speaker" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/speakers/szylhabel-szymon/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #9fafbd; text-decoration: none;">Szymon Szylhabel</a> </span></li>
<li><span class="point-title" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; font-weight: bold; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/lecture/tbd/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #428bca; text-decoration: none;">Rest w praktyce - tej dobrej i tej złej</a> </span><span class="point-speaker" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/speakers/kubrynski-jakub/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #9fafbd; text-decoration: none;">Jakub Kubryński</a> </span></li>
<li><span class="point-title" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; font-weight: bold; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/lecture/przejrzysty-i-testowalny-kod-na-androidzie-sprobujmy-z-clean-architecture/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #428bca; text-decoration: none;">Przejrzysty i testowalny kod na Androidzie? Spróbujmy z Clean Architecture</a> </span><span class="point-speaker" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/speakers/charmas-michal/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #9fafbd; outline: 0px;">Michał Charmas</a> </span></li>
<li><span class="point-title" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; font-weight: bold; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/lecture/patterns-and-tools-make-tests-fun-again/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #428bca; text-decoration: none;">Patterns and tools that make tests fun again:)</a> </span><span class="point-speaker" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/speakers/szydlo-lukasz/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #9fafbd; text-decoration: none;">Łukasz Szydło</a> </span></li>
<li><span class="point-title" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; font-weight: bold; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/lecture/splitting-monolith-digital-media-makeover-tale-micro-services-continuous-delivery-and-organisational-change/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #428bca; text-decoration: none;">Splitting the monolith. Digital media makeover. A tale of micro services, continuous delivery and organisational change</a> </span><span class="point-speaker" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/speakers/kwasniewski-mateusz/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #9fafbd; text-decoration: none;">Mateusz Kwaśniewski</a> </span></li>
<li><span class="point-title" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; font-weight: bold; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/lecture/drogi-rozwoju-eksperta/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #428bca; text-decoration: none;">Drogi rozwoju eksperta</a> </span><span class="point-speaker" style="box-sizing: border-box; color: #aaaaaa; font-family: 'PT Sans', sans-serif; font-size: 14px; line-height: 20px;"><a href="http://4developers.org.pl/pl/agenda/speakers/krol-artur/" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; box-sizing: border-box; color: #9fafbd; text-decoration: none;">Artur Król</a> </span></li>
</ul>
<br />
<br />
Jak widać pomysł na ścieżkę jest prosty: nasi trenerzy omawiają kolejne "szczeble" stosu architektonicznego. Elementami drabiny są zarówno technologie i metodyki jak również style architektoniczne. Całość w formie spójnej narracji, gdzie koniec prezentacji jednego eksperta jest punktem wyjścia do prezentacji kolejnego.<br />
<br />
Moje pierwsze (i ostanie, obiecuję :) ) video:<br />
<a href="https://www.facebook.com/video.php?v=942724792446291&set=vr.947246991994071&type=2&theater">https://www.facebook.com/video.php?v=942724792446291&set=vr.947246991994071&type=2&theater</a><br />
<br />
A tutaj Mateusz pokazuje jak powinno wyglądać video promujące ścieżkę<br />
<a href="https://www.facebook.com/video.php?v=947246991994071&set=vb.213242472061197&type=2&theater">https://www.facebook.com/video.php?v=947246991994071&set=vb.213242472061197&type=2&theater</a><br />
<br />
<br />
<b>Konkurs!</b><br />
Uczestnicy naszej ścieżki będą mogli wygrać udział w szkoleniu otwartym z zakresu <a href="http://bottega.com.pl/szkolenia-otwarte">Domain Driven Design</a>, które odbędzie się w dniach 5-7 maja w Lublinie.<br />
<br />
Podczas każdej z prezentacji na naszej ścieżce padnie pytanie. Wśród osób, które odpowiedzą na wszystkie pytania wylosujemy nagrodę.Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com4tag:blogger.com,1999:blog-5197374494377847819.post-15783844072356433092015-03-31T17:03:00.002+02:002015-03-31T17:03:46.656+02:00List do Scrum Mastera<a href="https://www.linkedin.com/pulse/letter-scrum-masters-andy-brandt">https://www.linkedin.com/pulse/letter-scrum-masters-andy-brandt</a>Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com0tag:blogger.com,1999:blog-5197374494377847819.post-48095344822722807132015-02-27T00:45:00.000+01:002015-02-27T00:45:51.925+01:00Połączenie BDD z DDDCommunity Behavior Driven Development zaczyna się reflektować, że metodyka daje bardzo płytkie rozumienie domeny.<br />
W artykule <a href="http://www.infoq.com/news/2015/02/bdd-ddd">http://www.infoq.com/news/2015/02/bdd-ddd</a> znajdziecie link do prezentacji <a href="https://skillsmatter.com/skillscasts/6240-taking-back-bdd">https://skillsmatter.com/skillscasts/6240-taking-back-bdd</a> która pokazuje jak i dlaczego integrować BDD i Domain Driven Design.<br />
<br />
O ile zgadzam się co do idei, to prezentowana implementacja wydaje się być po prostu szkodliwa. Historyjka akceptacyjna operuje na obiektach domenowych, zamiast na wyższej warstwie, czyli serwisach aplikacyjnych lub CommandHandlerach.<br />
<br />
Jaka jest konsekwencja? <b>Historyjka powiela logikę wyższej warstwy</b>. Nie tędy droga... Pomylono po prostu Domain Story z User Story i stąd taki kuriozalny efekt. Może gdyby prelegent napisał nieco kodu, to by uświadomił sobie błąd w rozumowaniu;)<br />
<br />
O powierzchowności User Story mówiłem tutaj: <a href="https://www.youtube.com/watch?v=z0y3IPJDyp0">https://www.youtube.com/watch?v=z0y3IPJDyp0</a><br />
<br />
<br />
//======================<br />
Podobne problemy napotkamy stosują Spec by Example. Nie chcę być źle zrozumiany, nie twierdzę, że BDD czy SBE są błędne, są po prostu niewystarczające dla nietrywialnych domen.<br />
<br />
Inna obserwacja: czy ludzie biznesu na pewno potrafią dobrze operować przykładami? Ile przykładów można zmieścić w pamięci podręcznej mózgu? Może przykłady są dobre w początkowej fazie poznawania domeny a później wygodniej od nich abstrahować? Odpowiedź brzmi oczywiście: "to zależy". Ale zależy od czego? Od nawyków kognitywnych konkretnego człowieka. Niektórzy preferują abstrakt a inni konkret, jeszcze inni najpierw jedno, później drugie.<br />
<br />
Więcej na ten temat można zacząć eksplorować np tutaj: <a href="http://en.wikipedia.org/wiki/Learning_styles#David_Kolb.27s_model">http://en.wikipedia.org/wiki/Learning_styles#David_Kolb.27s_model</a><br />
<br />
<a href="http://domainlanguage.com/ddd/whirlpool/">Modeling Whirlpool</a> z DDD idealnie integruje wszystkie style uczenia (poznawanie domeny jest uczeniem się jej) z Cyklów Kolba.Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com4tag:blogger.com,1999:blog-5197374494377847819.post-25299780968412624782015-02-16T16:20:00.005+01:002015-02-16T16:20:59.596+01:00Przykład problemów z ubiquitous languagePiękny przykład na problemy w komunikacji świata IT, medycyny i inżynierii przesyłu cieczy. Moim zdaniem prezentacja jest ciekawa sama w sobie merytorycznie, ale pokazuje też, że inne branże mają problemy tej samej klasy:)<br />
<br />
Warto obejrzeć aby mieć świadomość jakie jeszcze siły działają na projekt oprócz wycieków pamięci;)<br />
<br />
<a href="http://www.ted.com/talks/tal_golesworthy_how_i_repaired_my_own_heart">http://www.ted.com/talks/tal_golesworthy_how_i_repaired_my_own_heart</a>Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com2tag:blogger.com,1999:blog-5197374494377847819.post-75011721993896356142015-01-28T14:07:00.000+01:002015-01-28T14:09:24.108+01:00Materiały ze spotkaniaW poniedziałek w Poznaniu wiele osób pytało o polecenie materiałów, więc podsumowuję (przyda się również na wtorek we Wrocławiu) listę książek i prezentacji od których warto zacząć:<br />
<br />
<a href="http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050">http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050</a><br />
Podstawy, ale na początek wystarczy aby zorientować się w kierunkach jakie mogą Was interesować. Pewnie wiele osób już czytało ale zamieszczam dla porządku.<br />
<br />
<br />
<b><a href="http://www.amazon.com/Your-Brain-Work-Strategies-Distraction/dp/0061771295">http://www.amazon.com/Your-Brain-Work-Strategies-Distraction/dp/0061771295</a></b><br />
<b>Polecam też polskie tłumaczenie - jest ok, ale nie będziesz musiał/musiała siedzieć ze słownikiem, gdy tekst zawiera sporo słów z zakres neurobiologi - domeny, którą nie każdy musi znać.</b><br />
<b>Generalnie będzie to najlepiej wydane 30zł w życiu - książka zmienia życie:)</b><br />
Prezentacja autora <a href="https://www.youtube.com/watch?v=XeJSXfXep4M">https://www.youtube.com/watch?v=XeJSXfXep4M</a><br />
<br />
<a href="http://www.amazon.com/Neuroscience-Personality-Brain-Insights-People/dp/0979868475">http://www.amazon.com/Neuroscience-Personality-Brain-Insights-People/dp/0979868475</a><br />
Flow w kontekście Meyers-Briggs<br />
Prezentacja autora <a href="https://www.youtube.com/watch?v=MGfhQTbcqmA">https://www.youtube.com/watch?v=MGfhQTbcqmA</a><br />
<br />
<a href="http://www.amazon.com/Master-His-Emissary-Divided-Western/dp/0300188374">http://www.amazon.com/Master-His-Emissary-Divided-Western/dp/0300188374</a><br />
Podsumowanie ostatnich 10 lat badań nad mózgiem w popularnonaukowym stylu.<br />
<br />
<a href="http://www.ted.com/talks/martin_seligman_on_the_state_of_psychology">http://www.ted.com/talks/martin_seligman_on_the_state_of_psychology</a><br />
3 drogi do szczęścia wg psychologii pozytywnej<br />
<br />
<a href="http://www.ted.com/talks/mihaly_csikszentmihalyi_on_flow">http://www.ted.com/talks/mihaly_csikszentmihalyi_on_flow</a><br />
<div>
Flow</div>
<div>
<br /></div>
<div>
<a href="https://www.youtube.com/watch?v=Gr4Od7kqDT8">https://www.youtube.com/watch?v=Gr4Od7kqDT8</a></div>
<div>
"Sprzętowe" podstawy mindfulness.</div>
<div>
<br /></div>
<div>
//=======================</div>
<div>
<br /></div>
<div>
Wiele osób pytało również o udostępnienie prezentacji (mindmapy). Jest to część <a href="http://bottega.com.pl/szkolenia#Career">komercyjnego projektu</a>, współautorami są psycholodzy/coachowie więc niestety póki co nie chcemy jej udostępniać. Natomiast w lutym planuję zrobić sobie wakacje i stworzyć wówczas prezi ze spójną historią, które będzie publiczne.</div>
<br />Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com1tag:blogger.com,1999:blog-5197374494377847819.post-50144614864196202122015-01-26T00:07:00.001+01:002015-01-26T00:07:32.180+01:00Poznań i Wrocław - spotkania na JUGDziś w Poznaniu <a href="http://www.jug.poznan.pl/2015/01/spotkanie-poznan-jug-slawek-sobotka-jestes-ekspertem-i-co-dalej-26-01-2015/">http://www.jug.poznan.pl/2015/01/spotkanie-poznan-jug-slawek-sobotka-jestes-ekspertem-i-co-dalej-26-01-2015/</a><br />
i za tydzień 3. lutego we Wrocławiu (niebawem szczegóły <a href="http://www.meetup.com/WroclawJUG/">http://www.meetup.com/WroclawJUG/</a>)<br />
będę prowadził prezentację "Jesteś ekspertem i co dalej? Zaprojektuj swoją karierę biorąc pod uwagę architekturę mózgu"
<br />
Zainteresowanych zapraszam - nie trzeba znać Javy:)<br />
<br />
Abstrakt:<br />
<div style="color: #555555; font-family: Arial, sans-serif; font-size: 1.05em; font-style: italic; line-height: 16.7999992370605px; margin-bottom: 1em; margin-top: 1em; padding: 0px; text-align: justify;">
Prawdopodobnie to wrodzona dociekliwość oraz zamiłowanie poszukiwania<br style="margin: 0px; padding: 0px;" />modeli, struktur i wzorców spowodowały, że zajmujesz się<br style="margin: 0px; padding: 0px;" />projektowaniem i programowaniem systemów.</div>
<div style="color: #555555; font-family: Arial, sans-serif; font-size: 1.05em; font-style: italic; line-height: 16.7999992370605px; margin-bottom: 1em; margin-top: 1em; padding: 0px; text-align: justify;">
Chciałbym zaprosić Cię do podróży po kolejnym<br style="margin: 0px; padding: 0px;" />systemie, który jest znacznie bardziej złożony niż te, z którymi<br style="margin: 0px; padding: 0px;" />spotykasz się na co dzień – Twój mózg.</div>
<div style="color: #555555; font-family: Arial, sans-serif; font-size: 1.05em; font-style: italic; line-height: 16.7999992370605px; margin-bottom: 1em; margin-top: 1em; padding: 0px; text-align: justify;">
Dzięki zdobytej wiedzy będziesz mógł/mogła świadomie zastanowić się<br style="margin: 0px; padding: 0px;" />nad ścieżką kariery w zaproponowanych modelach: lider techniczny,<br style="margin: 0px; padding: 0px;" />ekspert, inspirator, mentor.</div>
<div style="color: #555555; font-family: Arial, sans-serif; font-size: 1.05em; font-style: italic; line-height: 16.7999992370605px; margin-bottom: 1em; margin-top: 1em; padding: 0px; text-align: justify;">
Wg najnowszej wiedzy z zakresu kognitywistki i nero-psychologii pod<br style="margin: 0px; padding: 0px;" />Twoją czaszką znajduje się:<br style="margin: 0px; padding: 0px;" />• ok 40 procesorów specjalizujących się w specyficznych zadaniach,</div>
<div style="color: #555555; font-family: Arial, sans-serif; font-size: 1.05em; font-style: italic; line-height: 16.7999992370605px; margin-bottom: 1em; margin-top: 1em; padding: 0px; text-align: justify;">
• procesory te łączą się ze sobą w agencje, agencje natomiast<br style="margin: 0px; padding: 0px;" />rywalizują między sobą o zasoby takie jak gliken (węglowodan) a czasem<br style="margin: 0px; padding: 0px;" />nawet się wzajemnie sabotują</div>
<div style="color: #555555; font-family: Arial, sans-serif; font-size: 1.05em; font-style: italic; line-height: 16.7999992370605px; margin-bottom: 1em; margin-top: 1em; padding: 0px; text-align: justify;">
• kilka szyn danych ogólnego przeznaczenia (blokowanych przez<br style="margin: 0px; padding: 0px;" />wspomniane wcześniej agencje)</div>
<div style="color: #555555; font-family: Arial, sans-serif; font-size: 1.05em; font-style: italic; line-height: 16.7999992370605px; margin-bottom: 1em; margin-top: 1em; padding: 0px; text-align: justify;">
• kilka magazynów pamięci różnego przeznaczenia (chwilowa, robocza,<br style="margin: 0px; padding: 0px;" />długotrwała, emocjonalna,…)</div>
<div style="color: #555555; font-family: Arial, sans-serif; font-size: 1.05em; font-style: italic; line-height: 16.7999992370605px; margin-bottom: 1em; margin-top: 1em; padding: 0px; text-align: justify;">
• całość sterowana systemem „zdarzeń”, których nośnikiem są hormony i<br style="margin: 0px; padding: 0px;" />neuroprzekaźniki</div>
<div style="color: #555555; font-family: Arial, sans-serif; font-size: 1.05em; font-style: italic; line-height: 16.7999992370605px; margin-bottom: 1em; margin-top: 1em; padding: 0px; text-align: justify;">
• część procesorów jest wyrafinowana i precyzyjna a inna część jest na<br style="margin: 0px; padding: 0px;" />poziomie gada – niestety gdy cały system jest zalany np. falą hormonów<br style="margin: 0px; padding: 0px;" />stresu, to sterowania przejmuje „jaszczurka”… po kilku godzinach<br style="margin: 0px; padding: 0px;" />reflektujesz się i żałujesz, że nie zachowałeś/zachowałaś się inaczej…<br style="margin: 0px; padding: 0px;" />w „trybie jaszczurki” było to jednak niemożliwe</div>
<div style="color: #555555; font-family: Arial, sans-serif; font-size: 1.05em; font-style: italic; line-height: 16.7999992370605px; margin-bottom: 1em; margin-top: 1em; padding: 0px; text-align: justify;">
• wiele innych interesujących modeli…</div>
Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com2tag:blogger.com,1999:blog-5197374494377847819.post-55305428411605944322015-01-13T12:12:00.002+01:002015-01-13T12:12:10.113+01:00What's common between Communism and Object Oriented Programming?<span style="background-color: white; color: #292f33; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 28px; letter-spacing: 0.280000001192093px; line-height: 34px; white-space: pre-wrap;">"Class struggle start from Factories"</span>Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com1tag:blogger.com,1999:blog-5197374494377847819.post-78060410583556159212015-01-07T00:05:00.000+01:002015-01-07T14:03:29.043+01:00HR - jak robi to Google<h2>
Problem</h2>
<div>
Sytuacja na rynku pracy jest taka sama zarówno w dużym, średnim jak i małym mieście, czyli:</div>
<div>
<ul>
<li>nie dość, że ciężko znaleźć nowych ludzi</li>
<li>to tracimy już posiadane talenty (skill można zbudować, talentu nie)</li>
<li>na uczelniach mamy dziwną sytuację: kilka procent "geniuszy" (tacy są zawsze) oraz "mało ambitna" reszta, zniknął główny składnik, czyli "średni", którzy w odpowiednich warunkach w pracy staną się "dobrzy"</li>
<li>musimy zatem zatrudniać każdego, kto podczas rekrutacji nie nabawił się kontuzji w starciu z klawiaturą</li>
<li>do tego bardzo niewielu pracowników rozwija się we własnym zakresie "w domu"</li>
<li>brakuje osobowości Lidera Technicznego (nie managera), który pokazały innym kierunek a oni w <b>naturalny sposób podążyliby za nim</b></li>
<li><b>wydaje się</b>, że nie można mieć osobowości lidera i eksperta IT w jednej osobie</li>
<li>pracownicy mimo dostępu do "opcji rozwoju" nie korzystają z nich</li>
<li>karnet na "basen" jakoś nie działa</li>
<li>nie za bardzo wiadomo o co chodzi tym programistom gdy marudzą coś o "wielkiej kupie błota" - przecież zewnętrzna firma sprząta codziennie</li>
<li>ok, już wiemy, ale co zrobić, skoro specjalizujemy się w remontach i utrzymaniu...</li>
<li>...</li>
</ul>
<h2>
</h2>
<h2>
Google - wersja basic</h2>
</div>
<div>
W ciągu całej "przerwy świątecznej" oglądałem namiętnie prezentacje odbywające się w ramach Google Tech Talk. Konwencja jest taka, że pracownicy firmy wybierają sobie ciekawe osoby grasujące "na wolności" (naukowcy, dietetycy, trenerzy, mnisi,...) aby przeprowadzili wewnętrzną prezentację/warsztat w zakresie bardzo szeroko rozumianego rozwoju osobistego.</div>
<div>
<br /></div>
<div>
Oto kilka przykładów, które warto obejrzeć choćby z czystej ciekawości:</div>
<div>
<ul>
<li>Wpływ diety na zdolności kognitywne <a href="https://www.youtube.com/watch?v=-PA-buwI3q4">https://www.youtube.com/watch?v=-PA-buwI3q4</a></li>
<li>Postawa ciała w trakcie pracy (metoda Alexandra) <a href="https://www.youtube.com/watch?v=bzwDRW7-vuc">https://www.youtube.com/watch?v=bzwDRW7-vuc</a></li>
<li>Świetna prezentacja o neuronalnych podstawach mindfulness <a href="https://www.youtube.com/watch?v=Gr4Od7kqDT8">https://www.youtube.com/watch?v=Gr4Od7kqDT8 </a> - zwróćcie uwagę jak prowadzący nawiązuje do pytania o interfejs człowiek-maszyna... sugerowane podejście: przez sieć neuronową oplatającą jelita lub serce - jest ona podłączona "na skróty" do samej kory przedczołowej!</li>
<li>Fizyka kwantowa i uczenie maszynowe w jej kontekście <a href="https://www.youtube.com/watch?v=dEaecUuEqfc">https://www.youtube.com/watch?v=dEaecUuEqfc </a> <a href="https://www.youtube.com/watch?v=wkBPp9UovVU">https://www.youtube.com/watch?v=wkBPp9UovVU</a></li>
<li>w sugerowanych video obok podlinkowanych na pewno znajdziesz coś dla siebie...</li>
</ul>
<div>
<h2>
</h2>
<h2>
Google - wersja premium</h2>
<div>
Na osobną uwagę zasługuje to wystąpienie: <a href="https://www.youtube.com/watch?v=MGfhQTbcqmA">https://www.youtube.com/watch?v=MGfhQTbcqmA</a></div>
<div>
Autor książki, która technicznie i kompleksowo podchodzi do problemu "szczęścia" w pracy: <a href="http://www.amazon.com/Neuroscience-Personality-Brain-Insights-People/dp/0979868475">http://www.amazon.com/Neuroscience-Personality-Brain-Insights-People/dp/0979868475</a></div>
<div>
<br /></div>
<div>
Dzięki EEG (warsztaty dla pracowników Google po prezentacji) jest w stanie "zdiagnozować" jaki rodzaj aktywności wprawia danego programistę/programistkę we flow - stan całkowitego zaangażowania w zadanie.</div>
<div>
<br /></div>
<div>
Mam pewną hipotezę: najlepsi programiści z jakimi rozmawiam zwykle odpowiadają tak samo na pytanie "dlaczego zająłeś się programowaniem?" - "dlatego, że w pewnym momencie (szkoła/studia) dawało mi to wejście we flow". Niestety w komercyjnym programowaniu prędzej czy później trafiamy na projekt, gdzie flow nie pojawia się przez kolejne miesiące... Mózg uczy się nowej zasady: programowanie nie daje już dopaminy - i mamy tak zwane "wypalenie". Wracaj zatem do stanu flow raz na kilka tygodni a "wypalenie" nigdy nie wystąpi. Heh, pytanie tylko jak? Dwa linki wyżej:P</div>
<h2>
</h2>
<h2>
Google - wersja max</h2>
</div>
</div>
<div>
Inny ciekawy przykład: zespół, który opracował <a href="https://cloud.google.com/prediction/">Prediction API</a> (kilka algorytmów maszynowego uczenia ukrytych pod arcy prostym REST API) <a href="https://www.youtube.com/watch?v=FJDP_0Mrb-w">https://www.youtube.com/watch?v=FJDP_0Mrb-w</a></div>
<div>
<br /></div>
<div>
Zespół może pokazać się światu, pokazać swoje dzieło osobiście (zwróćcie uwagę na błysk w oku gdy mówią o rynku handlu modelami predykcji), pokazać się obok producenta samochodów, który już zapowiada korzystanie z ich dzieła. Czy jakaś podwyżka lub "karnet na siłkę" są w stanie przebić tę chwilę?<br />
<h2>
</h2>
<h2>
A co jeżeli nie pracuję w Google?</h2>
</div>
<div>
Jeżeli powyższe jest tym czego szukasz dla siebie/swoich ludzi to zastanawiasz się pewnie czy w Polsce dałoby się zorganizować coś podobnego...</div>
<div>
<br /></div>
<div>
Zgromadziłem grupę ciekawych ludzi z różnych ścieżek rozwojowych ale w pewnym sensie podobnych do siebie i mam pomysł na na razie eksperymentalną wersję projektu. Jeżeli chcesz spróbować w swojej organizacji/zespole to zapraszam do kontaktu prv: slawomir.sobotka (w domenie) bottega.com.pl</div>
Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com9tag:blogger.com,1999:blog-5197374494377847819.post-68576081321471333142014-12-19T19:56:00.000+01:002014-12-20T11:42:14.393+01:00Video z prezentacji na JDD 2014: JPA i DDD<h2>
Mapowanie relacyjnono-obiektowe prawdziwych obiektów.</h2>
Slajdy: <a href="http://prezi.com/fsvd1xnvecff/mapowanie-relacyjno-obiektowe-prawdziwych-obiektow/" style="background-color: white; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.4799995422363px; text-decoration: none;" target="_blank">http://prezi.com/fsvd1xnvecff/mapowanie-relacyjno-obiektowe-prawdziwych-obiektow/</a><br />
<br />
Główne tezy:<br />
<ul>
<li>nie używaj lazy loadingu</li>
<li>uważaj na typ kolekcji</li>
<li>rozważ 3 sposoby optimistic locking</li>
<li>wzorzec Repository ma więcej sensu się wydaje</li>
<li>CQRS na ratunek</li>
</ul>
<div>
<br /></div>
<div>
Do poczytania na spokojnie <a href="http://bottega.com.pl/pdf/materialy/receptury/orm.pdf">http://bottega.com.pl/pdf/materialy/receptury/orm.pdf</a></div>
<div>
...a tu więcej do poczytania: <a href="http://bottega.com.pl/artykuly-i-prezentacje">http://bottega.com.pl/artykuly-i-prezentacje</a></div>
<br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/uj25PbkHb94" width="560"></iframe><br />
<br />
<br />
<h2>
Jak wciągnąć eksperta domenowego w wir modelowania</h2>
<div>
Slajdy: <a href="http://prezi.com/ihs7d0t_0mci/jak-wciagnac-eksperta-domenowego-w-wir-modelowania-wizualne-i-lingwistyczne-techniki-ddd/" style="background-color: white; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.4799995422363px; text-decoration: none;" target="_blank">http://prezi.com/ihs7d0t_0mci/jak-wciagnac-eksperta-domenowego-w-wir-modelowania-wizualne-i-lingwistyczne-techniki-ddd/</a></div>
<div>
<br /></div>
<div>
Główne tezy:</div>
<div>
<ul>
<li>Model jest narzędziem komunikacji</li>
<li>Przydawki są ważne:)</li>
<li>Można myśleć funkcyjnie i programować obiektowo</li>
<li>Proces jest pochodną domeny</li>
<li>User story jest słabe - potrzebujesz domain story</li>
<li>Refaktoryzacja bez zrozumienia domeny jest zgubna</li>
</ul>
</div>
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/z0y3IPJDyp0" width="560"></iframe><br />
<br />
<div style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.4799995422363px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.4799995422363px;">
<br /></div>
Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com0tag:blogger.com,1999:blog-5197374494377847819.post-23955498194377007642014-12-09T12:41:00.001+01:002014-12-09T12:41:17.686+01:00Nie koduj, pisz prozę - techniki lingwistyczne wychodzące poza Clean Code!<div class="separator" style="clear: both; text-align: left;">
Confitura opublikowała moją prezentację z tegorocznej edycji.</div>
<div class="separator" style="clear: both; text-align: left;">
(dzięki za fajny montaż slajdów)</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Gdyby ktoś chciał śledzić animację slajdów, to można tutaj: <a href="https://prezi.com/ktgmacy7hcfa/nie-koduj-pisz-proze/">https://prezi.com/ktgmacy7hcfa/nie-koduj-pisz-proze/</a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/CKONKZLmMwk?feature=player_embedded' frameborder='0'></iframe></div>
<br />Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com1tag:blogger.com,1999:blog-5197374494377847819.post-71964814879689115672014-12-01T17:52:00.002+01:002014-12-01T17:52:40.254+01:00Devtalk i konkursW drodze do pracy możesz posłuchać <a href="http://devtalk.pl/" target="_blank">Devtalków</a> prowadzonych przez Macieja Aniserowicza.<br />
<div>
W tym ostatniej publikacji - rozmowy na temat DDD: <a href="http://devtalk.pl/2014/12/04-o-domain-driven-design-ze-slawomirem-sobotka/" target="_blank">04 – O DOMAIN DRIVEN DESIGN ZE SŁAWOMIREM SOBÓTKĄ</a></div>
<div>
<br /></div>
<div>
Przy okazji rozpisaliśmy mały konkurs (szczegóły w linku) - do wygrania jest książka: <a href="http://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577" target="_blank">Implementing DDD</a>, która czeka już u mnie w domu na zwycięzcę.<br />
<br />
Książkę polecam każdemu - nie tylko zainteresowanym tematyką DDD. Można znaleźć w niej syntezę najnowszych trendów architektonicznych i technik programistycznych. Autora poznałem osobiście - zdradził, że książkę oddał do "wygładzenia" autorom serii Head First (którą pewnie wszyscy znają).</div>
Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com0tag:blogger.com,1999:blog-5197374494377847819.post-23239665933820703562014-11-28T17:22:00.000+01:002014-11-28T17:22:05.561+01:00Wywiad na JDD<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/dds4GOYpn0s?feature=player_embedded' frameborder='0'></iframe></div>
Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com0tag:blogger.com,1999:blog-5197374494377847819.post-85240395624029803642014-10-15T20:54:00.001+02:002014-10-15T20:58:04.793+02:00Relacja z JDDDo tej pory nie pisałem relacji z konferencji, na których bywam, bo myślałem, że relacji jest tak wiele, że kolejna nic nie wniesie.<br />
<br />
Okazało się, że tak było kiedyś...
Tradycja relacjonowania zanika w narodzie, zatem pomyślałem, że ją podtrzymam - szczególnie, że tym razem każda prezentacja jaką wybrałem (niestety tylko pierwszego dnia) była wartościowa merytorycznie i świetnie poprowadzona.<br />
<br />
Zachęcam do poświęcenia kilku godzin gdy tylko video z konferencji pojawi się na YT.<br />
A póki co mam dla Was slajdy, które zebrałem do prelegentów.<br />
<br />
<br />
<a href="http://14.jdd.org.pl/agenda/lecture/10-things-id-tell-my-younger-self-about-java-web-development/" target="_blank"><span style="font-size: large;"><b>10 THINGS I’D TELL MY YOUNGER SELF ABOUT (JAVA) WEB DEVELOPMENT</b> </span></a><br />
<br />
Dykcja, fason, styl...<br />
Historia opowiedziana po mistrzowsku od strony retorycznej: CV Mateusza sprzed 10 lat, wspomnienia technicznych decyzji jakich dokonywał (jak się okazuje) nieświadomie. Piękny przekaz dla młodszych programistów - <b>macie szansę uniknąć błędów jaki my popełniliśmy</b>.<br />
<br />
A merytorycznie dużo, dużo mięcha:<br />
<ul>
<li>czym kierować się wybierając framaework webowy i silnik szablonów - nie odcinaj się od HTTP - gdy będziesz chciał/chciała zrobić coś poważnego poczuje ból braku dostępu do "metalu"</li>
<li>czy Twój framework webowy i silnik szablonów da się testować wprost?</li>
<li>kiedy node.js (ogólnie event looop) ma sens a kiedy nie - masz do czynienia z High IO czy High CPU?</li>
<li>kontenery DI - odróżniaj składanie obiektów od zasięgów, to osobne klasy problemów. A tak poza tym od zasięgów są nawiasy w Javie:P</li>
<li>loguj na std.out - system operacyjny najlepiej zajmie się IO</li>
<li>adnotacje są jak łupież - w sumie Cię nie zabiją, ale brzydko to wygląda (mistrz!)</li>
<li>do tego masa przykładów eleganckich, małych bibliotek, które robią jedną rzecz i robią to dobrze - możesz z nich poskładać własny stos</li>
</ul>
<div>
<b>Generalnie masa doświadczenia wyniesionego wprost od konsultantów ThoughtWorks.</b></div>
<div>
Człowiek, który programuje z Mateuszem, to musi być szczęśliwy człowiek</div>
<br />
<br />
W slajdach znajdziecie masę wartościowych informacji: <a href="http://www.slideshare.net/kwasniew/10-things-id-tell-my-younger-self-about-java-web-development">http://www.slideshare.net/kwasniew/10-things-id-tell-my-younger-self-about-java-web-development</a><br />
<br />
<br />
<div style="box-sizing: border-box; font-family: Dosis, Helvetica, Arial, sans-serif; letter-spacing: 1px; line-height: 1.1; margin: 0px 0px 35px; text-transform: uppercase;">
<span style="background-color: white;"><br /></span>
<span style="background-color: white; font-size: large;"><b><a href="http://14.jdd.org.pl/agenda/lecture/wykorzystanie-podejscia-domain-driven-design-w-sys/" target="_blank">WYKORZYSTANIE PODEJŚCIA DOMAIN-DRIVEN DESIGN W SYSTEMACH LEGACY</a></b></span></div>
"Jak wprowadzić DDD w naszym smutnym projekcie" - często słyszę takie pytanie na szkoleniach... Jest to często problem na poziomie strategii organizacji - w jakim kierunki chce podążać i jak chce kreować swój proces wytwórczy.<br />
<br />
Piotrek w przejrzysty sposób pokazał przecięcie 2 aspektów:<br />
<br />
<ul>
<li>wspomnianej strategii organizacji</li>
<li>technicznych rozwiązań opartych o architekturę <a href="http://alistair.cockburn.us/Hexagonal+architecture" target="_blank">Ports&Adapters</a></li>
</ul>
jako 4 podejścia architektoniczne.<br />
<br />
Ciekawy był również wstęp do DDD - Piotrek podszedł od strony <a href="http://en.wikipedia.org/wiki/Domain-driven_design#Strategic_domain-driven_design" target="_blank">Strategic Design</a>. Sam zawsze obawiałem się mówić od tej strony o DDD na konferencjach, bo wydaje mi się zbyt abstrakcyjna dla programujących odbiorców, ale w wydaniu Piotrka wyszło fajnie:)<br />
<br />
Prezentacja w Prezi (choć wygląda jak zaimportowana z power pointa;P) <a href="http://prezi.com/y_1raovqqxc4/using-domain-driven-design-in-legacy-systems/">http://prezi.com/y_1raovqqxc4/using-domain-driven-design-in-legacy-systems/</a><br />
<br />
<br />
<br />
<h1 class="speaker-name" style="box-sizing: border-box; font-family: Dosis, Helvetica, Arial, sans-serif; letter-spacing: 1px; line-height: 1.1; margin: 0px 0px 35px; text-transform: uppercase;">
<span style="background-color: white; font-size: large;"><a href="http://14.jdd.org.pl/agenda/lecture/jeeish-development-without-hassle/" target="_blank">JEE'ISH DEVELOPMENT WITHOUT HASSLE</a></span></h1>
Po prostu mistrz sarkazmu:)<br />
Aż zacytuję: "Używamy Spring Boot i jesteśmy lightweight".<br />
<br />
Fajny dystans do narzędzi i podejść... generalnie przesłanie: czy na pewno potrzebujesz armaty na muchę?<br />
<br />
W prezentacji znajdziecie polecane biblioteki, które w lekki sposób zastępują ciężkie działa. Jest tam również link do kodu - kilku projektów, które implementują TODO list przy pomocy różnych zestawów narzędzi.<br />
<br />
Prezentacja: <a href="https://speakerdeck.com/kubamarchwicki/jee-without-hassle-pl" style="background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: 13px;" target="_blank">https://speakerdeck.com/<wbr></wbr>kubamarchwicki/jee-without-<wbr></wbr>hassle-pl</a><br />
<br />
<br />
<br />
<h1 class="speaker-name" style="box-sizing: border-box; font-family: Dosis, Helvetica, Arial, sans-serif; letter-spacing: 1px; line-height: 1.1; margin: 0px 0px 35px; text-transform: uppercase;">
<span style="background-color: white; font-size: large;"><a href="http://14.jdd.org.pl/agenda/lecture/what-you-wont-read-books-about-implementing-rest-services/" target="_blank">WHAT YOU WON'T READ IN BOOKS ABOUT IMPLEMENTING REST SERVICES</a></span></h1>
<div>
<span style="background-color: white;">Jak zrobić świetną prezentację? Proste: wziąć sexi temat, potraktować od nietrywialnej strony i poprowadzić przez Kubę Kubryńskiego:)</span></div>
<div>
<span style="background-color: white;"><br /></span></div>
<div>
<span style="background-color: white;">Jeśli wydaje Ci się, że robisz REST, to zajrzyj do slajdów: <a href="http://www.slideshare.net/KubaKubryski/what-you-40244393" target="_blank">http://www.slideshare.net/KubaKubryski/what-you-40244393</a></span></div>
<div>
<span style="background-color: white;">Znajdziesz tam między innymi:</span></div>
<div>
<ul>
<li>model dojrzałości Twojego api: </li>
<ul>
<li>kupa XMLa, </li>
<li>zasoby, </li>
<li>czasownik http, </li>
<li>negocjacja kontentu</li>
</ul>
<li>odróżnienie zasobu od jego formy (xml, json) i wersji</li>
<li>typowe błędy w wersjonowaniu API</li>
<li>trik na paginację zasobów</li>
<li>pułapki cache</li>
<li>narzędzia dokumentacji i uruchamiania serwisów</li>
</ul>
<div>
<br /></div>
</div>
<div>
//=========================</div>
<div>
A tutaj linki do moich prezentacji:</div>
<div>
<a href="http://prezi.com/fsvd1xnvecff/mapowanie-relacyjno-obiektowe-prawdziwych-obiektow/" target="_blank">http://prezi.com/fsvd1xnvecff/mapowanie-relacyjno-obiektowe-prawdziwych-obiektow/</a></div>
<div>
<a href="http://prezi.com/ihs7d0t_0mci/jak-wciagnac-eksperta-domenowego-w-wir-modelowania-wizualne-i-lingwistyczne-techniki-ddd/" target="_blank">http://prezi.com/ihs7d0t_0mci/jak-wciagnac-eksperta-domenowego-w-wir-modelowania-wizualne-i-lingwistyczne-techniki-ddd/</a></div>
<div>
<br /></div>
Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com3tag:blogger.com,1999:blog-5197374494377847819.post-33408030753214041052014-08-05T20:48:00.003+02:002014-08-05T23:07:10.335+02:00Po Confiturze - dzięki!Chciałbym podziękować wszystkim, którzy głosowali na moją prezentację na Confiturze: <a href="http://2014.confitura.pl/#/news" target="_blank">http://2014.confitura.pl/#/news</a> a szczególnie tym, którzy zostawili notkę z fidbekiem.<br />
Dostałem dziś do nich dostęp i nieco się wzruszyłem.<br />
<br />
Dzięki wszystkim, warto dla Was pracować nad prezentacją.<br />
Za rok przygotuję coś ekstra... powoli rodzi mi się koncepcja, będzie to coś z zupełnie innej beczki, coś czemu poświęcam sporo czasu i energii od 2 lat, znacznie więcej niż Javie i programowaniu kiedykolwiek...<br />
<br />
Podziękowania również dla organizatorów konferencji i twórców Prezi.com:)Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com3tag:blogger.com,1999:blog-5197374494377847819.post-55075652833400487542014-07-22T11:55:00.000+02:002014-07-22T11:55:00.001+02:00Everything You Were Taught About Java Is WrongCiekawa prezentacja byłego pracownika Sun: <a href="http://vimeo.com/99577260">http://vimeo.com/99577260</a><br />
Nieco sklejona na kolanie, ale poprzez bigerpikczer pokazuje np:<br />
<br />
<ul>
<li>skąd wzięła się kuriozalna konwencja JavaBean</li>
<li>koncepcja serwera aplikacyjnego pochodzi z czasów gdy RAM liczono w dziesiątkach MB</li>
<li>starając się zbyt mocno programować współbieżnie programujemy wbrew współbieżności</li>
</ul>
<div>
Ciekawe...</div>
Sławek Sobótkahttp://www.blogger.com/profile/15082577671795313109noreply@blogger.com0