Zapraszam na wieczorne pogaduchy z programowaniem i szkalowaniem scruma w tle
https://www.youtube.com/watch?v=TJOZadtBUxQ
#programujzpasterzem #programowanie #naukaprogramowania #javascript
Zapraszam na wieczorne pogaduchy z programowaniem i szkalowaniem scruma w tle
https://www.youtube.com/watch?v=TJOZadtBUxQ
#programujzpasterzem #programowanie #naukaprogramowania #javascript
Zaloguj się aby komentować

W najnowszym artykule na swoim blogu na ruszt wziąłem wzorzec projektowy Builder (Budowniczy). Wzorzec umożliwia konstruowanie złożonych obiektów łatwo i elastycznie. W artykule opisałem założenia wzorca oraz przedstawiłem przykład implementacji. Zapraszam serdecznie do lektury :)
#programowanie...
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
@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ć.
Zaloguj się aby komentować
Kojarzy mi się, że jakiś czas temu na społeczności był poruszony temat, że po co pisać artykuł z przykładem kodu, skoro na podstawie tl;dr ChatGPT może nam wszystko, co trzeba wygenerować. Trochę mnie ten temat, jako twórcę bloga, męczył przez jakiś czas, a że trochę tego czasu już minęło, to piszę nowy wpis, zamiast udzielać się w starym.
Ciekawi mnie, co Was jako programistów, czy osoby uczące się programowania najbardziej przyciąga do czytania treści na blogach innych programistów? Bo w zasadzie możemy stwierdzić tak:
Potrzebuję informacji o jakimś zagadnieniu? ChatGPT może wytłumaczyć.
Potrzebuję kodu jakiegoś algorytmu albo szablonu jakiegoś wzorca projektowego? ChatGPT wygeneruje mi kod w dowolnym języku.
Potrzebuję jakiejkolwiek pomocy z programowaniem? Również ChatGPT może tutaj podpowiedzieć, a Plus nawet wyszukać za nas po internecie i powołać się na dokumentację.
Gdzie tutaj jest w takim razie miejsce na blogi programistyczne
Bardzo mnie ten temat ciekawi, bo przez pisanie od kilku lat bloga nie czuję się odpowiednio obiektywny w temacie, a jakkolwiek na to nie spojrzeć, dotyczy mnie
#programowanie #naukaprogramowania #programista15k #chatgpt
@marmot cieszę się że pobudzilem Cię do rozkminki
@marmot może kwestia tego, że jakbym miał wyżyć z prompt engineeringu, to bym jadł suchy chleb, ale jak pytam o coś ChatGPT, to czuję jakbym czytał wypracowania na język polski w gimnazjum. Mało konkretów, dużo uogólnień, lania wody, bezcelowego rozwlekania wypowiedzi. Na blogach mam tę zaletę, że często idzie znaleźć kompleksowe podejście do tematu w formie, którą da się czytać.
Zaloguj się aby komentować
Dzień dobry środowy poranku!
Dziś mamy nowy wpis na blogu
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ć
WykopGPT - Perspective API - dziś, 20:00
Zapraszam na kolejny live, podczas którego do naszego bota podłączymy fajne narzędzie (również oparte na AI), które wykrywa wszelkiego rodzaju szkalowania (nie tylko wielkich Polaków) oraz treści toksyczne, tak aby uniknąć wysyłania przez użytkowników pytań łamiących regulaminy OpenAI i Wykopu czy Hejto. Dodatkowo pokażę jeden z popularnych loggerów błędów aplikacji.
Tag do czarnolistowania / followania: #programujzpasterzem
#chatgpt #openai #programista15k #it #naukaprogramowania #nodejs #javascript #glupiewykopowezabawy #youtube #filmnawieczor #programowanie
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ć
Już za chwilę o 20:00 zaczynamy [stream ](https://www.youtube.com/watch?v=3mCb2a6NFQ0)z z) livecodingiem wykopowego bota opartego o chata gpt. Zapraszam każdego, kto interesuje się programowaniem, chciałby się czegoś dowiedzieć i w sumie to nie ma nic lepszego do roboty niż siedzenie w piwnicy dziś wieczorem ( ͡° ͜ʖ ͡°) W przyszłości zrobimy coś podobnego dla hejto.
Tag do followania / czarnolistowania: #programujzpasterzem
#chatgpt #openai #programista15k #it #naukaprogramowania #nodejs #javascript #glupiewykopowezabawy #youtube #filmnawieczor
Zaloguj się aby komentować
WykopApi (w przyszłości też hejto) + ChatGPT
Zapraszam w czwartek o 20:00 na pierwszy odcinek z serii edukacyjnych live codingów, podczas których napiszemy użytecznego chat bota na konkurencyjny wykop w oparciu o GPT-4 i pogadamy o sytuacji w AjTi. Zachęcam do supukcji oraz obejrzeniu prologa do tego co robimy.
Tag do czarnolistowania / followania #programujzpasterzem
https://www.youtube.com/watch?v=3mCb2a6NFQ0
#programujzwykopem #naukaprogramowania #chatgpt #openai #programista15k #programowanie #nodejs #webdev #frontend #javascript #backend
Zaloguj się aby komentować
Witam wszystkich w ten śnieżny wtoreczek!
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
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ć
Wkurza Cię nowy front vikop i postanowiłeś przejść na hejto? Nic nie działa tam jak trzeba? To dobrze się składa bo w ramach nauki #frontend przygotowuję serię streamów w których spróbujemy napisać własnego klienta i pokazać, że, w co trudno uwierzyć, może być jeszcze gorzej ( ͡° ͜ʖ ͡°) Pokażę Wam jak używać wykopAPI v3 i AntDesign oraz pogadamy o życiu.
https://www.youtube.com/watch?v=stEWW7UVD4Y
Zapraszam na stream o 21:37
Tag do czarnolistowania #programujzpasterzem
#frontend #webdev #naukaprogramowania #programowanie #react #javascript #programista15k #programista20k #wykopapi
Zaloguj się aby komentować
Dzieeeeń dobrego wtorku wszystkim! :)
Mamy nowy wpis na blogu!
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ć
Hej, zapraszam na strima o 20:00. Piszemy w #react i gadamy o #it #pracait
Nie chcesz widzieć tego typu postów? Dodaj tag #programujzpasterzem na czarną listę.
https://www.youtube.com/watch?v=UaqDg_qlLPk
#programowanie #naukaprogramowania #javascript #webdev #programista15k #frontend #backend
Zaloguj się aby komentować
najnowszy post o Chain of Responsibility od @elszczepano zainspirował mnie do napisania recenzji;
TL;DR: chain of responsibility masz jak wykonujesz po sobie rzeczy, np.
1. Zapisz do logów
2. Wyślij metryki
3. Zwróć HTML ze zdjęciem papieża
Bardzo chciałem, żeby moja krytyka była merytoryczna, więc wpisałem dokładnie ten prompt w Chat GPT z prośbą o napisanie przykładu w express.js (ryc. 1)
const express = require('express');
const app = express();
// Middleware 1: Zapisz do logów
app.use((req, res, next) => {
console.log(`Received a request at ${req.url}`);
next(); // Przejście do następnego middleware
});
// Middleware 2: Wyślij metryki
app.use((req, res, next) => {
// Kod wysyłający metryki (przykładowo)
console.log(`Sending metrics for ${req.url}`);
next(); // Przejście do następnego middleware
});
// Middleware 3: Zwróć HTML ze zdjęciem papieża
app.use((req, res) => {
res.send('<html><body><h1>Strona z zdjęciem papieża</h1><img src="url\_do\_zdjecia\_papieża.jpg" alt="Papież"></body></html>');
});
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
na koniec chatGPT wyjaśnia nam co zrobił:
W tym kodzie każda funkcja middleware wywołuje next() po wykonaniu swojego zadania, co pozwala na przekazanie kontroli do następnego middleware w łańcuchu. Ostatni middleware nie wywołuje next(), ponieważ kończy proces obsługi żądania, wysyłając odpowiedź HTML.
pytanie: jaki jest sens pisać ten artykuł, zamiast napisać samo tl;dr? Mam nadzieję, że autor nie odbierze mojej recenzji osobiście. Ja nie mam motywacji napisać czegoś "od zera" dlatego póki co komentuję odważniejszych. pozdrawiam
#programowanie #pytanie #naukaprogramowania #lajko <- mój tag o programowaniu

