Zdjęcie w tle

Społeczność

Programowanie

1k+

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

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

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ć

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 ? W ogóle czytacie jakieś regularnie, śledzicie jakichś twórców? Czy może dalej szukacie informacji po Google i korzystacie z wyników z devblogów? Jak tak, to co Was do nich przyciąga?


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 to zależy. Chatgpt ma tą jedną wadę że jak nie wie to sobie dopowie i wychodzą bzdury. Plus trzeba bardzo pilnować o co pytasz. Ostatnio pytałem AI ile ma być max psi w kole do roweru. Wypluło elaborat że przed użyciem roweru mam się upewnić czy w dętce nie ma psa przed rozpoczęciem jazdy

@marmot cieszę się że pobudzilem Cię do rozkminki mnie osobiście interesują bardziej Twoje przemyślenia, doświadczenia, przeżycia, oryginalne refleksje. Wszystko co było opisane w książkach mogę sobie przeczytać w tych książkach. Ale pewnie masz codziennie jakiś problem którego nikt wcześniej nie opisał. Czy to w pracy z ludźmi, w projekcie, w konsumowaniu dokumentacji. I o nim chciałbym przeczytać.

@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 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ć

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


https://www.youtube.com/watch?v=JuBZ2bi2qGs

Zaloguj się aby komentować

Zaloguj się aby komentować

Zmiana interfejsu w #phpstorm (i pewnie we wszystkich produktach #jetbrains ) tak by wyglądały prawie jak #visualstudiocode to była najlepsza rzecz, jaką ta firma zrobiła, przynajmniej z mojego punktu widzenia.


Jako, że przy okazji tej zmiany wywaliło w kosmos wszystkie moje skrupulatnie ustawiane paski, przyciski i ich położenia (a przy okazji przestała działać spora część innych nie związanych z wyglądem konfiguracji) pomyślałem sobie:


> jeśli coś działa i wygląda jak darmowy #vscode to po co mam płacić co roku grube hajsy za licencję?


I tak oto, skoro i tak musiałem wszystko konfigurować od początku, to zamiast konfigurować storma, spróbowałem VS Code. Chwilę to zajęło, ale pluginami i konfiguracjami odwzorowałem sobie 95% tego co miałem w PhpStorm.


Super decyzja JetBrains Oszczędziliście mi mnóstwo kasy


#php

c521f6f9-8d08-4fe8-82b8-3eb9b0cf2c95

@Anteczek Doświadczenie mi mówi, że takie zabiegi to często jedynie zyskiwanie na czasie. Na razie można wrócić, ale za wersję albo dwie mogą stwierdzić, że nie mają jednak zamiaru kilku wyglądów jednocześnie wpierać :v

@RobertCalifornia Jak nie lubię Microsoftu to akurat VS Code to jest mistrzostwo. Kiedyś byłem bardzo niechętny i korzystałem z Atoma, ale kiedy Atom praktycznie stał w miejscu i liczył na rozbudowę przez community to zespół pracujący nad VS Code dodawał coraz to nowsze rzeczy a jednocześnie community rosło szybciej niż te Atoma i powstawało coraz więcej rozszerzeń i serio w tym momencie to zaczynam uważać, że VS Code zaraz stanie się edytorem kompletnym którego można używać do większości popularnych języków programowania prawie tak samo wygodnie jak dedykowane IDE.


P.S. tak jak już ktoś wspomniał wyżej, polecam VS Codium czyli wersje VS Code bez telemetrii od MS bo mimo, że odwalili kawał dobrej roboty to nie dajcie się im szpiegować xD

Zaloguj się aby komentować

@Catharsis Jeszcze jak ( ͡° ͜ʖ ͡°). Dokładnie to ogladajanime pl. Shindena nie bo mam zablokowany dostęp ponieważ jest w Niemczech XD

Żebrogwiazdki na Google playu xD Chyba google się w końcu dobrze zabrało za te boty nabijajace pozycję jakimś gównianym aplikacjom.

Zaloguj się aby komentować

Ostatnio zacząłem przeglądać sobie większe programy open-source napisane w pythonie i zerknąłem na lutris.


