Proces nauki / gra snake'a napisana w JS - prośba o krytykę kodu oraz wskazówki co do procesu nauki.

0

Cześć,

Od kilku miesięcy uczę się w kierunku web developmentu (front end). Obecnie skupiam się na javascripcie - niedawno przerobiłem swoją pierwszą książkę ("Headfirst javascript programming") i zabrałem się za pisanie pierwszej nieco większej aplikacji samodzielnie (gra w snake'a).

kod -https://github.com/Vjii/snake

live - https://vjii.github.io/snake/

Wczoraj ją skończyłem ale zabrało mi to naprawdę mnóstwo czasu - i w wielu przypadkach myślę, że niepotrzebnie. Na przykład wczoraj spędziłem ok ~4 godziny na korekte jednego naprawdę wydaje mi się prostego buga (wciśnięcie entera miało służyć tylko do startu gry a powodowało również restart gry ponieważ miałem dwa warunki w instrukcji warunkowej, która wykrywała entera - przez co event.preventDefault() na klawisz enter w moim event listenerze nie działało). Starałem się testować każdy element zaraz po napisaniu go ale jak miałem już dużo kodu to zacząłem się z tym gubić. W tym przypadku, musiałem spędzić trzy godziny na poceniu się, skanowaniu kodu, googlowaniu i dalszemu poceniu się żeby w końcu zauważyć prostą przyczynę problemu - i to tylko jeden przykład, było więcej podobnych sytuacji. Co jest ok - lubię rozwiązywać problemy - ale chce pisać kod sprawnie i efektywnie.

Stąd pierwsze pytanie, co mogę zrobić żeby zminimalizować ilość tego typu sytuacji w przyszłości?

Drugie pytanie - co muszę zrozumieć/zrobić żeby usprawnić proces pisania aplikacji, zminimalizować wszelkie straty czasu, błędy w organizacji, planowaniu itd.? Jakie są wasze sposoby na to?

Ostatecznie, byłbym wdzięczny za ocenę/krytykę kodu. W najbliższym okresie zamierzam ćwiczyć pisząc szereg prostszych aplikacji (karuzela, to-do listy itd.), potem przejść do poważniejszych rzeczy i wykorzystywać na pisanych stronach. Biorąc pod uwagę mój obecny kod, na czym powinienem się skupić?

Z góry serdeczne dzięki za wszelkie wskazówk/rady/komentarze :) !

3

@J0hn

Stąd pierwsze pytanie, co mogę zrobić żeby zminimalizować ilość tego typu sytuacji w przyszłości?

Zacznij pisać testy automatyczne.

Drugie pytanie - co muszę zrozumieć/zrobić żeby usprawnić proces pisania aplikacji, zminimalizować wszelkie straty czasu, błędy w organizacji, planowaniu itd.? Jakie są wasze sposoby na to?

Pisać dużo kodu i uzupełniać ciągle wiedzę - innego sposobu nie ma.

Ostatecznie, byłbym wdzięczny za ocenę/krytykę kodu.

Biorąc pod uwagę mój obecny kod, na czym powinienem się skupić?

Na dalszym poznawaniu języka (w nowym standardzie, jak już pisałem) i klepaniu kodu.

PS
@Desu miał fajnego posta z dobrymi materiałami, może podlinkuje (bo ja nie mogę znaleźć), zacznij od tego -> https://github.com/getify/You-Dont-Know-JS

PPS
Jedzenie potrafi się pojawić pod wężem, co nie powinno mieć miejsca.

2

Tutaj jest pełna lista, ale kluczowe są trzy pierwsze punkty (chociaż zachęcam do nauki reacta i reduxa). Trzeci punkt zawierający link do kursu na Udemy to uzupełnienie książki YDKJS (z punktu drugiego). Mój kolega, któremu to poleciłem stwierdził, że kurs na Udemy jest super, bo autor troche inaczej tłumaczy niektóre rzeczy niż Kyle Simpson, dzięki czemu można uzysać pełne zrozumienie tematu.

Link do kursu JavaScript: Understanding the Weird Parts z 98% kuponem rabatowym

Link do kursu ES6 Javascript: The Complete Developer's Guide z 98% kuponem rabatowym - czyli wprowadzenie do nowych ficzerów ES6

Link do całego spisu ficzerów ES6

Polecam też w późniejszym okresie zapoznać się z tym:

To jest lista propozycji odnośnie tego, co może wejść w kolejnych wersjach javascriptu. Z uwagi na babeljs itd. warto śledzić, zwłaszcza te z najwyższym numerkiem, bo np. Object Rest/Spread Properties for ECMAScript jest szeroko używane z tego co zauważyłem.

Możesz też zacząć czytać Medium.

Kanały na YT: funfunfunction

Z typowo przeglądarkowego js'a polecam to: Document and Events. To w zasadzie must read.

How to Udemy
Na udemy co miesiąc są inne kupony rabatowe, które można znaleźć w sieci. Jak dopiszesz do URL'a z kursem kupon to masz za 10 Euro. W tym miesiącu znalazłem tylko to: ?couponCode=FEBUDEMY - on nam daje 90% na każdy kurs, ale jak pogrzebiesz z 10 minut to znajdziesz i za 10 Euro (chyba couponCode=POCKET10 to ten za 10 Euro). Wystarczy wpisać pełna nazwa kursy + coupon code

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