Pytanie rekrutacyjne na Juniora ...

0

Takie ototo przykładowe zadanie dostałem do przerobienia przed rozmową rekrutacyjna i przyznam sie nawet nie wiem od czego zacząć. Interfejs ArrayList? Za wszelką pomoc dziekuje serdecznie.
Zadanie

  1. Zaprojektuj interfejs systemu obsługującego mecze drużyn piłkarskich.Interfejs powinien operować metody umożliwiające planowanie meczy między drużynami , przechowywanie ich wyników, wyliczanie i prezentowanie statystyki dla poszczególnej drużyny, (np. ile meczy wygranych, ile przegranych, ile remisów, mecze zaplanowane lub przeprowadzone pomiędzy zadanymi datami.Możesz też zaproponować inne metody.
  2. Zaimplementuj także metody umożliwiające tworzenie list rankingowych drużyn wg. różnych kryteriów np. liczby wygranych meczy, alfabetycznie po nazwie drużyny.
  3. Zaimplementuj interfejs oraz napisz testy jednostkowe dla tego systemu.

Rozważ użycie klas : Mecz, Drużyna, Zawodnik, wykorzystaj kompozycje, rozważ użycie dziedziczenia.
Rozważ wykorzystanie typu enum do reprezentacji wyniku meczu.

0

a) Z czym dokładnie masz problem? Dostałeś nawet wskazówki jakie klasy masz stworzyć i co masz użyć.
b) Nie widzę, aby był wymóg aplikacji webowej więc możesz to zrobić konsolowo.
c) Najpierw zrób brzydko - "aby działało", potem to będziesz upiększać.

edit: Żeby nie było, mój komentarz nie jest zgryźliwy. serio pytam z czym dokładnie masz problem. Nie oczekuj, że dostaniesz od nas gotowe zadanie. Łatwiej by było jakbyś wypunktował swoje przemyślenia i swoje obawy jak Ty to widzisz.

1

Zabrałbym się za to w taki sposób, że stworzyłbym klasę Mecz. KlasaMecz powinna zawierać dwa obiekty Drużyna, natomiast klasa Drużyna listę zawodników (obiektów klasy Zawodnik). Tworzenie list rankingowych zapewne ma się opierać o comparatory różnego typu. Poczytaj o https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html. Ranking opierać o wyniki pobierane z tabeli z bazy danych z meczami.

0
Arbiej napisał(a):

Powinienem stworzyc interfejs ArrayList żeby to działalo?

Dlaczego tak myślisz? Skąd Ci to przyszło do głowy? Wypunktuj proszę swoję przemyślenia dotyczące tego projektu i dodaj do niego swoje obawy. Postaramy Ci się pomóc ale nie w sytuacji gdy włożymy w to więcej niż Ty ;)

0

Masz zdefiniować listę metod pozwalających na modyfikację danych według założeń projektu, a później zapisać ją w formie Java interface.

interface Score{
MatchId scheduleMatch(Team host, Team guest, Instant date);
void setResult(MatchId matchId, int goalsHost, int goalsGuest);
.....
}

Do tego oczywiście trzeba rozpisać klasy danych występujące w tych metodach. Na koniec zaimplementować ten interface.

0

Może jednak zacznij od stażu a najlepiej książki

2

Powinienem stworzyc interfejs ArrayList żeby to działalo

Obawiam sie ze jesteś bardzo daleko od poziomu żeby iść na jakąkolwiek rozmowę rekrutacyjną. Interfejs List istnieje od dawna, klasa ArrayList też. Jednocześnie nie mają one zupełnie nic wspólnego z twoim zadaniem. Tzn może gdzieśtam w kodzie trzeba będzie użyć listy, ale jest to zupełny szczegół implementacyjny.
Dostałeś zadanie zaprojektuj samochód a pytasz się nas czy powinienem pokolorować to na czerwono.

