minovakovi / akdb

An experimental relational DBMS developed by students @ Faculty of Organization and Informatics, University of Zagreb
6 stars 15 forks source link

hash.c - test #145

Open minovakovi opened 2 years ago

minovakovi commented 2 years ago

Hash.c Test pada, greske je vec spomenuo kolega Danijel Filipovic(?) Funkcija AK_find_delete_in_hash_index bi isto mogla biti razdvojena u 2 funkcije(1 za trazenje i 1 za brisanje) Funkcija AK_find_in_hash_index poziva gore navedenu funkciju bez postavljene zastavice za brisanje, znaci tu bi bilo bolje tu implementaciju za trazenje prebacit a onda da gornja funkcija nju poziva ako mora nac element i dodat brisanje

Link(https://github.com/AILab-FOI/akdb/issues/48)

minovakovi commented 2 years ago

TEST 18 - HASH test pada prilikom dohvaćanja retka iz tablice student row = AK_get_row(i, tblName); struct list_node *value = Ak_GetNth_L2(0, row);

Poboljšanje osim ispravljanja svih pogrešaka smatram da bi bilo potrebno počistiti kod radi bolje preglednosti i lakšeg razumjevanja, također bi bilo dobro dodati još komentara kako bi se ubuduće moglo brže razumjeti što koji dio koda zapravo radi. Neke metode su preko 400 linija koda, na dosta mjesta je i kod koji se ponavlja te nekoliko metoda ima gomilu petlji i if uvjeta jednih unutar drugih što bi trebalo detaljnije proučiti i vidjeti dali je moguće taj problem rješiti drugačije.

minovakovi commented 2 years ago

Ak_get_nth_main_bucket_add funkcija - postoji linija koda nakon return-a funkcije (višak ili treba biti ispred return naredbe)

AK_find_delete_in_hash_index - potrebno je refaktorirati kod, razdvojiti funkciju

AK_find_in_hash_index funkcija - funkcija je nepotrebna i nema svrhe u ovakvom obliku; potrebno je refaktorirati funkciju AK_find_delete_in_hash_index

AK_delete_in_hash_index - funkcija je nepotrebna i nema svrhe u ovakvom obliku; potrebno je refaktorirati funkciju AK_find_delete_in_hash_index

AK_create_hash_index funkcija - funkcija je malo duža, trebalo bi detaljnije pogledati funkciju te ukoliko je moguće razdvojiti ju i dodati komentare da se može lakše razumjeti što radi

AK_delete_hash_index - fali komentar (opis) funkcije; funkciju je potrebno maknuti da se kod ne ponavlja

minovakovi commented 2 years ago

Funkcije više nemaju onoliko puno linija koda kao u btree.c fileu. Opet ima, u nekim funkcijama, puno ugnježđenih if-else-ova i if-else-ova kombiniranih s različitim petljama što bi se isto moglo efikasnije napraviti. Zbog svih tih ugnježđivanja, automatski je smanjena i čitljivost koda, a i povećana je složenost koda. Postoje pogreške kod testiranja.

minovakovi commented 2 years ago

AK_insert_bucket_to_block  Unos hash bucketa u blok  Hash bucket -> brže pretraživanje  Prijedlog poboljšanja  Podijeliti funkciju na dva dijelova -> iz funkcije izdvojiti dio u kojem se popunjava varijabla tipa AK_block

AK_insert_in_hash_index  Funkcija koja unosi zapis u hash indeks  Prijedlog poboljšanja  Podijeliti funkciju na više dijelova – primjerice funkcija za dodavanje novih bucketa, funkcija za zamjenu id-eva

AK_find_delete_in_hash_index  Služi za uništavanje ili dohvaćanje zapisa iz hash tablica  Prijedlog poboljšanja  Podijeliti funkciju na više dijelova –> primjerice posebno funkcija za uništavanje, a posebno za dohvaćanje (spomenuto)  Nerazumljiv kod -> više komentara  Komentar o pogrešci -> vidjeti o čemu se radi

AK_find_in_hash_index  Dohvaća zapis iz hash indeksa  Prijedlozi poboljšanja  Funkcija ima jednu liniju u kojoj poziva drugu funkciju -> vidjeti je li uopće potrebna (spomenuto)

AK_delete_in_hash_index  Uništava zapis iz hash indeksa  Prijedlozi poboljšanja  Funkcija ima jednu liniju u kojoj poziva drugu funkciju -> vidjeti je li uopće potrebna (spomenuto)

AK_create_hash_index  Kreiranje hash indeksa  Prijedlozi poboljšanja  Jedan od printf-ova na hrvatskom -> prevesti na engleski  Ugniježđene petlje -> smanjiti broj Ugniježđenih petlji  Potrebno podijeliti funkciju na više dijelova  Nerazumljiv kod -> više komentara

AK_delete_hash_index  Funkcija koja uništava hash indeks  Prijedlog poboljšanja  Dodavanje opisa funkcije (spomenuto)

AK_hash_test() - test  Pri pokretanju se ruši program -> PROBLEM  Prijedlog poboljšanja  Potrebno je ispraviti grešku -> vidjeti u kojoj od funkcija je problem i ispraviti ga (spomenuto)