• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Obiektowa rejestracja i logowanie

Object Storage Arubacloud
0 głosów
432 wizyt
pytanie zadane 2 grudnia 2018 w PHP przez jakubmark Początkujący (370 p.)
Zastanawiam się jak powinna wyglądać obiektowa rejestracja i logowanie, czy to powinno być obsługiwane przez dwie klasy czy jedną.

Jeśli jedną , to jak przekazywać wszystkie wprowadzone dane do klasy, ustawiać je seterami?

Jak tworzyć Trajty, czy one wszystkie powinny być w jednym pliku, czy każdy w osobnym?

 

Jeśli ktoś zna jakiś sensowny przykład takiej obiektowej rejestracji, logowania, to bardzo poproszę o link.

1 odpowiedź

+2 głosów
odpowiedź 2 grudnia 2018 przez Comandeer Guru (600,810 p.)

Tak po prawdzie tu będzie kilka klas. Tak na szybko IMO:

  • kontroler do obsługi żądania HTTP,
  • walidator danych,
  • encja prezentująca użytkownika,
  • klasa do obsługi zapisu do bazy danych (lub ogólnie warstwa obsługi bazy danych),
  • klasa usługi zawierająca logikę związaną z rejestracją (czyli w dużej mierze komponująca działanie z wyżej wymienionych warstw).

Dla logowania będzie to wyglądać analogicznie.

Oczywiście w mniejszych projektach można to uprościć (np. walidator wbudować w encję albo zrobić "tradycyjne" MVC i całą logikę wrzucić do modelu).

Można spojrzeć np. jak robi to FoS – ale to już przypadek trochę ekstremalny ;)

komentarz 2 grudnia 2018 przez Tomek Sochacki Ekspert (227,510 p.)

walidator wbudować w encję

Ja z własnego doświadczenia powiem, że zamiast iść w tę stronę to raczej zrobiłbym zupełnie oddzielne endpointy walidacyjne. Mogą to być endpointy dla pojedynczych elementów (np. walidacja telefonu, walidacja istnienia usera w bazie itp.) i jakieś endpointy grupujące, to już zależy od potrzeby.

Takie podejście pozwala na wykorzystanie mikrousługi walidacyjnej w prosty sposób zarówno w API jak i na froncie (robiąc strzały gdy dane pole powinno mieć bardziej skomplikowaną walidację) i dodatkowo daje otwartą drogę do trzymania ujednoliconej walidacji gdy za chwilę coś innego będzie chciało z tego skorzystać.

Dla przykładu - teraz mówimy o rejestracji, więc może będziemy chcieli zrobić jakaś walidację pola e-mail (na razie nie istotne w ogóle jak działa ta walidacja). Za chwilę gdzieś na stronie dojdzie nam jakiś formularz, może jakieś zamawianie i bam, znowu pewnie e-mail. Za chwilę biznes przyjdzie znowu z pomysłem neweslettera i bum, kolejna walidacja e-maila... kilka elementów, które można by obsłużyć pięknie jedną mikrousługą walidatora i jednym endpointem :)

Ja bym racze był zwolennikiem myślenia perspektywicznie, co naprawdę bardzo ułatawia... i co najważniejsze, daje porządek gdy nad projektem pracuje kilka osób - nie wyobrażam sobie, aby każdy ficzer tworzył sobie wlasną klasę walidacyjną :)

komentarz 2 grudnia 2018 przez Comandeer Guru (600,810 p.)
Ok, zgadzam się… tylko po co od razu robić z walidatora mikrousługę? ;) Walidator wydzielony do osobnej klasy i następnie wstrzykiwany przez DI w pełni wystarczy dla sporej liczby (jak nie większości) projektów. Trzymanie walidatora jako osobnej mikrousługi to raczej już pomysł dla naprawdę sporych projektów, gdzie całość jest kompozycją niezależnych usług. Przy bardziej monolitycznym podejściu IMO to przerost formy nad treścią.
komentarz 2 grudnia 2018 przez Tomek Sochacki Ekspert (227,510 p.)
oki fakt, przy małych projektach może nie jest to potrzebne (ale przy większych już można dostrzec zalety takiego podejścia, jak chociażby wydzielenie konkretnych mikrousług do utrzymania przez konkretne zespoły, łatwiejszy dewelopment, PR wpływające na niezależne fragmenty itp., moim zdaniem są widoczne zalety takiej architektury ale to jak zwykle bywa zdanie subiektywne i opinii jest wiele:)

Robienie monolitów ma jednak jedną istotną wadę, a mianowicie z moich doświadczeń wynika, że znacznie łatwiej wdrażać i ewentualnie wycofywać zmiany wersji mikrousług niż monolitów - a mam obecnie styczność i z jednym i z drugim rozwiązaniem. Nie warto bać się "rozdrabniania" projektu bo przy wielu sytuacjach taka architektura naprawdę daje wiele plusów.

I nie mówiąc już o kwestiach mega ważnych jak np. skalowalność... tutaj chyba nie powiesz mi,że monolit ma szansę wygrać ze światem mikrousług :)
komentarz 2 grudnia 2018 przez Comandeer Guru (600,810 p.)

I nie mówiąc już o kwestiach mega ważnych jak np. skalowalność... tutaj chyba nie powiesz mi,że monolit ma szansę wygrać ze światem mikrousług :)

Ile projektów potrzebuje skalowalności na tym poziomie? Normalny projekt prawdopodobnie nie dobije do takiej skali, żeby odczuć faktyczną różnicę.

Mikrousługi faktycznie mają sens, gdy nad projektem pracuje grupa ludzi. Jak pracujesz samodzielnie, to po prostu dokładasz sobie więcej pracy. Trzeba zadbać o sensowną izolację każdej mikrousługi (Docker?), o sensowną komunikację między nimi (REST API jest dobrym punktem wyjścia, ale sensowniej zaaplikować jakieś MQ), o obsługę błędów i automatyczny restart padającej usługi… Jak się nie ogarnia tematyki administracji tego typu rzeczy, to jest to porywanie się z motyką na słońce.

Podobne pytania

+16 głosów
5 odpowiedzi 766 wizyt
0 głosów
1 odpowiedź 557 wizyt
pytanie zadane 27 stycznia 2022 w Java przez JanK Nowicjusz (120 p.)
0 głosów
4 odpowiedzi 467 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...