Rozumiem Twój punkt widzenia. Pisząc artykuły na bloga nigdy nie zakładałem, że muszą być unikalne i oryginalne (ale mogą, co niekiedy mi się udaje). Zdaję sobie sprawę że sporo contentu z bloga opisane w wielu innych miejscach (w tym w książce, na której się wzorowałem w recenzowanym wpisie) oraz że mogę uzyskać podobny efekt korzystając z Chatu GPT. Patrząc na możliwości LLM-ów, to równie dobrze bloga mógłbym nie prowadzić wcale.
Pisząc ten konkretny artykuł spełniam swój cel opisania wszystkich znanych mi wzorców projektowych na łamach bloga. Co do samej formy, to czy dało się to napisać krócej to się nie wypowiem. Artykuły staram się pisać bez zbędnego wodolejstwa i w prosty sposób jednak z kompletnym wyczerpaniem tematu. To czy mi to wychodzi czy nie pozostawiam do oceny czytelnikom.
Kończąc ten przydługi wywód, dzięki za feedback
Zaloguj się aby komentować

Wzorzec Chain of Responsibility to jeden ze wzorców behawioralnych opisanych w "Design Patterns: Elements of Reusable Object-Oriented Software" autorstwa Bandy Czworga. W najnowszym artykule na blogu przedstawię Ci koncepcję, przykładowe zastosowania i potencjalne problemy, jakie mogą...
Mamy tu jakiegoś eksperta od assemblera Z80? Chodzi mi o wstawki assemblerowe w sdcc. Funkcja, która ma skoczyć bezwarunkowo pod adres:
void run(char* address){
__asm
pop HL
jp (HL)
__endasm;
}
Kompiluje się prawidłowo, ale nie działa. Ktoś może mi wytłumaczyć dlaczego? Ja to rozumiem w następujący sposób:
-argument przy wywołaniu funkcji jest wrzucany na stos
-instrukcja "pop HL" ściąga argument ze stosu do rejestru HL
-"jp (HL)" skacze bezwarunkowo pod adres przechowywany w rejestrze HL.
program zachowuje się tak, jakby nic się nie wykonało.
#programowanie #naukaprogramowania #retrocomputing

@ataxbras @MostlyRenegade @inskpektor
Problem częściowo rozwiązany - zerknąłem w pośredni kod asemblera generowany przez sdcc. Parametr nie jest przekazywany przez stos, tylko przez rejestr hl, więc samo "jp (HL)" załatwia sprawę. Nadal działa to tylko w przypadku przekazania wskaźnika na funkcję, przy 0x0000 się wiesza. Edit: jednak działa, problem jest chyba przy powtórnej inicjalizacji UARTa bez soft resetu
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
@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!
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
@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!
**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ć