Praca magisterska - Java

Praca magisterska - Java
HE
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Kraków
  • Postów:233
0

Muszę powoli myśleć o pracy magisterskiej i tutaj prośba o radę.
Na inżynierce pisałem o androidzie, napisałem aplikację itp.
A teraz:
Myślałem żeby napisać ogólnie o tworzeniu aplikacji w javie ale z naciskiem na frameworki narzędzia które mogą usprawnić pracę.
opcja 1 - Zastanawiam się czy skupić się jedynie na aplikacjach webowych(to mnie najbardziej interesuje) chciałem też wspomnieć coś o kontenerach serwletów, serwerach aplikacji itp.?

opcja 2 - Czy bardziej ogólnie od desktopowych przez webowe do androida(coś o phonegap itp)?

Aplikacji nie myślałem raczej pisać tylko skupić się na samym procesie tworzenia i jak go można usprawnić. Chyba, że jakaś prosta aplikacja żeby zademonstrować jakieś rzeczy typu spring mvc/mapowanie obiektowe czy cos takiego.

Co myślicie? Jakieś rady?

edytowany 1x, ostatnio: Hepek
AD
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 lat
  • Postów:67
0

napisać ogólnie o tworzeniu aplikacji w javie

Co masz tutaj konkretnie na myśli? Praca magisterska to projekt badawczy, zatem musisz porównać coś z czymś.

skupić się na samym procesie tworzenia i jak go można usprawnić

Masz jakiś konkretny pomysł w jaki sposób usprawnisz proces tworzenia aplikacji? Z czym to porównasz, i jak zamierzasz określić metrykę która stwierdzi która metoda jest lepsza?

xfin
  • Rejestracja:ponad 11 lat
  • Ostatnio:8 miesięcy
  • Lokalizacja:Genewa
  • Postów:597
0

@Hepek
Dokładnie tak jak post wyżej - nie możesz napisać ''ogólnie o tworzeniu aplikacji w javie ale z naciskiem na frameworki", tylko zrobić normalną pracę badawczą - z ogólnie postawioną tezą, badaniami i prezentacją wyników, a na koniec odniesieniem się do tego wszystkiego.

Jak już gdzieś kiedyś pisałem, praca magisterska może i powinna mieć charakter:

  • badawczy, polegający na dokładnym przedstawieniu i opisie odkrytych zależności / nowego zjawiska,
  • innowacyjno-projektowy, czyli zaproponowanie nowych rozwiązań praktycznych w jakiejś konkretnej działce nauki/przemysłu,
  • systematyzujący,
  • czysto teoretyczny.
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

@adwy akurat tutaj ten aspekt badawczy (który zresztą wcale nie jest w mgr taki konieczny) widać gołym okiem, bo on nie chce napisać aplikacji (co jest dobre na inż) tylko chce zrobić przegląd/porównanie istniejących narzędzi.

@Hepek generalnie ok, ale sugerowałbym to jakoś mocno zawęzić, tzn wybrać konretną klasę frameworków i konkretne zastosowanie. To co napisałeś jest zbyt ogólne. Nie pisze się np. pracy "porównanie systemów składowania danych" tylko np. "porównanie/przegląd dokumentowych baz danych dla rozproszonych aplikacji wysokiej dostępności" i robi się to na przykładzie prostego systemu tego typu.
I to jest to co @xfin określił jako "systematyzujący".


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 2x, ostatnio: Shalom
HE
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Kraków
  • Postów:233
0
Shalom napisał(a):

@Hepek generalnie ok, ale sugerowałbym to jakoś mocno zawęzić, tzn wybrać konretną klasę frameworków i konkretne zastosowanie. To co napisałeś jest zbyt ogólne. Nie pisze się np. pracy "porównanie systemów składowania danych" tylko np. "porównanie/przegląd dokumentowych baz danych dla rozproszonych aplikacji wysokiej dostępności" i robi się to na przykładzie prostego systemu tego typu.
I to jest to co @xfin określił jako "systematyzujący".

Jeśli chodzi o porównania to pomysł był taki, że opiszę i dam jakieś przykłady jak wyglądałoby zapisywanie danych za pomocą JDBC a jak to można zrobić za pomocą jakiegoś ORMa. Jeśli chodzi o przegląd frameworkow to np biorę na tapetę Springa i na temat jego projektów coś napisać... Generalnie to mam bardzo wczesny zarys "gdzieś dzwoni ale nie wiem w którym kościele" :D i dlatego pytam Was o radę.

