Zdjęcie w tle
MarcinKuklinski

MarcinKuklinski

Kompan
  • 20wpisy
  • 2komentarzy
Symfony Messenger i klasy Transportów

https://gildia-developerow.pl/symfony-messenger-i-klasy-transportow/ 

Symfony Messenger jest świetny. Zgodzicie się? Instalujecie jedną paczkę i możecie wysłać wiadomość na kolejkę… oh wait. No jednak nie. Chociaż nie jest to tak trywialne jak w Doctrine, to jest to dosyć proste, o czym będzie dzisiejszy post.

Tagi: #programowanie, #naukaprogramowania i #programista15k w #php, #symfony i #technologia

Zaloguj się aby komentować

Doctrine i problem Lazy Loadingu

https://gildia-developerow.pl/doctrine-i-problem-lazy-loadingu/

Większość świeżych programistów, którzy pytają tych starszych o porady, słyszą: „Ucz się Symfony, Doctrine i pisz testy”. A młodzi przyjmują to za świętość i uczą się. Znają podstawowe pojęcia, po czym wchodzą na projekt, napiszą endpoint dla dużego zestawu danych i… całość wykonuje się w 13 sekund. Ta historia, choć nieco przeze mnie ufarbowana, wydarzyła się całkiem niedawno. I z chęcią podzielę się z Wami kilkoma szczegółami oraz wnioskami z tej sprawy

Tagi: #programowanie, #naukaprogramowania i #programista15k w #php, #symfony i #doctrine. Trochę #performance

Zaloguj się aby komentować

Metody modelowania domeny w Doctrine 2

https://gildia-developerow.pl/metody-modelowania-domeny-w-doctrine-2/ (。◕‿‿◕。)

Warstwa domeny w Domain Driven Design jest prawdziwą wisienką na torcie. Powinniśmy dbać o nią, aby zawsze była czysta. Dziś przedstawię Wam kilka heurystyk, których stosowanie spowoduje, że Wasza domena nabierze barw ʕ•ᴥ•ʔ

Tagi: #programowanie, #naukaprogramowania, #programista15k w #php, #symfony, #doctrine i #ddd. No i skoro #ddd to i #architektura oprogramowania ( ͡° ͜ʖ ͡° )つ──☆*:・゚
vinclav

Piszesz bardzo ładnie, ale te reklamiarstwo mnie odstrasza. Polecam Red book.


Jesteś na czarnej. To nie jest to miejsce, i to tu robisz z tego miejsca wykop 7.0


Proszę, przestań.

Zaloguj się aby komentować

Koncept migracji bazodanowych i Doctrine 2

https://gildia-developerow.pl/koncept-migracji-bazodanowych-i-doctrine-2/ :)

Podczas tworzenia aplikacji biznesowych, nie sposób nie poruszyć tematu aktualizacji bazy danych – elementu, z którym spotykamy się w codziennej pracy. Niezależnie od typu środowiska, zawsze trafimy na temat migracji bazy danych. Na szczęście Doctrine posiada specjalnie do tego wyspecjalizowany mechanizm, którego najważniejsze elementy poruszymy w tym wpisie.

Tagi: #programowanie, #naukaprogramowania oraz #programista15k w #php, #symfony, #doctrine

Zaloguj się aby komentować

W poszukiwaniu agregatów w Domain Driven Design

https://gildia-developerow.pl/w-poszukiwaniu-agregatow-w-domain-driven-design/

Agregaty to perła pośród całego Domain Driven Design. Święty Graal wielu, którzy migrują na DDD. Niby każdy wie o ich istnieniu, jednakże znaleźć projekt z ich wykorzystaniem jest niełatwo. Przejdźmy przez ten bardzo ciekawy element taktycznego DDD.

Tagi: #programowanie, #naukaprogramowania i #programista15k w #php, #ddd i ukochana #architektura
epsilon_eridani

@MarcinKuklinski z DDD najtrudniej jest przekonać manedżment i zespół, że się opłaca

MarcinKuklinski

Trochę nie rozumiem argumentu z managementem @epsilon_eridani. To raczej zespół (liderzy techniczni, CTO) powinni dobierać sposób tworzenia oprogramowania.

epsilon_eridani

@MarcinKuklinski w małej jednostce racja, gdy jesteś wyizolowany i interesują Cie tylko kontrakty, w większym departamentach - przynajmniej z mojego doświadczenia ludzie są niechętni schodzenia z głównej linii + masz już ustalone narzędzia/frameworki. Teraz np pracuje w banku więc to już w ogóle padaka żeby cokolwiek przewalczyć.

dotevo

A co to za DDD bez agregatów? czasem ciężko je dobrze ustalić, ale aby nie było ich w projekcie to jeszcze nie słyszałem

