Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

Game of Life - Automat komórkowy - project MERN - Review

$
0
0

Witam serdecznie,

postanowiłem stworzyć projekt który pozwoliłby mi na usystematyzowanie dotychczasowej wiedzy a więc wykorzystujący Mongo Express React Node. Mój wybór padł na zrealizowanie automatu komórkowego Game of Life, nie będę się nad tym rozwodził bo w zakładce About można o tym poczytać. W "grze" można wczytywać struktury już zapisane przezemnie, tworzyć własne struktury a po zalogowaniu także zapisywać je do local storage, poza tym można zmieniać ilość pożądanych fps i wielkość planszy. W trakcie tworzenia pojawiało się w mojej głowie wiele pytań m.in.:

1) Memory leaks- w dokumentacji express-session jest napisane żeby go nie używać w produkcji bo używa MemoryStore a ten powoduje "memory leaks", dlatego użyłem MongoStore aczkolwiek nie do końca to rozumiem. Na msdn jest napisane, że każda aplikacja musi "oczyszczać" dynamicznie alokowaną pamięć kiedy kończy jej używać a jeśli tego nie robi to wtedy właśnie pojawia się memory leak. Natomiast z dawnej nauki c++ pamiętam, że określało się z góry wielkość tablicy a jeśli się nie wiedziało jaka tablica jest potrzebna to wtedy właśnie używało się dynamicznie alokowanej pamięci. Natomiast w js nie określamy wielkości tablicy, czyli co, zawsze używa się dynamicznie alokowanej pamięci i ona jest jakoś automatycznie oczyszczana? Jeśli pisze tu herezje to wybaczcie ale trochę się pogubiłem w tym temacie i prosiłbym o wyjaśnienie.

2) Optymalizacja- na moim kompie (i5-6200U, 8gb ram, dysk ssd) i przeglądarce Google Chrome ver. 59.0.3071.115 przy największej planszy (50x60) chodzi z największa możliwą do ustawienia prędkością- 20fps. Natomiast już na Mozilli ver. 54.0.1 wydajność drastycznie spada (max. 10fps), już nawet na Microsoft Edge jest więcej (~15fps). Dlatego chciałem zapytać czy to jest moja wina jako programisty? Powininem to jakoś zoptymalizować? W trakcie pisania kodu starałem się zwracać uwagę na optymalizację i np. wiązałem istotne dla działania silnika gry funkcje z kontekstem wywołania już w konstruktorze zamiast używać arrow functions bo czytałem, że to zwalnia program, tak samo w webpack.prod.config.js dodałem pluginy które mają pomóc zoptymalizować apke. Na co jeszcze powinienem zwrócić uwagę?

3) Testy- czy na tym poziomie zawracać sobie wgl tym głowę? Próbowałem z Mocha i Chai ale konfiguracja dla React'a wydawała mi się strasznie skomplikowana.

4) PropTypes- czy konieczne jest ich określanie dla każdego komponentu React? To bardzo uciążliwe..

Zdaje sobie sprawę, że kod się trochę rozrósł a każdy z Was ma swoje rzeczy do roboty i nie będzie mi wszystkiego przeglądał lecz będę wdzięczny za każdy feedback, co mam nie tak w kodzie, co mógłbym zrobić lepiej, co poprawić, a może jakieś rady czego teraz powinienem się nauczyć? Co jeszcze potrzeba do pracy jako junior-fullstack-webdeveloper? Z góry dziękuję za każdą opinię, poradę!

Linki:

Github repository

App


Viewing all articles
Browse latest Browse all 21942

Trending Articles


TRX Antek AVT - 2310 ver 2,0


Автовишка HAULOTTE HA 16 SPX


POTANIACZ


Zrób Sam - rocznik 1985 [PDF] [PL]


Maxgear opinie


BMW E61 2.5d błąd 43E2 - klapa gasząca a DPF


Eveline ➤ Matowe pomadki Velvet Matt Lipstick 500, 506, 5007


Auta / Cars (2006) PLDUB.BRRip.480p.XviD.AC3-LTN / DUBBING PL


Peugeot 508 problem z elektroniką


AŚ Jelenia Góra