Wpis z mikrobloga

Hej, właśnie ukończyłem pewien milestone jeśli chodzi o moje uczenie się #programowanie ( ͡° ͜ʖ ͡°)

Stworzyłem śmieszną małą apkę, która jest symulatorem odbijających się kulek (particle). Pisałem ją sam od zera, wzorując się na poradnikach w internecie oraz koledze @JavaDevMatt ( ͡° ͜ʖ ͡°)

Starałem się w jak najmniejszym stopniu korzystać z gotowców, a każdy pomysł rozwijałem samodzielnie - cel apki to nauka programowania. Muszę powiedzieć, że przez czas jak powstawała wiele się nauczyłem. Apka powstała na 3 osobne systemy, jeden na Androida do czego używałem zwykłego androidowego rysowania, następnie powstała wersja na desktop i JavaFX, teraz zająłem się wieloma platformami na raz i użyłem #libgdx

Ogólnie jestem zadowolony z tego co udało mi się osiągnąć, apka działa i ma funkcjonalność - właściwie może mi posłużyć w przyszłości do bazy pod różne gry.

Byłbym wdzięczny za wszelkie opinie/rady/krytykę zarówno samej aplikacji jak i kodu - nie planuje przy niej dużo siedzieć, aczkolwiek kto wie.. ( ͡° ͜ʖ ͡°)

Link do githuba <===

Oraz do pobrania i odpalenia:

Desktop: https://www.dropbox.com/s/3ksb2bbiqsvgccn/BBS.jar?dl=0

#android: https://www.dropbox.com/s/zy33avj8f4cwzbe/BBS.apk?dl=0

#chwalesie #gamedev #java

Próbować programować dalej?

  • Pewno, dobrze ci idzie 42.9% (82)
  • Dużo do poprawy, wiele błędów, ale jesteś na dobrej drodze 10.5% (20)
  • Słabo, dalsze etapy nauki długo ci zajmą 4.2% (8)
  • Aż żale patrzeć na takie beztalencia biorące się za to, powinna byc licencja.. 12.0% (23)
  • Do uczciwej pracy byś się wziął 30.4% (58)

Oddanych głosów: 191

  • 28
  • Odpowiedz
@sorek: słuchaj

powiem tak

jeżeli nie zacząłeś nauki w wieku 9 lat to rzuć to wszystko bo ci się nigdy nie uda

będziesz tylko rynek psuł niskimi stawkami

! ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@Nicarim: właściwie nie pisze po to by kiedyś zacząć pracować w tym zawodzie (chociaż ostatnio dostałem fajną oferte z Sheffield za £300 za dzień + 1 wymagany dzień pracy w biurze, reszta zdalnie). Bardziej robie to ze względu na hobby i samorozwój - poza tym lubie sam sobie pisać rzeczy, które potem są dla mnie użyteczne i ułatwiają mi coś i oszczędzają czas :) A że wynajęcie programisty w dzisiejszych czasach
  • Odpowiedz
@sorek: Wszystkie zmienne masz praktycznie public. Bardzo kiepski pomysł. Czy jest jakiś powód, że tekstura nie jest w konstruktorze tylko jakoś niejawnie bokiem przez statica?
  • Odpowiedz
@Guillem: tak, klasa Ball z niej korzysta - tak naprawdę dorobiłem ją dość późno gdyż używałem wcześniej renderera, niestety wydajnościowo było słabo. Więc na szybko by nie przekazywać zmiennych dorzuciłem texture :)

Co zmieniają zmienne public? Ustawiłem je dla wygody gdy potem bym chciał korzystać z nich, wiem że powinno się używać setterów i getterów ale dla mnie dodają one niepotrzebnie kod + dostęp prosto do zmiennej jest zwykle szybszy (a
  • Odpowiedz
@sorek: Twój kod jest czytelny tylko dla Ciebie i to teraz. Jeżeli przyszło by Ci się kiedyś z kimś podzielić to były by kłopoty. Dobry kod czyta sie nawet bez komentarzy. Jasne i czytelne nazwy funkcji są podstawą. Mówisz o niepotrzebnym kodzie a stworzyleś dla dwóch intów odzielną klasę ;) "bo ball używa" to nie argument. Przekaz przez konstruktor
  • Odpowiedz
Mówisz o niepotrzebnym kodzie a stworzyleś dla dwóch intów odzielną klasę ;)


@Guillem: o której mówisz?

Dobry kod czyta sie nawet bez komentarzy.

Bardzo bym chciał się nauczyć pisać dobry kod - czym taki się odznacza? :)

