Powoli, ale do przodu. Dwa pierwsze dni poświęciłem na zaprojektowanie wstępnego wyglądu aplikacji. Praca z wykorzystaniem Fluttera mi się spodobała. Aplikację buduje się za pomocą dostępnych komponentów, umieszczając je kolejno wewnątrz siebie, zazwyczaj w polu child
lub children
. Nie obyło się jednak bez małej irytacji, nie mogłem sobie poradzić z ustawieniem pewnych elementów, na szczęście podpatrzyłem rozwiązanie ze Stacka.
Wczoraj pracowałem nad backendem, jak wspomniałem wcześniej wybrałem Javę plus Springa. Pobrałem paczkę na start, wrzuciłem Hibernate i Lomboka, a następnie przygotowałem dwie podstawowe encje, repozytoria i kontrolery. W projekcie póki co nie ma za bardzo logiki, ponieważ wszystko jest oplecione w adnotacje (wiem, że wielu nie przepada, chociaż nie wiem dlaczego), dlatego na tę chwilę odpuściłem sobie testy.
Przygotowałem także plik dla Dockera, wprowadziłem staging składający się z dwóch etapów. Pierwszy obraz JDK jest pod architekturę arm (ponieważ Jenkins chodzi na RaspberryPi) i przeprowadza kompilację. Drugi obraz JRE jest pod amd64 i zawiera w zasadzie entrypoint z uruchomieniem aplikacji. Dodałem jeszcze Jenkinsfile
, wrzuciłem projekt do Rundecka, więc CI/CD jest ogarnięte. Na koniec krótka konfiguracja na serwerze, Nginx plus dodanie subdomeny.
Następny etap to konfiguracja bazy danych i użytkownika na serwerze (tymczasowo baza w pliku), dodanie Liquibase oraz Swaggera do projektu. Zastanawiam się czy od razu wprowadzić wersjonowania endpointów oraz nad wprowadzeniem rate limitera na endpointach. Dzisiaj robię przerwę, do końca urlopu nie uda mi się wypuścić MVP, ale będę relacjonował. ;)
@DrzwiPercepcji: Tu nie chodzi o same adnotacje, tylko o wszechobecną magię Springa i Hibernate, której brak zrozumienia prowadzi do szukania heisenbugów na prodzie przez 3 tygodnie. Przeciętny dev (za: instytut danych z D) wchodzi na start.spring.io i stawia bazę danych zanim zrozumie, co tak naprawdę jest mu potrzebne. Temat rzeka, ale @jarekr000000 jest całkiem skuteczny w prowadzeniu terapii grupowych na ten temat, jeśli Cię interesuje:
Nowy rok, nowe drzwi. Miałem dość obecnych projektów, dlatego uznałem że rozpocznę kolejny projekt. ;) W święta przemyślałem produkt i technologię. Wziąłem wolne do 10 stycznia i teraz siedzę i zarzynam starego lapka. Będzie apka we Flutterze na Androida, plus API w Javie na VPSie. Od rana instalacja IDE i SDK, w dalszej kolejności Git repo + YouTrack/Jenkins/Rundeck. Jeśli kogoś zainteresuje, to od czasu do czasu wrzucę postępy. ;)
@DrzwiPercepcji: super gdzie to obserwować? ludzia nie da sie tutaj, tylko wątek (albo jeszcze nie znalazłem)
Wczoraj oddałem teściowej laptopa, po tym jak pół roku temu przyniosła mi go do naprawy.
W piątek pewien handlarz stwierdził że pewnie bez problemu podłączyłbym internet na całym targowisku.
Bo oni mają blaszane dachy i im odbija sygnał, a czy to prawda, że to tak działa? Pan na pewno wie.
Ostatnio spędziłem 4 godziny na telefonie pomagając konfigurować komuś komputer.
Przyznawanie się do bycia informatykiem, to strzelanie sobie w kolano. Zwłaszcza jak nie jest się serwisantem, a np. deweloperem.
Nikogo nie obchodzi to, że pół dnia spędzam pisząc kolorowe szlaczki, pętle i ify.
Ja na pewno umiem podłączyć internet, wykopać rów w ziemi dla światłowodów, polutować płytę główną, znam się na sterownikach we wszystkich systemach i znam BIOSy na pamięć. Umiem też konfigurować mało UXowe telefony dla seniorów.
Mało tego, ja strzeliłem sobie w oba kolana. Podłączyłem w rodzinie pulpity zdalne. Teraz jestem także radosnym specjalistą od Offica, kursywy w dokumentach, uruchamiania przeglądarki i wypakowywania zipów.
Możliwe, że też popełnialiście kiedyś ten błąd. Możliwe, że nadal go popełniacie. Moim zdaniem programista dziedziczy po informatyku, ale stricte nim nie jest. Warto to prostować, bo zostaniecie zasypani pierdołami i spokoju wam nie dadzą. ;p
Taka ciekawostka.. Zauważyłem, że część osób z branży (od juniorów po seniorów) nie jest świadoma, że modyfikator pola private
wcale nie oznacza, że tylko obiekt-właściciel ma do niego dostęp. Inny obiekt tej samej klasy również może odczytać to pole. Wyczytałem to w książce od Javy i byłem zaskoczony. :) A tu przykład w PHP:
<?php
class Test
{
private $someField = 'Hello World';
public function foo(Test $bar)
{
return $bar->someField;
}
}
$testA = new Test();
$testB = new Test();
echo $testA->foo($testB);
@part private
nie służy i nie miało służyć do zabezpieczania pól/funkcji przed nieuprawnionym dostępem
. To jest po prostu środek do modularyzacji kodu - wskazujemy z czego zalecamy (public
) a z czego nie zalecamy (private
) korzystać na zewnątrz. Chociaż w javie, jeśli mamy security managera włączonego to private
daje rade jako zabezpieczenie (albo raczej powinien), ale to raczej nieczęsto używane jest (sandboxy, typu applety, z tego korzystały).
Pascal to dopiero ma wywalone na private
– ani nie blokuje w ramach obiektu, ani nawet klasy. Można się do prywatnego pola dostać nawet z poziomu klasy nie mającej nic wspólnego z tą hakowaną (pod warunkiem, że zadeklarowana jest w tym samym module). Pozory prywatności zachowane. Natomiast do ukrywania wymyślili strict private
i strict protected
.
Ciekawe czy podobne rzeczy w którymś języku dzielą publiczne elementy. ;)
Staż pracy to chyba najgorsze kryterium z jakim się spotkałem. Znam seniorów, którzy...
@Kamil Pilniak: Nie chcę Cię przesadnie zniechęcać, ale z takim podejściem studia in...
@Kamil Pilniak: Nie chcę Cię przesadnie zniechęcać, ale z takim podejściem studia in...
@Kamil Pilniak: Nie chcę Cię przesadnie zniechęcać, ale z takim podejściem studia in...
@Kamil Pilniak: Nie chcę Cię przesadnie zniechęcać, ale z takim podejściem studia in...
Dzisiaj ciężko o technologię, która nie ociera się o jakieś większe korpo. Ja korzys...
Dzisiaj ciężko o technologię, która nie ociera się o jakieś większe korpo. Ja korzys...
Staż pracy to chyba najgorsze kryterium z jakim się spotkałem. Znam seniorów, którzy...
Dzisiaj ciężko o technologię, która nie ociera się o jakieś większe korpo. Ja korzys...
Staż pracy to chyba najgorsze kryterium z jakim się spotkałem. Znam seniorów, którzy...
@DrzwiPercepcji: uff czyli jest zdrowy rozsądek :)