Zaloguj się aby komentować

Dzień dobry środowy poranku!

Dziś mamy nowy wpis na blogu Nieco długi, ale moim zdaniem bardzo potrzebny. Jest o słowie kluczowym final i dlaczego osobiście go nie lubię

Klasy finalne, PHPSpec i spam interfejsów
https://gildia-developerow.pl/klasy-finalne-phpspec-i-spam-interfejsow/ 

Podejście typu „rób tak zawsze i koniec” jest moim zdaniem słabe. Tym bardziej, jeżeli nie padają żadne argumenty. Bo jak pojawiają się argumenty, to jest również dyskusja. Tak jest w kwestii podejścia „klasa powinna być finalna by default”, a ja przychodzę z argumentami, dlaczego nie.

Tagi: #programowanie, #naukaprogramowania i #programista15k w #php, #symfony, #oop i oczywiście nie może zabraknąć #architektura (bo interfejsy)

Zaloguj się aby komentować

Komunikacja dwóch mikroserwisów z Symfony Messengerem
https://gildia-developerow.pl/komunikacja-dwoch-mikroserwisow-z-symfony-messengerem/

W poprzednim wpisie zajmowaliśmy się tematem przetwarzania asynchronicznego wiadomości za pomocą komponentu Symfony Messenger. Czy wiecie, że Messenger służy również do komunikacji dwóch serwisów ze sobą? Nie? No to zaraz się dowiecie

Tagi: #programowanie, #naukaprogramowania i #programista15k w #programowanie, #symfony, #architektura, #mikroserwisy

Zaloguj się aby komentować

Witam wszystkich w ten śnieżny wtoreczek!  Przychodzę do Was z nowym wpisem o Domain Driven Design 
Dziś będą riki-tiki - polityki! 

Wstrzykiwanie polityki do agregatu w Domain Driven Design
https://gildia-developerow.pl/wstrzykiwanie-polityki-do-agregatu-w-domain-driven-design/

Kiedyś, podczas sesji Event Stormingu, w której brałem udział kilka lat temu, co chwilę padało zdanie „A to wyłapie jakaś polityka”. Następnie naklejaliśmy fioletową karteczkę. Wtedy nie było dla mnie jasne, czym są polityki w kontekście Stormingu oraz DDD. Dzisiaj już to wiem i chcę tą wiedzą podzielić się z Wami

Tagi: #programowanie, #naukaprogramowania i #programista15k w #php, #ddd no i #architektura oprogramowania
acgp

Zaraz ktoś napisze że nie otagowałeś jako polityka xD

bojowonastawionaowca

@acgp nieprawda, nie jestem aż tak okropny

Zaloguj się aby komentować

Dzień dobry, zachęcam do prasóweczki na weekendzik

Jak pozbyć się setterów z encji?
https://gildia-developerow.pl/jak-pozbyc-sie-setterow-z-encji/

Wszyscy dookoła mówią, że encje powinny zawierać wyłącznie logikę biznesową, a nie settery. Niby wszyscy to wiedzą, ale każdy i tak robi te settery. Ja wiem, dlaczego tak się dzieje i z chęcią Wam o tym opowiem

Tagi: #programowanie, #naukaprogramowania i #programista15k w #symfony, #doctrine i #ddd

Zaloguj się aby komentować

Dzieeeeń dobrego wtorku wszystkim! :)

Mamy nowy wpis na blogu!   Tym razem wyjaśniam, jaki koncept stoi za CSRF tokenem i tłumaczę, dlaczego jest on taki ważny 

Po co jest ten token CSRF?
https://gildia-developerow.pl/po-co-jest-ten-token-csrf/ 

Wchodząc w świat Symfony niektóre rzeczy robimy z automatu, bo tak jest w dokumentacji. Nie zawsze zdajemy sobie sprawę z tego, o co tak na prawdę chodzi z pewnymi detalami. Jednym z takich detali jest token CSRF, który na pierwszy rzut oka wydaje się uciążliwy. Ale jest ważny, o czym będę pisał dzisiaj.

Tagi: #programowanie, #naukaprogramowania i #programista15k w #php#symfony i trochę #security

Zaloguj się aby komentować

Dzieeeeń dobry w nowym roku! 
Dziś chyba wszyscy wracamy do pracy, więc wracam z publikacją posta!  No dobra, opublikowałem w święta, ale chwalę się dziś 

Zatem miłej lektury! 

Dodatkowe porady na temat performance aplikacji internetowej
https://gildia-developerow.pl/dodatkowe-porady-na-temat-performance-aplikacji-internetowej/