"bo ball używa" to nie argument. Przekaz przez konstruktor

Tak czysto w teorii - tak się robi i należy, czy jest ku temu jakiś konkretny powód?
  • Odpowiedz
@sorek:

Co zmieniają zmienne public?

To że jak trochę jeszcze doświadczenia zdobędziesz to się złapiesz za głowę jak to zobaczysz ( ͡° ͜ʖ ͡°)
  • Odpowiedz
To że jak trochę jeszcze doświadczenia zdobędziesz to się złapiesz za głowę jak to zobaczysz ( ͡° ͜ʖ ͡°)


@GromLoL: mogę się złapać za głowę już, jak mi wyjaśnisz o co chodzi ( ͡° ͜ʖ ͡°)
  • Odpowiedz
proponuje zacząć od poczytania o OOP


@GromLoL: to ja proponuję zacząć od pasty ( ͡° ͜ʖ ͡°)

Ja jebię ale mnie #!$%@?ą wszelkiej maści internetowi hobbyści w tym kraju, kopałbym ich jak kurczaki. Chcesz zacząć coś robić, nie wiem #!$%@? łowić ryby, sklejać samoloty, srać psa jak sra, cokolwiek i zadasz #!$%@? na forum pytanie

Witam, chcę zacząć chodzić po bułki. Czy lepiej do biedronki czy do
  • Odpowiedz
@sorek: Chodziło mi o tą Position.stworzyles klasę tylko po to żeby zrobić setter :D a i tka masz zmienne public. Ale nie pamiętam teraz czy array mniejszy narzut pamięci czy nie wiec zostawmy to. Łatwiej się debuguje kod jak masz czytelne konstruktory. I IDE też miło podpowiada co potrzeba. Teraz mogę namieszać ale to pole powstanie zanim konstruktor się wywoła. Może to powodować jakieś anomalie ;) pisze z telefonu wiec sorki
  • Odpowiedz
@sorek: zamiast pasty polecam potem poczytanie o SOLID

pasta słabo bo raczej lepiej żebyś poczytał profesjonalne teksty na ten temat niż moje wypociny
  • Odpowiedz
@sorek: Dobry kod to prosty kod. 4 lata spędziłem w bugfixie javowej aplikacji która miała już na starcie z 4 lata i wielu ojców (i z jedną matkę)
  • Odpowiedz
Chodziło mi o tą Position.stworzyles klasę tylko po to żeby zrobić setter :D a i tka masz zmienne public.

@Guillem: No to mój błąd, zwykle z przyzwyczajenia wale ten public jak leci, mój błąd :)

Ale nie pamiętam teraz czy array mniejszy narzut pamięci czy nie wiec zostawmy to.

Wspomniał to własnie @javadevmatt w jednym ze swoich filmików.

Łatwiej się debuguje kod jak masz czytelne konstruktory. I IDE też miło podpowiada
  • Odpowiedz
@sorek: z takich oczywistych rzeczy mogę zwrócić uwagę że nazywanie zmiennych set czy var jest słabe, bo każda metoda powinna mówić co robi, np. setBallsParam nazwa jest już lepsza.

Do tego możesz poczytać w wzorcu projektowym MVC, przez co twój kod będzie lepszy, bo pomieszanie widoku z logiką aplikacji jest słabe.
  • Odpowiedz
@sorek: Odnośnie Balla. Widzisz to wiesz Ty. Ja wlazłem w kod i zacząłem czytać w "CORE". Myślałem ze entities będzie miało podstawowe klasy bez zależności takich krzyżowych. A spotkał mnie MainEngine używa Ball który używa MainEngine :D oczywiście w Twoim kodzie wszystko działa. Ale sam widzisz szanse na #!$%@? się czegoś :D powodzenia. Koduj dalej!
  • Odpowiedz
Koduj dalej!

@Guillem: @sorek
To trzeba robić - nie ma innej drogi :D żadne czytanie o najlepszych praktykach się moim zdaniem dla początkującego nie sprawdza. Trzeba rozwijać projekt, zakopać się wielokrotnie i dopiero później szukamy, jak pisać, by drugi raz się nie zakopać.

Duży plus, że coś robisz, a nie kupujesz w nieskończoność książek i nie kolekcjonujesz zakładek z tutakmi. ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@JavaDevMatt: dziękuję bardzo :) W ogóle korzystając z okazji chciałbym powiedzieć, że robisz dużo zajebistej roboty swoimi poradnikami :) Bardzo mocno mnie zainspirowałeś i myślę, że nie jestem jedyną osobą, która na tym skorzystała :)
  • Odpowiedz