Oskar Dudycz

Pragmatycznie o programowaniu

Materiały z prezentacji o CQRS oraz nieco zaplecza

2021-05-24 oskar dudycz.NET

cover

Cześć!

Narzuciłem sobie w ostatnim tygodniu zawrotne tempo. Licząc z nadchodzącym w środę wystąpieniu na 4 Developers to będzie cztery wystąpenia w 8 dni.

Dzisiaj i w zeszły wtorek próbowałem przekonać widzów, że CQRS nie jest taki trudny jak myślisz. Jest nagranie z zeszłego wtorku:

W środę z kolei wziąłem udział w panelu dyskusyjnym SegFault o tym czy Event Sourcing to hit czy kit. Nagranie dostępne jest na PGR (Programistycznej Grupie Rozwoju):

https://www.facebook.com/jaroslaw.palka/videos/10161265970883289/

Jeżeli obejrzysz jedno lub drugie nagranie (lub jesteś na 4Developers), to będę bardzo wdzięczny za feedback!


Jak łatwo zauważyć po moich nagraniach lubię pisać kod na żywo w trakcie prezentacji. Innymi słowy lubię ryzyko. W większości porad, które widziałem o tym czego nie robić na prelekcji programistycznej zwykle punktem pierwszym jest: nie programuj na żywo.

Jest w tym dużo racji. Nie ma nic gorszego niż ktoś kto skacze pomiędzy plikami, kod się nie kompiluje, walczy z edytorem, itd. Na samej prezentacji wiele rzeczy może pójść nie tak. Mnie raz włączyły się aktualizacje. Od tego czasu zawsze jeżdżę na prelekcje z dwoma laptopami. Serio.

Ogólnie nie należę do szczęściarzy - np. dwa dni przed Pierwszą Komunią potrącił mnie samochodem ksiądz, który miał mi ją dawać. Bynajmniej nie było to w pobliżu właściwego kościoła. Taki to już los.

Z hazardu lubię tylko Texas Holden, ale tutaj znowu pech. Jak byłem w Las Vegas to poszedłem do kasyna, żeby spróbować swojego szczęścia. Szło mi nawet nieźle. W pewnym momencie miałem parę asów na ręce i… sprawdził mnie koles z parą ósemek i… oczywiście mu doszła ósemka.

Dlatego też mimo, że lubię podnosić poprzeczkę wysoko, czasem zbyt wysoko to wiem, że wszystko muszę mieć przetrenowane. Jak wspominałem - dwa laptopy. Zapasowe baterie, te sprawy.

Tym razem też nie pomogłem sobie chcąc na jednej prezentacji pokazać nowinki z .NET, CQRS, a na 4Developers jeszcze po angielsku. Nie jestem jednak totalnie szalony. Temat uprościłem do małego, ale wydaje mi się reprezentacyjnego wycinka - po jednej komendzie i jednym query do obsłużenia. Kluczowe jest, żeby wyciąć wszystko to co zbędne i zostawić tylko esencję.

Żeby to móc zrobić potrzebny jest trening i próby. Moje przygotowania trwają zwykle długo. Najpierw powstaje kod, a wraz z nim plan prezentacji. Gdy mam już napisany kod, to zwykle jest go za dużo. Nie jest realne go pokazać w całości. Dlatego próbuję znaleźć ścieżkę krytyczną, która pozwoli mi pokazać esencję, ale też pozwoli mi uniknąć wywrotek i rozwalenia sobie głupiego ryja.

Potem następuje najgorszy etap. To co sobie wymyśliłem muszę jakoś przetestować. Nie lubię ludzi traktować jak króliki doświadczalne, więc pierwsze próby następują samemu ze sobą. Szalenie tego nie cierpię. No ale niestety trzeba to zrobić, trochę pogadać do siebie, żeby wyćwiczyć podstawy. Co więcej, musi to być robione na głos. Mówienie w myślach się nie sprawdza.

Potem proszę zwykle koleżanki lub kolegów (lub brata), czy by chcieli mnie wysłuchać. To pierwsza próba generalna.

Potem zwykle trzeba coś poprawić, widać co zagrało co nie. Wracam do mówienia do siebie…

Jeżeli jest to debiut z tą prezentacją to zwykle wolę to zrobić na jakiejś grupie programistycznej. Atmosfera zwykle jest luźniejsza, mniej stresu i sytuacja bardziej sprzyjająca. Co oczywiście nie znaczy, że ma nie być profesjonalnie. To już ma być na gotowo.

Jednak i po tym okazuje się, że coś można poprawić, doszlifować. Tak samo było i tym razem. Zobaczyłem, że na WrocNet/KGD kolejność nie była idealna, że nieco chaosu się wdzierało. Plus nieco brakowało czasu. Przestawiłem, więc kolejność, zmieniłem akcenty. Czy to pomogło? Ciężko powiedzieć, czekam na więcej feedbacku.

Tym razem, z racji, że sam live coding był trudny przygotowałem sobie skrypt zamiast drugiego otworzonego Ridera i to się bardzo fajnie sprawdziło. Dużo łatwiej było mi podążać za nim niż miotać się po drugim IDE.

Stwierdziłem, że Ci go udostępnię: https://www.notion.so/Talk-16a5c20e1a9b4673969ea2eb51ca87c1.

Także, dla mnie podstawą jest praktyka i dobre przygotowanie. Dobór tematu, który mnie interesuje, czuję się pewnie i jeszcze dodatkowe przetrenowanie. Jak zwykle magią jest to, że nie ma magii. Nie zmienia to sytuacji, że sytuacja i tak będzie stresująca. Jak sobie z tym radzę? O tym może w kolejnym mailu. Daj znać czy Cię taka tematyka interesuje.


Jeśli chcesz rozpocząć “karierę” prelegenta to jest dobra okazja. Trwa Call4Papers na pierwszą od kilkunastu miesięcy konferencję non-online w Polsce - dynamIT 2021! Odbędzie się w Krakowie 27 i 28 sierpnia tego roku.

Jeśli jesteś zainteresowany wystąpieniem - napisz parę zdań o sobie, opisz proponowany temat prezentacji i wyślij na biuro@toproste.com. Znając organizatorów - warto spróbować! Sam pewnie też wyślę coś od siebie.

Póki co jednak, idę otworzyć sobie zasłużone piwko!

Pozdrawiam!

Oskar

P.S. Wrzuciłem na bloga wpis o tym czemu starsi programiści i architekci boją się czasem programować. Bazuje na jednym z newsletterów. Jeśli jeszcze nie znasz, zachęcam do lektury. https://event-driven.io/en/why_are_senior_devs_afraid_to_code/. Jeśli Ci się spodoba lub podesłania znajomym, będzie mi bardzo miło!

Zerknij też do nowego Architecture Weekly: https://github.com/oskardudycz/ArchitectureWeekly#24th-may-2021.

  • © Oskar Dudycz 2019-2020