54000 tysięcy linii napisanych w tym języku i dopiero ostatnio zaczął korzystać z mypy w bardzo podstawowym stopniu.


Zacząłem przeglądać kod jako kompletny outsider i zauważyłem kilka zmiennych których typów nie mogłem wydedukować. Przepatrzyłem miejsca gdzie są odczytywane/zapisywane i jedyne wywnioskowałem że niektóre z nich to dicty, ich klucze to stringi lub czasami tuple a wartości to jakieś nieotypowane zmienne.


Dlaczego, nawet przy tak dużych projektach ludzie wzbraniają się przed używaniem typów?

Przecież brak jasno określonych typów zmiennych rodzi problemy i utrudnia osobom zrozumienie kodu i pomaganie.


Od kiedy w pracy zaczęliśmy korzystać z duetu ruff + mypy strict, ilość błędów znacząco zmniejszyła się i dziwi mnie że duże pythonowe projekty nie korzystają z mypy, choć jest dostępny już kilka/kilkanaście lat i jest potwornie przydatny


#python

#programowanie

848e4c84-1104-4e17-bfca-42e94dfc46c9

Podobnie mam z Type Script i "any" lub "object". Dla wyjaśnienia, TS pozwala ale nie wymusza typowanie. Więc mam takie WTF gdy ktoś poświęcił chwilę na wpisanie że coś jest/zwraca "cokolwiek" . Gdzie tu jest jakaś korzyść?

@szczekoscisk jak dobrze pamiętam, to czasami kompilator TS potrafi się przyczepić, że typ jest nieokreślony, więc żeby się nie czepiał to daje się any i fajrant ( ͡° ͜ʖ ͡°)


Przy czym dotyczy to głównie sytuacji, kiedy ktoś używa TS bo jest modny albo mu kazali.

Nie kojarzę by sam kompilator TS wymuszał typowanie (przynajmniej na szybko nie kojarzę takich przypadków), możliwe że widziałeś sytuacje gdzie "tslint" czegoś się czepiał.

Myślę, że to przez to, że lutris to dość stary projekt, a typowanie w pythonie to jednak coś dość nowego. Pamiętam, że z 10 lat temu używałem już lutrisa.

@qarmin Gdy po kilku dobrych latach z C++ zacząłem w robocie pisać w Pythonie to nie mogłem się odnaleźć i strasznie mi typów brakowało. A później się przyzwyczaiłem i juz miałem wszystko w d⁎⁎ie ( ͡° ͜ʖ ͡°) Może dlatego. W większości przypadków da się (przynajmniej u mnie) typ spokojnie wyczaić z kodu. Raz na ruski rok się nie da i wtedy używam debuggera.

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)zz) 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 


https://www.youtube.com/watch?v=3mCb2a6NFQ0

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

@Sheppard30 - przydatne do tego jak nauczyć się bycia obsługiwaczem AI - bo w niedalekiej przyszłości tylko takie prace w IT się ostaną

@Sheppard30 promoty promptami, ale dlaczego to 💩 ma tak dużo "halucynacji", czy jak to po polsku będzie. Ostatnio przez miesiąc gpt 4 takie cyrki odwalał, że czułem się jakbym rozmawiał z wykopkiem. Żadne prompty nie pomagały, ignorował wszystkie instrukcje. Dopiero ostatnio się troche naprawił

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

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ć

No więc jestem poważnym programistą wykonującym poważne projekty


https://youtu.be/NE0OFeCpsDM


Od jakiegoś czasu szukam sobie relaksującego hobby na zimę i wymyśliłem #programowanie. Przeszedłem od podstaw assemblera 6502 przez podstawy grafiki 2d i 3d, następnie podstawy pisania shaderów dochodząc do #arduino i #esp32 . Tu zdecydowanie zostanę na dłużej, bo zabawa jest przednia, a w domu już zaczynają się walać różne mikrokontrolery i układy. A i w pracy udało się wdrożyć banalny projekt. Polecam.


#atari rlz

Z fajnych bajerów jest ESP-MESH czyli espki tworzą swoją sieć mesh i komunikują się bezpośrednio z pominięciem routera.