Utrzymanie dobrego performance aplikacji jest prawdziwą sztuką. Jako developerzy najczęściej poświęcamy swoją uwagę na to, w jaki sposób piszemy kod. I to jest okej, chociaż na tym przyśpieszanie aplikacji się nie kończy. Stąd właśnie mam kilka porad związanych z dobrym performance, które niekoniecznie skupiają się na tym, jaki kod piszemy

Tagi: #programowanie, #naukaprogramowania i #programowanie w #php , trochę #symfony
wombatDaiquiri

@MarcinKuklinski wydaje mi się, że dużo osób (w tym ja) może grzmocic content w ciemno bez czytania. Ale akurat trafiłeś w mój temat.


Poza tym że artykuł jest w dużej mierze o PHP z którym nie mam styczności, nie wiem po co to ukrywać w tytule xD


Zatrudnienie DevOpsa to dodatkowy (niemały) koszt [...] Stąd właśnie przychodzi potrzeba obsługiwania serwerów przez nas, backendowców.


Na tym polega DevOps. To o czym mówisz to "zatrudnienie opsa". DevOps == backendowiec robiący dwa etaty (tzn. ogarniający sobie deployment od 0). Gratulacje nowego tytułu.


Przykładowo, jeżeli mamy produkt, który składa się w wariantów, to nie musimy pchać pełnych wariantów w pole variants. Wystarczy wysłać odniesienie do wariantów – identyfikator (listę identyfikatorów), bądź jak to robi API Platform – zwrócić IRI zasobów.


Albo można nie tworzyć nowego standardu i użyć graphql.

Zaloguj się aby komentować

Dzieeeeń dobry wszystkim! Dziś Wigilia Bożego Narodzenia, dlatego chciałbym życzyć wszystkim użytkownikom Hejto dużo zdrowia, radości i samych zielonych testów!

A gdybyście gdzieś tam sobie chcieli coś poczytać, to łapcie wpisa!

Symfony Messenger asynchronicznie
https://gildia-developerow.pl/symfony-messenger-asynchronicznie/

To, że Symfony Messenger jest niezastąpiony, wszyscy wiedzą. Za to, jak go skonfigurować – niekoniecznie. Z tego powodu właśnie powstał dzisiejszy post. Skonfigurujmy razem Messengera, aby przeprocesował komendę asynchronicznie!

Tagi: #programowanie, #naukaprogramowania, #programista15k w #php oraz #symfony
kaczkadziwaczka

@MarcinKuklinski Jakie to jest straszne gówno.... Masz kolejkę i jak nie pobierze to message zamiast zrzucić na kolejkę na koniec jak AMQP mówi to nie. PHP musi być upośledzony i tworzy sobie kolejkę delay, bo tak. Potem miliony tych kolejek wiszą, ani tym zarządzać ani nic. Chcesz rabbita oskryptować to nie, bo puścisz i usunie te wszystkie delay kolejki i stracisz dane. No cudowna technologia prosto od PHP. Nie wiem czy w ciągu mojej całej, trwającej kilkanaście lat kariery zawodowej widziałem bardziej wkurzającą w założeniach bibliotekę.

Zaloguj się aby komentować

Dzieeeeń dobry! Zrobiłem sobie kilka dni przerwy od statków i naskrobałem nowy wpis Bo gdzieś tam przemyślenia mnie wzięły odnośnie tego, jak piszemy aplikacje, i dlaczego one niekoniecznie szybkie są No więc łapcie!

**Kilka porad na dobry performance aplikacji napisanej w Symfony**

https://gildia-developerow.pl/kilka-porad-na-dobry-performance-aplikacji-napisanej-w-symfony/

Jako programiści lubimy dyskutować nad tym, czy nasz kod wygląda dobrze. Zastanawiamy się, czy da radę go re-używać oraz zrozumieć. Niestety, nie podejmujemy zbyt wiele dyskusji na temat tego, czy aplikacje, które tworzymy mają odpowiedni performance. Zatem dziś jak podejrzewacie, będzie właśnie o performance.

Tagi: #programowanie, #naukaprogramowania oraz #programista15k w #php, #symfony oraz #doctrine. No i #performance

Zaloguj się aby komentować

Dzieeeeń dobry wszystkim! to znowu ja

Dziś zostawiam Was na weekendzik z wpisem o #ciekawostki dotyczące #php PSR 

PHP-FIG i standardy PSR
https://gildia-developerow.pl/php-fig-i-standardy-psr/ 

Jak wygląda kod-spaghetti, wiemy wszyscy. Jest on tworzony bardzo często przez programistów, którzy swoją naukę zakończyli wraz z nauką języka programowania. Próbują oni odkrywać koło na nowo, osiągając coraz to nowsze pokłady nieporządku i niezrozumienia. Dla wszystkich tych, którzy właśnie przeczytali coś o sobie, jest właśnie ten wpis.

