Git Product home page Git Product logo

drinkkireseptitietokanta's Introduction

drinkkireseptitietokanta's People

Contributors

jurintal1 avatar kalleilv avatar qzuw avatar heikkihei avatar

drinkkireseptitietokanta's Issues

2. koodikatselmointi

Hei,

tässä 2. koodikatselmointiin liittyen palautetta. Katselmointi tehty 24.8. n. klo 22.

Aloitin lukemalla harjoitustyön aiheen, reseptiarkistot taitavat olla aika suosittuja aiheita! :) Testasin myös sovellusta selaimessa, ja sivut näyttivät hyvin selkeiltä ja kaikki mikä toimii, näyttäisi toimivan oikein. Tässä siis vain pari pientä sivuhuomiota sivuista. Huomasin, että navigaatiopalkissa puuttuu ään pisteet Lisaa resepti-linkistä, niin käy itsellekin usein kun kirjoittaa koodin ilman ääkkösiä ja sitten unohtaa ne ”oikeasta tekstistä” myös. Lisäksi lisäyspäivästä kannattaa poistaa liika tarkkuus (sen voi käsittääkseni tehdä joko ihan tietokantaan tallettaessa tai sitten myöhemmin trimmaamalla hakutulosta).

Committisi ovat hyvin nimettyjä ja niistä näkee sovelluksen kehittymisen. On ehkä makuasia, kannattaisiko committeja tehdä useammin, niin että työn vaiheet jakautuisivat vielä pienempiin kokonaisuuksiin versionhallinnassa.

Metodit ja luokat ym. olivat kaikki selkeästi yhdellä kielellä englanniksi. Koodi oli hyvin luettavaa, ja siinä pysyi helposti mukana. Muutamassa malliluokassa (esim. recipe.php) sisennykset vähän hyppivät ainakin tässä GitHubin esikatselussa, jos ne korjaa niin sitten luettavuus paranee entisestään. helloworld.html ja hello_word_controller.php eivät taida tehdä enää sovelluksessa mitään? Jos näin oli, niistä ehkä uskaltaa luopua.

Sovelluksen rakenne näyttää kaiken kaikkiaan hyvin suunnitellulta, ja aika valmiiltakin jo, hieno juttu!

Koodikatselmointi

Ladattu: 10/08/2017 23:45

Projekti näyttää olevan sopivan laaja ja hyvillä raiteilla. Tietokannat on toteutettu fiksusti, ja monesta moneen -yhteyskin löytyy. Ulkoasu ja monet toiminnot selkeästi vielä vaiheessa, ei niistä sen enempää.

Koodi on pääosin selkeää ja puhdasta, mikä onkin oletettavaa, kun se on selvästi kirjoitettu tsohan mallien pohjalta. Jokaisella luokalla on oma, selkeä tehtävänsä. Asiat on nimetty järkevästi, ja niistä näkee suoraan, mitä ne tarkoittavat. Funktiot eivät ole liian pitkiä, eivätkä tee ylimääräisiä asioita.

Sisennykseen voisi tosin kiinnittää huomiota. Esim. /views/recipe/recipeList.html:

<thead>
<tr>
   <td>Juoma</td>
   <td>Lisääjä</td>
   <td>Lisäyspäivä</td> 
</tr>
</thead>

Olisi siistimpi, kun kaikki sisäkkäiset elementit on erikseen sisennetty:

<thead>
   <tr>
      <td>Juoma</td>
      <td>Lisääjä</td>
      <td>Lisäyspäivä</td> 
  </tr>
</thead>

Myös /controllers/recipe_controller.php on paikoin oudosti sisennetty:

	        public static function store() {												
			$params = $_POST;
			Kint::dump($params);
			$recipe = new Recipe(array(			
		        'author' => '1',  //korjataan myöhemmin!
		        'name' => $params['name'],
		        'instructions' => $params['instructions'],
		        'glass' => $params['glass'],
		        'method' => $params['method']		        
	        )); 
	        //lisäksi käsiteltävä ainesosat
	        $recipe->save();
	        Redirect::to('/resepti/' . $recipe->id, array('message' => 'Tässä lisäämäsi uusi resepti!'));
		}

Siistimpi näin:

	        public static function store() {												
			$params = $_POST;
			Kint::dump($params);
			$recipe = new Recipe(array(			
		                'author' => '1',  //korjataan myöhemmin!
		                'name' => $params['name'],
		                'instructions' => $params['instructions'],
		                'glass' => $params['glass'],
		                'method' => $params['method']		        
	                        )); 
	                //lisäksi käsiteltävä ainesosat
	                $recipe->save();
	                Redirect::to('/resepti/' . $recipe->id, array('message' => 'Tässä lisäämäsi uusi resepti!'));
		}

Monissa muissakin luokissa on sisennysongelmia, kuten /models/Recipe.php:ssa. create_tables.sql:stä puuttuu sisennykset kokonaan.

Vinkki: NetBeans korjaa sisennyksen automaattisesti painamalla shift+alt+f. Sublime Textissä voit lisätä hotkeyn toiminnolle: https://stackoverflow.com/questions/9495007/indenting-code-in-sublime-text-2

Myös sulutustyyli vaihtelee: Välillä avaavat sulkeet ovat samalla rivillä kuin funktio, välillä eivät. Esimerkkinä /models/Recipe.php:

	function __construct($attributes)
	{
		parent::__construct($attributes);
	}

Omasta mielestäni olisi luettavampaa, jos koodi näyttäisi seuraavalta:

	function __construct($attributes) {
		parent::__construct($attributes);
	}

Tärkeintä on kuitenkin, että se noudattaisi yhtenäistä kaavaa.

Muuten ihan näpsäkkää ja luettavaa koodia, varsinkin nimeäminen on kiitettävää. Projekti selvästi edistymässä hyvällä tahdilla, ja viikko 2:n asiat näyttäisivät toimivan. Ylimääräisenä huomiona, jos tämä ei ole jo suunnitelmissa: suosittelen lisämään "lisää ainesosarivi" -toiminnon reseptien luonnin yhteyteen (käyttäjä siis voisi painaa nappia jolloin ilmestyisi uusi tyhjä rivi ainesosaa varten). Tällöin rivejä ei olisi valmiiksi jo hirveää liutaa, eivätkä ne myöskään loppuisi kesken.

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.