Też możesz sprawdzić ESP-HOME. Odbiega to trochę od programowania bo tutaj generujesz soft na podstawie konfiguracji. Używany do automatyzacji domu, współpracuje z popularnym Home Assistant. I masz gotowe OTA (programowanie przez wifi)

Zaloguj się aby komentować

#javascript #nodejs #programowanie #bekazwykopu

Śmiesznie, pisząc takiego jakby scrapera lub ładniej ujmując narzędzia do pobierania danych użytkownika z #wykop natrafiłem na zabawnego buga na ich stronie.


Mianowicie wystarczy wejść na profil jakiegoś użytkownika i dajemy na mikroblog i następnie na zakładkę z plusowanymi wpisami. I teraz jeżeli jakiś użytkownik ma ponad 500 stron plusowanych wpisów to po przejściu na jakąkolwiek stronę ponad 500 klikając ze spisu stron na dole to strona załaduje się normalnie. Ale teraz jeśli odświeżymy stronę, albo przejdziemy na nią wklejając link w przeglądarkę to wywali error 404 xD.


Napisałem im wczoraj wiadomość z tym błędem to odpisali odpisali jeszcze w ten sam dzień ale dopiero teraz zauważyłem maila. Twierdzą, że błąd znają i nad nim pracują xd.


Tymczasowo musiałem dodać do swojego skrypta, że na strony powyżej 500 przechodzi dosłownie klikając w linki na dolnym spisie stron zamiast bezpośrednio z adresu po pętli xD.


A co do samego buga to zgaduje, że to jest jakiś problem z routingiem w #vue ale czemu akurat ponad 500 to nie mam pojęcia xD.

629a567b-83ee-4761-b2ac-e5ed2aa7b64e

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ć

Problem:

Konstruktor zmiennej globalnej nie jest wywoływany.

Po długich godzinach szukania co tu się w ogóle dzieje okazało się, że problem występuje tylko w niektórych plikach w projekcie i tylko w Visual Studio.


Rozwiązanie:

Problem pojawia się jeśli w statycznej libce (dołączanej później do exeka) masz zmienne globalne. Visual Studio domyślnie podczas linkowania nie bierze wszystkich rzeczy z libki - konieczne jest dodanie argumentu linkera /WHOLEARCHIVE (wielkość liter zdaje się mieć znaczenie, co na windowsie nie jest zbyt częste).

W przypadku CMake trzeba dodać:

set_property(TARGET projekt_robiący_binarkę APPEND PROPERTY LINK_OPTIONS /WHOLEARCHIVE:libka_ze_zmiennymi_globalnymi)


Uwielbiam Microsoft. Gdyby nie to, że linkowanie używając GCC zajmuje u mnie ~2 minuty to bym dalej siedział na Eclipse.

#cpp #programowanie #visualstudio

Ale nawet google nie nie wie o konstruktorach zmiennych, chyba, ze autor dokonal tutaj jakiegos skrotu myslowego

@krokietowy Myślałem o wypróbowaniu innych linkerów, ale biorąc pod uwagę, że GDB czasem mi się wysypuje (czy debuggery debuguje się debuggerami?), to już wolę siedzieć na Visualu. Generalnie działa on całkiem sprawnie, ale widać, że robił go Microsoft - podpowiadanie składni zawsze na pierwszym miejscu daje najgorszą możliwą opcję, dokładnie tak, jak Excel.

@shiranai Szczerze, jeśli polegasz na takich zależnościach, to na Twoim miejscu zastanowiłbym się, czy to co robisz ma sens.

@groman43 Uwierz mi, że przez chwilę nawet się nad tym zastanawiałem.

Używam w swojej grze Lua. Lua pozwala zdefiniować własne funkcje w C i używać ich z poziomu skryptu. Wcześniej każdą zdefiniowaną funkcję musiałem ręcznie dodawać do Lua. Stwierdziłem, ze to za dużo roboty i chcę się pobawić w automatyczne ich dodawanie. Odgapiłem sposób stosowany do testów w Catch2: https://github.com/catchorg/Catch2/blob/v2.x/include/internal/catch_test_registry.h#L106 . Dopiero po fakcie przypomniałem sobie, że z nim też były problemy jeśli testy definiowałem w osobnej libce.

Zaloguj się aby komentować

Zaloguj się aby komentować