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.
CppPolska - Doctrine i problem Lazy Loadingu (。◕‿‿◕。)

https://gildia-developerow.pl/...

źródło: priscilla-du-preez-dOnEFhQ7ojs-unsplash-1536x1024

Pobierz
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Krolik: a potem będziesz miał system z setkami takich obiektów w których wyciągasz sqlem dane i im bardziej złożone zapytanie tym większa przyjemność szukania błędu w razie czego jak coś się wywali. To też nie jest idealne rozwiązanie.
  • Odpowiedz
Cześć, potrzebuję porady. Podczas logowania tworzę w bazie danych sesję użytkownika. Chcę napisać test dla logout, w którym sprawdzę, czy po wylogowaniu sesja została usunięta. Mam takie dwie propozycje.

1. Pierwsza:

@test
void whenLogoutSuccess_DeleteSession() throws Exception
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Kamishimi: 1.

2. to dobry przykład ale na test integracyjny, w którym sprawdzasz czy przejście całego procesu login -> logout działa poprawnie.

W 1. wychodzisz z założenia że metoda logoutHelper.loginAndGetCookie(); działa prawidłowo, co powinno być sprawdzone testami tej metody w klasie LogoutHelperTest czy jakkolwiek się tam nazywa.
  • Odpowiedz
Ogólnie w given, lepiej nie używać assertów, ale czasami jednak trzeba się upewnić że coś daje efekt. Dlatego wolę 2 przykład. Ogólnie też używasz i api i wnętrzności apki (session/tokenGenerator). Jak się da, to lepiej zrobić wszystko przez api

-login
-sprawdzenie sesji #1 (używając api)
-logout
-sprawdzenie sesji #2
  • Odpowiedz
Czy nazwy endpointów z rolami, które mogę ich używać są ok czy raczej nie powinno się tak robić? Np. /public/products albo /admin/orders. Ułatwia to dość konfiguracje Spring Security, bo po prostu piszesz, że pod /public/* mogą wejść wszyscy a pod"/admin/* tylko admini i nie trzeba do każdego zasobu pisać oddzielnego konfiga.
#java #spring #naukaprogramowania #programowanie #programista15k
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Nofenak: domyślną daj publiczna, bez nazywania czyli na przykład /products albo /orders.

Jak chcesz żeby użytkownicy z innymi rolami dostawali inne zasoby, to wtedy dorzuć endpointy pod ten typ użytkownika: /admin/products albo /admin/orders
  • Odpowiedz
@Nofenak: Imho największy sens ma dzielenie według konsumenta API. Np. jeśli masz publiczne API, API pod frontend użytkownika i pod frontend admina, to powinny mieć one własne ścieżki. Wtedy masz największą elastyczność przy zmianie poszczególnych endpointów i wiesz na których konsumentów wpłyną te zmiany. Dodatkowo można pod każdego konsumenta ustawić stosowne nagłówki, caching, itp.
  • Odpowiedz
Potrzebuję tylko kogoś kto zna język angielski i programowanie do prowadzenia zajęć.


@tomaszs: A nie lepiej poszukać kogoś, kto umie nauczać programowania?
  • Odpowiedz
@Davidozz: to nie lepiej sobie zaznaczyc srodkowym ? niz najpierw zaznacza a potem jescze robic kursor jakims dziwnym skrotem :P chociaz zalezy co chce sie zrobic, jest taka wtyczka do vs code co pozwala na operacje na nawiasach typu zaznacz wszystko pomiedzy {} w ktormy jestes i z tym tez mozna robic cuda ;D
  • Odpowiedz
✨️ Obserwuj #mirkoanonim
#programista15 #programista #naukaprogramowania

W pracy jako junior często słyszę od swojego przełożonego coś w stylu "po x* nie możesz już o to pytać", "po x* już powinieneś to wiedzieć", "ty po x* pytassz mnie o takie rzeczy?".

To sprawia, że czuję się głupio i wolę już o nic nie pytać, przez co często robię coś dłużej, bo nie rozumiem czegoś, ale wolę sam próbować
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mirko_anonim: wspolczuje bo mam podobnego toksyka w pracy ktorego zapytanie o cokolwiek konczy sie podobnie, koniec koncow pomoze ale najpierw ta jego pasywno agresywna postawa wchodzi
  • Odpowiedz
✨️ Obserwuj #mirkoanonim
#programowanie #naukaprogramowania #programista15k

W jaki sposób użyć pipelinów z pracy do własnych projektów, żeby było to zgodne z prawem i nie było kradzieżą? W sensie współtworzę te pipeliny i chciałbym do swoich rzeczy wykorzystać, bo pomysł fajny mieliśmy i chciałbym w ten sposób budować swoje projekty do CV. Czy własnością firmy jest cała koncepcja, czy można zmiana nazw zmiennych jest wystarczająca?

  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mirko_anonim: nie rozumiem po co chcesz użyć firmowych pipelinow do prywatnego projektu. Przecież te firmowe są 100 razy bardziej rozbudowane, niedostosowane do twoich potrzeb. Poza tym stawianie czegoś takiego to fajna nauka.

Odpowiadając na pytanie: zmiana jedynie nazw zmiennych to będzie złamanie prawa. Nawet jak dokonasz więcej zmian to są programy które takie podobieństwa potrafią wyłapać(programy do wykrywania plagiatów)
  • Odpowiedz
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
CppPolska - Metody modelowania domeny w Doctrine 2

https://gildia-developerow.pl/met...

źródło: wesual-click-eXdKs9d37Sc-unsplash-1170x779

Pobierz
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

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.


@CppPolska: Jak będziesz używał encji z ORM-ma jak encji domenowych, to nigdy nie będzie czysta. To są zupełnie inne warstwy. Jak sobie nie wchodzą w paradę, to nie problemu z czystością i setterami.
  • Odpowiedz