Wpis z mikrobloga

Witam wykopowych #programista15k

Pisałem ostatnio zadanko, które polegało na napisaniu usługi z interfejsem REST/HTTP, która umożliwi aktualizowanie wartości czujników i zwracanie wadliwych silników.

Serwer miał pobrać dane wejściowe zawierające listę czujników do silników z pliku w formacie YAML na GitHubie.

HTTP GET
Miał zwracać jako JSON listę silników, gdzie ciśnienie na czujniku spadło poniżej podanego poziomu i jednocześnie temperatura na co najmniej jednym czujniku wzrosła powyżej podanej wartości

HTTP POST
Miał zaktualizować wartość dla czujnika uwzględniając wartości maksymalne i minimalne możliwe dla danego czujnika.

Czujniki były rozplanowane w ten sposób, że każdy silnik miał tylko jeden czujnik ciśnienia(posiadały one info o silniku do którego są przyczepione) i co najmniej jeden czujnik temperatury, który posiadał w sobie pole z "id" czujnika ciśnienia, ale nie
wiedział nic o silniku.

Fajnie by było, jakby ktoś mógł jakieś krótkie code review z uwagami uczynić ( ͡ ͜ʖ ͡)

Kod do zadania tutaj:
https://github.com/d100495/recruitment_task_r
A w załączniku podrzucam metodę filtrującą.

Z góry dzięki

#programowanie #java #eclipse #javaee #maven #rest #webservice #api
Pobierz Danger40 - Witam wykopowych #programista15k 

Pisałem ostatnio zadanko, które poleg...
źródło: comment_TUrW7xtZEgihOQAX2v14H2ZDOETrjIdF.jpg
  • 25
@Kuriozal: Bo zadanie było takie, żeby ta metoda zwróciła listę silników, które są wadliwe (tzn. listę silników, gdzie ciśnienie na czujniku spadło poniżej podanego poziomu i jednocześnie temperatura na co najmniej jednym czujniku wzrosła powyżej podanej wartości), a w liście, którą ta metoda przyjmuje jako parametr są wszystkie czujniki z podziałem na temperaturowe i ciśnienia:

Czujniki były rozplanowane w ten sposób, że każdy silnik miał tylko jeden czujnik ciśnienia(posiadały one info
@kochmap: Oddałem i miałem nadzieję, że dostanę w odpowiedzi od firmy chociaż jakieś krótkie podsumowanie co zrobiłem źle, co dobrze. No ale jedyne co dostałem, to info, że "przykro nam i do widzenia" xD
Nawet nie wiem czy chodziło o samo zadanie czy o jakiś inny etap rekrutacji.

Dlatego pytam tutaj o ocenę kodu, bo ciężko mi stwierdzić samemu co robię nie tak.
@Danger40: tak na pierwszy rzut oka:
1. Package: weź je jakoś sensownie ponazywaj
2. pressure_threshold camelCase
3. Ta metoda getBrokenEngines do przepisania (rozbić na mniejsze, w logikę się za bardzo nie zagłębiałem, ale wydaje się że da rade to zrobić lepiej)
4. Do różnych typów sensora zrób sobie enuma a nie po Stringu sprawdzasz typ.
5. IEngineService -> EngineService, EngineService -> EngineServiceImpl
6. if (brokenEngines.isEmpty()) imo niepotrzebne, po prostu zwroc pusta
@Kuriozal: No piszę w Javie dopiero z 4 miesiące, a RESTowe API to w niej pierwszy raz robiłem w sumie xD.

Polecacie jakieś dobre materiały albo kursy, żeby zautomatyzować i ułatwić sobie robotę ?
@Danger40:
- W Javie nie stosuje się konwencji nazewnictwa I przed interfejsem, jest to używane w C# ale raczej nie jest to mile widziane w Javie
- Wybór technologii dość osobliwy ale tutaj nie chcę się za bardzo czepiać ale fajnie używa się spring-boota, który zrobi Ci fatJara, którego z kolei możesz odpalić samym java -jar. Tylko, że tutaj wchodzi spring.
- Nie rób taki rzeczy e.printStackTrace();, do takich rzeczy