Wielokrotnie widziałem próby podejścia do DDD na tyle komplikujące całe rozwiązanie, że postanowiłem o tym napisać kilka słów. Mam wrażenie, że świat programistów trochę zachłysnął się modnymi ostatnimi czasy konceptami jak właśnie DDD i wychodzą z tego takie kwiatki jak strach przed ORM, który nie oszukujmy się w przypadku poprawnego zastosowania zaoszczędza sporo pracy. Często mimo nawet nieskomplikowanej domeny programiści celują w stuprocentowo czystą domenę i unikają korzystania z narzędzia, które powoduje
@yhbgrobdoivbvwamsv: faktycznie rozkmin filozoficznych to się w branży zrobiło całkiem sporo, ale w tej sytuacji, którą opisałem nie widzę podobieństwa, bo jeśli o takich sprawach nie powinniśmy gadać i "filozofować" to o czym w takim razie? ( ͡° ͜ʖ ͡°)
@Saly: w tym miejscu chodziło o wrzucanie do projektu skomplikowanego ORMa, a korzystaniu z niego na zasadzie tylko anemicznych modeli i mapowania do bazy, gdzie zamiast tego skomplikowanego
@Saly: w tym miejscu chodziło o wrzucanie do projektu skomplikowanego ORMa, a korzystaniu z niego na zasadzie tylko anemicznych modeli i mapowania do bazy, gdzie zamiast tego skomplikowanego
@croppz: tak jak pisałem w artykule, nawet jakby trzeba było framework zmienić to nie powinno to być straszne, bo jak skorzystamy z Doctrine do zapisu agregatów z DDD to pewnie będziemy mieli tylko zależność do małej paczki doctrine/collections, więc można założyć scenariusz, że paczka będzie nadal rozwijana, a wtedy do np. CycleORM powinno być łatwo przejść.
Warto tylko pamiętać o automatyzacji i jakiejś weryfikacji reguł architektonicznych za pomocą phparch czy
Warto tylko pamiętać o automatyzacji i jakiejś weryfikacji reguł architektonicznych za pomocą phparch czy
@croppz: czyli macie translację agregat DDD -> anemiczna encja ORM -> zapis i odwrotnie przy pobieraniu?
@MQs: chyba też nie do końca o tym samym mówimy, bo ja krytkuję podejście do DDD w taki sposób, że porzucamy ORM całkowicie, albo nie wykorzystujemy go w 100% mimo, że logika jest względnie prosta i nic nam to nie daje. Przykłady są w artykule, który podałem. Separacja domeny i pozostałych warstw to inna sprawa i to jest pożądany efekt jak najbardziej.
@MQs:
Pisałem o tym właśnie i o to mi głównie chodzi, że większość projektów nie ma tak złożonej logiki, żeby ORM stanowił problem, a jak stanowi
Jeżeli nic to nie daje to faktycznie można olać temat, ale moim zdaniem równie poważnym problemem jest łapanie się na haczyk "instant gratification" narzędzi, bo trudno się z niego zerwać i potem widzi się jeszcze głupsze konstrukcje walczące z frameworkiem albo ignorowane/nadmiarowe testy.
Pisałem o tym właśnie i o to mi głównie chodzi, że większość projektów nie ma tak złożonej logiki, żeby ORM stanowił problem, a jak stanowi
@markaron:
Ten link zwraca 404. W sumie to zwykle podchodzę do tego bardzo podobnie, mam jedną metodę w klasie, ale nazywam to zwykle trochę inaczej niż CommandHandler, QueryHandler, a to dlatego, że nie dokładam jakiegoś busa do tego, bo wtedy znowu musiałbym być bardzo restrykcyjny co do zasad i pewnie nie zwracać danych z CommandHandlera. Chyba, że nie masz czegoś takiego na myśli i te handlery normalnie zwracają dane, wtedy
Ten link zwraca 404. W sumie to zwykle podchodzę do tego bardzo podobnie, mam jedną metodę w klasie, ale nazywam to zwykle trochę inaczej niż CommandHandler, QueryHandler, a to dlatego, że nie dokładam jakiegoś busa do tego, bo wtedy znowu musiałbym być bardzo restrykcyjny co do zasad i pewnie nie zwracać danych z CommandHandlera. Chyba, że nie masz czegoś takiego na myśli i te handlery normalnie zwracają dane, wtedy
@markaron: Poprawny link: https://cezarywalenciuk.pl/blog/programing/mediatr-cqrs-i-wzorzec-projektowy-mediator-w-aspnet-core bez tego nawiasu na końcu, z tego co widzę to tam CommandHandler faktycznie ma nic nie zwracać. Jak dla mnie to jednak brnięcie dla większości projektów zbyt daleko, ale to oczywiście zależy od projektu.
@markaron: jasne, też nie lubię takich przerośniętych serwisów, dlatego zwykle to separuję, ale bez busa i zwracam dane z command handlerów, chyba, że są jakieś drivery świadczące o tym, żeby zrobić inaczej.
@ajgoron: jest to opisane w podlinkowanym artykule, chodzi głównie o narzut ORMa (np. Doctrine), że w obiekcie musisz korzystać z kolekcji doctrinowych co powoduje, że domena nie jest czysta w 100%
- 12
Cześć, postanowiłem stworzyć na githubie repo ze wskazówkami na temat testowania jednostkowego z przykładami w PHP: https://github.com/sarven/unit-testing-tips
Jeszcze nad tym pracuję i zamierzam rozbudować niektóre kwestie o jakieś obszerne komentarze w formie artykułów. Ale to repo w założeniu ma zawierać proste, zwięzłe wskazówki. Dajcie znać co o tym sądzicie, które kwestie są niejasne, albo co Waszym zdaniem jest błędne.
#webdev #php #programowanie
Jeszcze nad tym pracuję i zamierzam rozbudować niektóre kwestie o jakieś obszerne komentarze w formie artykułów. Ale to repo w założeniu ma zawierać proste, zwięzłe wskazówki. Dajcie znać co o tym sądzicie, które kwestie są niejasne, albo co Waszym zdaniem jest błędne.
#webdev #php #programowanie
@escobol: @JanuszSraczek Finalnie czemu nie, może wpaść i na medium i na dev.to, ale na razie jeszcze jest w fazie dopracowania.
@tylko_na_dole: ten kod generalnie nie jest za dobrze napisany.
- jak repository to na pewno interfejs
- jak używasz kernela to już masz raczej test integracyjny
- mieszanie nazw w stylu camel case i
- jak repository to na pewno interfejs
- jak używasz kernela to już masz raczej test integracyjny
- mieszanie nazw w stylu camel case i
sarveniusz via Android
- 0
@szczesc_borze tak, postaram się to dopisać, dzięki za potwierdzenie, że trzeba :)
- 1053
Marzy mi się, aby #prawo i ustawy w Polsce tworzone były przy pomocy systemu kontroli wersji
Wyobraźcie to sobie:
- partia zakłada nową gałąź dot. np ustawy o broni
- organizacje NGO, opozycja itd. commitują poprawki
- Konfederacja zakłada issue, aby dorzucić kusze i b--ń rakietową
- senat robi merga
Wyobraźcie to sobie:
- partia zakłada nową gałąź dot. np ustawy o broni
- organizacje NGO, opozycja itd. commitują poprawki
- Konfederacja zakłada issue, aby dorzucić kusze i b--ń rakietową
- senat robi merga
- 55
@moxie: To wcale nie jest takie głupie :D Jeszcze jakby udało się wymyślić jakiś pseudokod, w którym da się zaimplementować całą logikę prawa, do tego interpreter i lecimy ze scenariuszami testowymi. W końcu wszystko byłoby przejrzyste, a w sądzie orzekałaby sztuczna inteligencja czyli cała kasta do wywalenia, ewentualnie mogliby się zająć wklepywaniem konkretnych spraw do interpretacji. Może wtedy w końcu wyniki procesów byłby deterministyczne, niezależne od interpretacji prawa.
Do tego
Do tego
Wiecie dlaczego "nauczycielki" prowadzące lekcje w #tvpis popełniały rażące błędy? Bo nie mogły spojrzeć na podręcznik, tak jak to robią prowadząc zajęcia z uczniami. ( ͡° ͜ʖ ͡°) Przeciętna lekcja wygląda tak - pytanie ucznia o regułki z podręcznika przez nauczyciela, który wlepia gały w książkę. Następnie czytanie podręcznika, potem przepisywanie go do zeszytu i zakuwanie na pamięć regułek, których uczniowie nie rozumieją.
Patrząc na nauczycieli
Patrząc na nauczycieli
@BaronGaultier: To może warto byłoby się postarać w momencie gdzie te lekcje będą wyświetlane w telewizji. Tak, aby ludzie zwrócili uwagę, żeby pokazać się z jak najlepszej strony. Lepiej odwalić taką szopkę i dziwić się czemu mało zarabiają. Tak na prawdę to współczuje prawdziwym nauczycielom, bo te lekcje w TVPis tylko im zaszkodziły.
Potrzebuję podłączyć dwa monitory do laptopa, w którym mam jedno gniazdo hdmi. Z tego co sprawdzałem to są jakieś rozwiązania typu splittery hdmi, testował to ktoś, działa?
#komputery
#komputery
sarveniusz via Android
- 0
@Whys tak nawet opisałem tutaj: https://sarvendev.com/2018/06/linux-adapter-usb-do-hdmi/
@MroczneCiacho: 3 różne obrazy ;)
- Developer (PHP, JS), Blogger
- https://sarvendev.com
- X (dawny Twitter)
Niech to będzie przestroga dla szefów, zarządów, rad nadzorczych. Na IT się nie oszczędza XD
#tvp #media #tvpis #sejm #programista15k