Twoim zadaniem jest stworzyć biznesowy interfejs (albo raczej zestaw interfejsów) plus zestaw klas domenowych, które reprezentują podany problem. Masz to też zaimplementować, wiec realnie twoim zadaniem jest napisać program który umożliwia: planowanie meczy między drużynami , przechowywanie ich wyników, wyliczanie i prezentowanie statystyki dla poszczególnej drużyny, (np. ile meczy wygranych, ile przegranych, ile remisów, mecze zaplanowane lub przeprowadzone pomiędzy zadanymi datami.
Może ten interfejs w poleceniu cie zmylił, nie wiem, ale generalnie masz napisać program z takimi funkcjami jw.

0

Dzięki za porady i uszczypliwości rozmowe sobie daruje.

0

Krytyka i porady, które mają swoje podstawy to uszczypliwości?

0
Arbiej napisał(a):

Dzięki za porady i uszczypliwości rozmowe sobie daruje.

Dostałeś solidne porady jak się za to zabrać. Czego oczekiwałeś - że forumowicze napiszą za Ciebie aplikację? Czy, że każdy doda kawałek kodu od siebie, Ty to posklejasz w całość i będziesz miał z głowy? To jest dość prosty task, zwłaszcza jeżeli możesz go rozwiązać w domu. Naprawdę, w pracy będą czekały na Ciebie większe wyzwania, czasem bardziej skomplikowane, często usytuowane w ogromnym systemie i będziesz musiał to ogarnąć. Musisz dużo praktykować, bo po prostu na stanowisko Junior xxx Developer nie dostaje się z dobrymi chęciami nauki w pracy. Trzeba już coś umieć.

0

Miałeś na studiach inżynierię oprogramowania, gdzie rysowałeś diagram klas i tym podobne? Możesz to zrobić na takiej samej zasadzie, a później wygenerować i uzupełnić kod lub przynajmniej rozrysować graficznie projekt, aby widzieć co z czym się łączy :)
Może nie jest to zadanie, które zrobisz w 1 godzinę (przynajmniej ja, bo lubię eksperymentować:) ), ale dużo się przy tym nauczysz albo przypomnisz. Grunt to to, aby wszystko poukładać w logiczną całość, a później to już z górki.

A i podeślij kod, jeśli już coś zrobisz - sprawdzimy i powiemy czy jest dobrze :)
Powodzenia!

PS: Nie poddawaj się, bo widziałem w życiu masę ludzi, którzy byli blisko celu a i tak odpuszczali.

0

@Arbiej: Niestety potrzeba sporo czasu poświęcić na praktykę w domu, żeby zacząć w ogóle przymierzać się do komercyjnego wykonywania zawodu programisty. Ja osobiście uczę się Javy od lutego tego roku i dopiero teraz zacząłem uderzać z CV na stanowiska juniorskie. A i tak moja wiedza jest znikoma, o czym przekonuję się na każdym kroku, napotykając nowe tematy, featury itd. Zadanie, które opisałeś w pierwszym poście nie tylko wymaga znajomości składni i biblioteki standardowej Javy, ale wymusza opracowanie jakiejś architektury dla tych klas, które są tam wymienione. Skoro masz tak krótki staż w nauce programowania, to ani trochę nie jest powodem do ujmy fakt, że nie jesteś w stanie sobie poradzić z wymyśleniem koncepcji na to zadanie. Na spokojnie ćwicz sobie składnię języka, zapoznaj się z kolekcjami, klasami, interfejsami i ogólnie fundamentami programowania obiektowego i zabierz się za to zadanie za jakiś czas. Zobaczysz, że wszystko stanie się takie jakieś łatwiejsze do ogarnięcia ;)

0
piotrpo napisał(a):

Masz zdefiniować listę metod pozwalających na modyfikację danych według założeń projektu, a później zapisać ją w formie Java interface.

interface Score{
MatchId scheduleMatch(Team host, Team guest, Instant date);
void setResult(MatchId matchId, int goalsHost, int goalsGuest);
.....
}

Do tego oczywiście trzeba rozpisać klasy danych występujące w tych metodach. Na koniec zaimplementować ten interface.

Mógłbyś podać jak będziesz miał chwile czasu przykładowom implementacje void setResult , nie za bardzo rozumiem te matchid jak to ustawić tam

1 użytkowników online, w tym zalogowanych: 0, gości: 1