Open minovakovi opened 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.
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
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.
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)
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)