Więc może tak - zagadnienia które chciałbym w pracy umieścić -szeroko pojęte tworzenie aplikacji webowych w javie, serwery aplikacji, kontenery serwletów, JPA, Spring, maven... - jak to zebrać do kupy żeby miało ręce i nogi? Nie mam też problemu z tym żeby coś napisać do tego.

HE
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Kraków
  • Postów:233
0

A jak bym napisał np. "Przegląd narzędzi i frameworków użytecznych przy tworzeniu aplikacji (wysokiej dostępności) w języku Java" tą wysoką dostępność nie wiem czy dorzucić jak napisał @Shalom brzmi to dobrze jeśli to uwzględnić to chyba pasuje z rozdział napisać ogólnie o tej właśnie wysokiej dostępności coś o klastrach itp ?
I w pracy pisałbym:

  • Wstęp - najważniejsze informacje o języku Java
  • (wysoka dostępność-założenia,rozwiązania itp)??
  • Zarządzanie zależnościami (Maven)
  • Serwery aplikacji a kontenery serwletów
  • JPA(Hibernate,Ecllipselink) i od tej sekcji tworzenie prostej aplikacyjki na przykład z spring rest/hibernate czy coś takiego.
  • Spring(Core,Security,Boot,Data) - tu odnośnie boot myślałbym wspomnieć o tym, że można mieć aplikację w jarze w embeddedowanym Tomcatem to chyba ma związek z wysoką dostępnością - mam rację? Każdy user odpala sobie aplikacje u siebie i jedynie łączy się np z centralną bazą?
  • Podsumowanie/wnioski - frameworki przyspieszają pracę itd itp....

Było by coś z tego? :)
mile widziane wszelkie sugestie

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Moim zdaniem to co chcesz zrobić jest zbyt ogólne i się przez to nie nadaje.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
HE
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Kraków
  • Postów:233
0
Shalom napisał(a):

Moim zdaniem to co chcesz zrobić jest zbyt ogólne i się przez to nie nadaje.

Jak Ty byś widział pracę o podobnej tematyce?

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
2

No w tym całym twoim planie brakuje... twojego wkładu. Bo póki co zawarłeś tam sobie "przegląd dziedziny" a to tylko fragment pracy. Brakuje najważniejszego, czyli tego co TY masz zrobić -> np. porównania czegoś względem jasnych kryteriów na jasnych przykładach. A jak zaczniesz myśleć o takich porównaniach to zauważysz że nie bardzo da się to robić dla wszystkich możliwych frameworków i dla wszytkich możliwych przypadków.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
xfin
  • Rejestracja:ponad 11 lat
  • Ostatnio:8 miesięcy
  • Lokalizacja:Genewa
  • Postów:597
2

Jeśli chcesz żeby to była magisterka, a nie inżynierka to akurat w tym przypadku ta wysoka dostępność będzie potrzebna, bo to niejako ten wspomniany element badawczy.
Ale wtedy rozdziały podzieliłbym tak:
1.

Wstęp - najważniejsze informacje o języku Java
A gdzieżby tam. O Javie to możesz conajwyżej paragraf w rozdziale Implementacja napisać i oczywiście pokazać, że to jest Twój język implementacyjny.
We wstępie z reguły literatura: w tym przypadku właśnie o wysokiej dostępności, mechanizmach niezawodności w oprogramowaniu przy użyciu Javy itp.

(wysoka dostępność-założenia,rozwiązania itp)??
Si. Taki rozdział to zazwyczaj razem z pokazaniem i przedstawieniem tzw. State-of-the-Art - które frameworki, w jakich przypadkach, które komercyjne aplikacje ich używają (albo w jakich instytucjach są używane).

  1. Tutaj kwestia wymagań Twojej pracy jako dzieła - co chcesz zrobic, jakie są wymagania i kryteria do spełnienia itp.

