Coder Social home page Coder Social logo

gravity_assist_simulator_2020's Introduction

Hey You! I'm Johannes 🤠

I am a Computer Science Masters student at University of Helsinki 🏫 Also I'm a software entrepreneur @Ultra Software Oy with my friend. We do all kind of cool stuff with computers, such ass mobile-apps and fullstack projects 💻 And after all, I'm a Junior Software Specialist @CSC-It Center for Science Ltd, where I do development with python for Invenio based software. Also CI/CD + DevOps are one of my main competences (with Docker and Docker compose) 👨🏼‍💻

My languages:

  • C++
  • JavaScript
  • TypeScript
  • Python
  • Java
  • (YAML, JSON, Dockerfile 🐳 etc.)
  • (Some Kubernetes 🛞 knowledge present)


Thank you very many for visiting my profile and if you have a good offer for me, please let me know :)

gravity_assist_simulator_2020's People

Contributors

johanneslares avatar

Watchers

 avatar  avatar

gravity_assist_simulator_2020's Issues

Vertaisarviointi

Latasin projektin 21.4.2020 klo 22:11, joten nämä kommentit ovat projektin senhetkiseen tilaan.

Yleisesti ottaen koodi vaikutti minusta siistiltä, ja projekti on edennyt hyvin. Metodit ja luokat olivat mielestäni sopivan pituisia, mikä selkeytti koodia ja helpotti sen lukemista. Ohjelma myös toimi tehokkaasti isommillakin luolaston koilla, mikä on tämän kurssin kannalta tosi hyvä. Myös kaikki testit menivät läpi. Projekti on minusta oikein järkevä jo näin, varsinkin ottaen huomioon, että se on vielä kesken. Näin ollen suurin osa kommenteistani ovat aika pikkuasioita/pilkunviilausta tai sellaisia asioita, joita projektissa varmaan oli muutenkin suunnitelmissa toteuttaa vielä seuraavilla viikoilla.

App-luokassa oli selkeät nimennät, mikä oli tosi hyvä. Jos haluaisi, niin luokan voisi ehkä jakaa kahteen luokkaan niin, että tekstikäyttöliittymä olisi erillään muusta toiminnallisuudesta.

Myös Room-luokassa nimentä oli selkeä, joten nimennästä selvisi jo toiminnallisuus, vaikkei Javadocia tai kommentteja ollutkaan. Ehkä kuitenkin luokalle voisi luoda jonkin lyhyen Javadocin, joka kertoisi luokan tarkoituksen, niin sen näkisi siitä heti. Myös muuttujien x ja y ja mapX ja mapY ero tulisi ehkä silloin paremmin esille. Sellainen pieni tyyliseikka tuli mieleen, että sellaiset metodit, jotka on kirjoitettu kokonaan yhdelle riville (esim. public int getWidth() { return this.width; }), voisi halutessaan laittaa sisältö eri riville kuin sulkeet. Tämä on tosi pieni asia, mutta yleensä Checkstyle herjailee tämäntyylisistä.

Network-luokassa ensimmäisissä metodeissa oli hyvät Javadocit, jotka auttoivat koodin ymmärtämisessä. Kaikki metodit oli nimetty selkeästi, joten nimestä näki niiden idean. Ehkä pariin viimeiseenkin metodiin voisi kuitenkin lisätä Javadocin, niin hahmottaminen olisi vielä helpompaa. Network-luokassa näyttäisi ainaki vielä olevan käytössä ArrayList. Se olisi varmaan hyvä korvata jollain omalla listatoteutuksella, niin ei tarvitsisi käyttää Javan tietorakennetta. Mutta näin varmaan oli aikomuksenakin tehdä ehtiessä. Tuota voisi kanssa tutkia, että olisiko tuo luokassa käytetty Javan oma random ThreadLocalRandom mahdollista korvata jollain itsetehdyllä random-toteutuksella.

Leaf-luokassakin metodien nimentä oli tosi selkeää. Ehkä sinne voisi kuitenkin lisätä vähän Javadocia esimerkiksi luokan alkuun, jotta näkisi nopeasti, mikä luokan tarkoitus on. Luokassa on käytetty tuota Math.randomia. Voisi ehkä tutkia, saisiko sen korvattua itsetehdyllä randomilla, kun ilmeisesti tällä kurssilla olisi suositeltavaa, että randomitkin olisivat itsetoteutettuja.

Tile ja TileType olivat molemmat tosi siistejä ja selkeitä. Niiden metodien nimentä ja Javadoc olivat hyvät, joten niistä ymmärsi heti niiden tarkoituksen. Samoin luokassa AngledPathPositions oli selkeä Javadoc, joka selitti hyvin muuttujat. Jos siitä nyt jotain voisi keksiä, niin siinäkin se tosi pieni tyyliseikka, että ehkä ne putkeen yhdelle riville kirjoitetut metodit voisi muotoilla niin, että sisältö on eri rivillä kuin sulkeet. Mutta tämä voi olla makuasiakin.

Kaikki kirjoitetut testit menivät läpi. Luolageneraattori.map -luokan testit olivat kaikki myös järkeviä, ja testasivat järkeviä asioita. Testejä voisi kuitenkin ehkä tehdä lisääkin. Vaikka esimerkiksi Room-luokkaa tuleekin testattua muiden testiluokkien testien mukana, niin voisi kuitenkin sillekin olla oma testiluokka ja muutama testi, jotta jos siihen ilmestyy jokin virhe, niin se on helpompi paikallistaa. Jos on aikaa, niin olemassa oleviin testiluokkiin voisi myös lisätä testejä. Nyt esimerkiksi Network-luokan rivikattavuus vaikuttaisi olevan 12%, joten sen testaamattomille metodeille, kuten createPaths(), voisi ehtiessä luoda testejä.

En löytänyt projektista määrittelyä checkstylelle. Se voisi ehkä olla ihan hyvä lisätä, niin helpottaisi koodin laadun seuraamista. Vaikka kyllä koodin laatu vaikuttaa ihan hyvältä ilmankin :)

Suorituskykytestausta varmaan voisi lisätä tässä vaiheessa kurssia, jos vain ehtii. Ainakin esimerkkisovelluksessa oli tätä varten toteutettu ihan oma Tester-luokka.

Mutta siis, kaiken kaikkiaan toteutettu toiminnallisuus näyttää tosi hyvältä. Metodien koot ja nimentä ovat hyviä ja selkeitä koko projektissa. Toteutetut testit menevät läpi, ja luolastot näyttävät mielestäni hienoilta jo nyt, vaikkei niissä vielä seiniä olekaan.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.