Wpis z mikrobloga

#anonimowemirkowyznania
Hej!

Uczę się programować w Java. Najlepiej się nauczyć na własnym projekcie, więc zmaterializowałem mój własny pomysł - serwis przechowujący i procesujący leady biznesowo-inwestycyjne (wywodzę się z tego świata i zwyczajnie robię taki system, bo wiem co tam musi się znajdować).

Póki co całość śmiga w architekturze mikroserwisowej, na google cloudzie(konteneryzacja dockerem), w kubernates engine, napisane w spring frameworku - każdy serwis to springboot. I tak:

- mamy dwie bazy danych mysql skonteneryzowane na cloudzie, jedna z nich to główna baza danych leadowych (dane, opis, upload plików, kontakt, daty, klasyfikacje, filtry), druga baza danych to baza oddelegowana do obsługi oauth2
- główny serwis obsługujący wszystkie CRUD-y (baza danych z różnymi mapowaniami, żeby korzystać z LAZY fetching)
- serwis statystyki - obsługujący obliczenia statystyczne, trendy, w przyszłości może rysujący wykresy (bez fajerwerków), serwis ma własny prosty cashing, żeby nie zaciągać wielokrotnie głównej bazy danych, a jedynie wymagane pola i to raz na jakiś czas.
- serwis oauth2 - autentyfikacja wewnątrz clouda i w komunikacji z frontendem, serwis pisany od podstaw w springboocie(Spring cloud oauth2), łącznie z bazą danych
- ingriss gateway - bramka do komunikacji ze światem zewnętrznym, obsługująca wszystkie żądania, tak by nikt nie miał dostępu do pojedynczych serwisów, każdy serwis zabezpieczony
- wszystkie serwisy skalują się wertykalnie i horyzontalnie w zależności od potrzeb (węzły i klastry).
- komunikacja między serwisami i ze światem zewnętrznym w architekturze REST (Spring Data Cloud + Feign + ribbon), jsony śmigają w formie stron, których wielkość i sortowanie można modyfikować w endpointsach. Całość eksponuje (oczywiście po autentyfikacji i autoryzacji) pewnie ponad 20 różnych endpointów, każdy po kilka parametrów.
- wydaje się, że w miarę sensowny i kompleksowy exception handling.

W najbliższej przyszłości dodam prosty (nie)frontend - bo nie znam się na tym, więc póki co skorzystam ze Spring MVC + thymeleaf + bootstrap, żeby móc prezentować użyteczność backendu w cloudzie, dodam też redisa do cashingu i swaggera. Generalnie całość by się pewnie dało ogarnąć w monolicie, ale chciałem się pobawić tymi technologiami.

I teraz pytanie do was: Czy to coś czym można się chwalić np na rozmowach kwalifikacyjnych (dla juniorów pewnie)? Czy raczej takie o, klasyka po jakimś bootcampie czy innym syfie? Pytam bo zupełnie nie znam tego rynku... ()

#programista15k #programowanie #java #backend

Kliknij tutaj, aby odpowiedzieć w tym wątku anonimowo
Kliknij tutaj, aby wysłać OPowi anonimową wiadomość prywatną
Post dodany za pomocą skryptu AnonimoweMirkoWyznania ( https://mirkowyznania.eu ) Zaakceptował: LeVentLeCri
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Czy to coś czym można się chwalić np na rozmowach kwalifikacyjnych (dla juniorów pewnie)? Czy raczej takie o, klasyka po jakimś bootcampie czy innym syfie? Pytam bo zupełnie nie znam tego rynku... ()


Dobrze wiesz jaka jest odpowiedź.
  • Odpowiedz
PodgnityDryblas: @trevoz: Pojęcia nie mam, bo nigdy nie brałem udziału w żadnym campie, a zawziąłem się na programowanie od 5msc (wcześniej tylko na studiach i w elektronice, ale to C). Cała moja nieduża wiedza pochodzi z neta, książek i udemy.

@whoonid: To bramka, która działa jako wspólny load balancer. Nie trolluje.

@wqdqweff: No też tak myślę, aczkolwiek planuję w przyszłości to jakoś rozszerzyć i może
  • Odpowiedz
FikuśnaKreatura: @draxgar: Bez jaj, serio? Tzn. tak jak pisałem, fajerwerków nie ma, ale starałem się ogarnąć jak najwięcej ciekawych i w miarę aktualnych tematów, przyznaję jednak, że części tego co pisałem nie do końca rozumiem, tzn np. nie rozumiem do końca jak działa łańcuch filtrów w security, nie do końca jest dla mnie jasny 'cykl' całego persistence w hibernate, albo w przypadku oauth2 mam jeszcze sporo czarnych dziur, które
  • Odpowiedz
BezwzględnyDziadek: @AnonimoweMirkoWyznania: typowy program bootcampu więc nie ma się za bardzo tym chwalić. To co opisałeś to początkowe rozdziały bootcampu, powinieneś jeszcze napisać w javie chmurę, a najlepiej własna dystrybucje linuxa.

A tak na serio to wymieniłeś wiele rzeczy, których nawet regularzy w dobrych firmach do końca nie ogarniają - jeżeli jeszcze nie masz doświadczenia komercyjnego i wszystko pisałeś sam to to może być wszystko #!$%@? napisane - nie piszę tego, żeby cię obrazić. ak naprawdę na juniora to możesz nawet machnąć prosty monolit, bo od juniora nie wymaga się skomplikowanych rzeczy, tylko umiejetności pisania czystego, zwięzłego i zrozumiałego dla innych kodu. Nie jest to takie proste jak skopiowanie kodu do swojego projektu z udemy i refactoryzacja z księgarni na sklep internetowy xD. Nie sztuka coś wyklepać, sztuka to wyklepać coś dobrze - czysty kod, wzorce, różne dobre praktyki tylko to się liczy u juniora.

Nawet nie wiesz ile osób nie wie co robi @Transactional (ale dają to na każdej metodzie), dlaczego w kontrolerze springowym nie powinno się tworzyć logiki biznesowej, czym jest open session in anti pattern, czym są proxy springowe/hibernatowe albo dlaczego serwisy/kontrolery nie powinny przechowywać stanu, a jeżeli jest to przech. stanu konieczne to dlaczego trzeba użyć kolekcji
  • Odpowiedz
PonuryMurzyn: @FortunaHej: Skoro uczę się programować, to chyba logiczne, że nie umiem jeszcze programować. Gówno projekt, a Twój pierwszy-ever projekt to od razu był Facebook? Sugerujesz, że lepiej po prostu czytać książki i dać sobie spokój z pisaniem czegokolwiek bo to bez sensu? Albo kupić bootcampa za parę k?

Zaakceptował: LeVentLeCri
  • Odpowiedz
MocnaKreatura: @draxgar: Bez jaj, serio? Tzn. tak jak pisałem, fajerwerków nie ma, ale starałem się ogarnąć jak najwięcej ciekawych i w miarę aktualnych tematów, przyznaję jednak, że części tego co pisałem nie do końca rozumiem, tzn np. nie rozumiem do końca jak działa łańcuch filtrów w security, nie do końca jest dla mnie jasny 'cykl' całego persistence w hibernate, albo w przypadku oauth2 mam jeszcze sporo czarnych dziur, które
  • Odpowiedz