Tagi: #programowanie, #naukaprogramowania i #programista15k w #symfony. Nawet o #laravel coś tam jest
MarcinKuklinski

@sierzant_armii_12_malp i tak i nie. Doświadczony programista moim zdaniem często stosuje zasadę dobrego harcerza i sprząta więcej, niż sam nabrudził. Nie tłumacząc się biznesowi. Bo koniec końców on pracuje przy tym kodzie. To trochę tak, jakby budowlaniec miał kłaść wylewkę bez wcześniejszego oczyszczenia podłoża. Bo biznes mu powiedział, że on chce wylewkę. Że nie chce sprzątania.


Ale to wszystko też zależy od tego, co stoi za słowem "doświadczony programista". Bo to może być ktoś, kto klepie dziesięć lat pietnastotysięczniki, a może to być osoba, która zna wzorce architektoniczne, zna ich wady i podejmuje decyzje roztropnie. Jeden doświadczony programista klepie kodziki tylko do nowych ficzerów, bo biznes tak kazał, a drugi doświadczony programista planuje mikro-refactoring z taska na task, aby długu ubywało.

sierzant_armii_12_malp

@MarcinKuklinski Nie ma „i tak i nie” - albo tak, albo nie. Micro-refactoringiem wszystkiego nie poprawisz, a każdy nietrywialny refactoring to dodatkowe ryzyko regresji.

Biznesowi trzeba wytłumaczyć, że refactoring jest potrzebny, chociażby pokazując analogię do tego, co on robi - ale jeśli trafi się manager na tyle głupi, że tego nie pojmie, to „naś klijent naś pannnnn”. Dostaniesz raz czy drugi ochrzan za regresję, to zaczniesz inaczej pojmować świat.

Zaloguj się aby komentować

Dobra architektura z CQRS

https://gildia-developerow.pl/dobra-architektura-z-cqrs/

Chyba każdy, kto zaczynał pracować na dowolnym frameworku MVC, popełniał ten sam błąd: znaczną część logiki zamieszczał wewnątrz akcji kontrolera. Efektem tego były pliki kontrolerów o dużej ilości linijek. W dzisiejszym wpisie rozważymy wzorzec, dzięki któremu zadbamy nieco o nasz kod tak, aby duże kontrolery do nas więcej nie wróciły. Mowa oczywiście o wzorcu CQRS.

Tagi: #programowanie, #naukaprogramowania i #programista15k o #php, #symfony
lokurva

Przy asynchronicznej obsłudze commandów proponuje zwracać status 202

Zaloguj się aby komentować

Wzorce projektowe przyjazne Open-Close Principle cz.2

https://gildia-developerow.pl/wzorce-projektowe-przyjazne-open-close-principle-cz-2/

Wzorców projektowych jest bardzo dużo, nawet jeżeli jakoś je pogrupujemy. A pogrupowałem już we wcześniejszym wpisie, którego temat będę kontynuował tutaj. Zapraszam więc na drugą część wpisu o wzorcach projektowych przyjaznych zasadzie OCP

Tagi: #programowanie, #naukaprogramowania oraz #programista15k i #php

Zaloguj się aby komentować

https://gildia-developerow.pl/wzorce-projektowe-przyjazne-open-close-principle-cz-1/

Jednym z dziedzictw świata programowania są wzorce projektowe. Jest to meta-język, którym mogą posługiwać się programiści niezależnie od tego, w jakiej technologii, czy języku piszą. Bardzo podobnie jest z zasadami SOLID. Dziś połączymy te dwie rzeczy w pierwszym, z dwuczęściowej serii, wpisie.

Taaaaagi: #programowanie #naukaprogramowania #php #programista15k
szczekoscisk

"Dekorator", "Kompozyt" i "Adapter" nie ma za wiele wspólnego z zasadą "Open-closed principle". Dlaczego? Te wzorce można zastosować dla każdej klasy/funkcji i jest to niezależne od tego czy ktoś trzymał się zasad SOLID tworząc klasę.

Zaloguj się aby komentować

https://gildia-developerow.pl/prawo-demeter-w-modelowaniu-domenowym

Programowanie aplikacji biznesowych, zwłaszcza w języku PHP, bardzo często skupia się na tworzeniu dobrego modelu, odzwierciedlającego domenę aplikacji. Istnieje kilka zasad, które pomagają w utrzymywaniu modelu w dobrej kondycji. W tym wpisie pod lupę weźmiemy jedną z tych zasad, a będzie nią Prawo Demeter.

Tagi: #php , #programowanie , #naukaprogramowania , #programista15k

Zaloguj się aby komentować