Zarządzanie zależnościami (Maven)
Serwery aplikacji a kontenery serwletów
PA(Hibernate,Ecllipselink) i od tej sekcji tworzenie prostej aplikacyjki na przykład z spring rest/hibernate czy coś takiego.
Spring(Core,Security,Boot,Data) - tu odnośnie boot myślałbym wspomnieć o tym, że można mieć aplikację w jarze w embeddedowanym Tomcatem to chyba ma związek z wysoką dostępnością - mam rację? Każdy user odpala sobie aplikacje u siebie i jedynie łączy się np z centralną bazą?

Dla mnie to jest rozdział "implemetacja", gdzie po prostu omówisz z grubsza technologie, których używasz. Niemniej nadal nie jest to sedno pracy, tylko przedstawienie środowiska testowego.

I najważniejsze - ostatnie dwa rozdziały:

  1. Badania/porównanie/metodyka - coś sobie założyłeś np. to porównanie frameworków. No to teraz wypadałoby mieć przynajmniej dwie różne aplikacje, na których przeprowadzisz eksperymenty. Będziesz używał generatora ruchu? Możesz dorzucić monitorowanie dostępności tych serwisów. Kiedy który się wysypie? Dlaczego? Jak temu przeciwdziałać? Może masz jakieś swoje rozwiązanie na specyficzny problem? To jest clue pracy.

  2. P

Podsumowanie/wnioski - frameworki przyspieszają pracę itd itp....

Nope ;) Jak robisz porównanie, to tutaj idą wnioski z porównania tychże narzędzi i frameworków. Nie piszesz o ułatwieniu pracy, tylko o ich potencjale w pisaniu aplikacji wysokiej dostępności i czym i jak bardzo różnią się między sobą.

Czyli to jest miejsce na "systematyzację wiedzy" i krytyczną ocenę swojej pracy.

AD
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 lat
  • Postów:67
0

Co ma wspólnego Maven/Spring/JPA z wysoką dostępnością? Wydaje mi się że w tym przypadku powinieneś porównać np. technologie load balancingu. W ramach badania mógłbyś mierzyć ilość żądań na sekundę w różnych technologiach i jak to się skaluje gdy zwiększasz ilość serwerów. Tutaj wkładem własnym byłoby przygotowanie środowiska do pomiarów, czyli implementacja testowych aplikacji w wybranych technologiach, dane testujące, przygotowanie sprzętu itp.

edytowany 1x, ostatnio: adwy
HE
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Kraków
  • Postów:233
0

Faktycznie frameworki typu spring itp a wysoka dostępność się tu nie zgadza. Jedynie to by mogło być chyba jako dodatek gdy implementuje przykładową aplikacje. A jeśli chodzi o dostępność to chyba bardziej kwestia serwera niż samej javy więc przykładowo kilka nodeów tomcata + httpd jako loadbalancer i wtedy np jeden node obsłuży tyle requestów a jak dodamy kolejny to więcej itp?
btw. zna ktoś darmowy generator ruchu? Miałem styczność jedynie z packet senderem ale on ma dosyć ograniczone możliwości

HE
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Kraków
  • Postów:233
0

Po wstępnej rozmowie z promotorem ustaliliśmy, że będę pisał generalnie o rozwiązaniach wykorzystywanych w zapewnianiu wysokiej dostępności i testowaniu takich aplikacji.
Czy ktoś ma namiary na jakąś dobrą literaturę w tym temacie? Chodzi mi zarówno o rozwiązania, dobre praktyki jak i testy jakie się stosuję - wiem, że można użyć JMetera ale czego jeszcze można użyć i co i w jaki sposób testować oprócz wydajności?

1
Hepek napisał(a):

Po wstępnej rozmowie z promotorem ustaliliśmy, że będę pisał generalnie o rozwiązaniach wykorzystywanych w zapewnianiu wysokiej dostępności i testowaniu takich aplikacji.
Czy ktoś ma namiary na jakąś dobrą literaturę w tym temacie? Chodzi mi zarówno o rozwiązania, dobre praktyki jak i testy jakie się stosuję - wiem, że można użyć JMetera ale czego jeszcze można użyć i co i w jaki sposób testować oprócz wydajności?

Jmeter to przezytek, sprawdz Gatlinga.

HE
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Kraków
  • Postów:233
0

Dzięki - sprawdzę. A jeśli chodzi o testy to na jakie sposoby można taką aplikację testować oprócz testów obciążeniowych?

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)