• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ocena kodu java - generowanie pdf

VPS Starter Arubacloud
+1 głos
532 wizyt
pytanie zadane 14 października 2017 w Nasze projekty przez Maniti Obywatel (1,220 p.)
Witam,

Napisałem program do generowania pdf z fiszkami (karteczki do np, nauki angielskiego na jednej stronie słówko na drugiej tłumaczenie). Jest to mój pierwszy program który "coś robi" a nie zadania czysto algorytmiczne. Chciałbym aby ktoś doświadczony go ocenił.

Zamierzam rozwijać ten projekt, napisać stronę w springu na której udostępnię usługę generowania fiszek z własnego pliku tekstowego.

Kod znajduję się pod tym linkiem:

https://github.com/GeniusManti/flashcard

Z góry dziękuje :D

2 odpowiedzi

+1 głos
odpowiedź 15 października 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
wybrane 15 października 2017 przez Maniti
 
Najlepsza

Pierwsza rzecz która mi się rzuciła: to brak informacji jak to uruchomić.

2. Brak informacji o samym projekcie (Co to właściwie jest)

3.Metody testów nie za bardzo mi mówią co robią. (klasa CardSetGeneratorTest)

Jedna rzecz mnie ciekawi:

(new Object[][]{
                {"amount;wielkość", ";", new FlashCard("amount", "wielkość")},
                {"digit;cyfra", ";", new FlashCard("digit", "cyfra")},
                {"dividend;dzielna", ";", new FlashCard("dividend", "dzielna")}
        });

Jaki był zamysł tej arcitektury.? czy próbowałeś mapować obiekt na klucz, mógłbyś użyć hashmap?

Użależniłeś jedną klasę od drugiej co nie jest zalecane w testach. FlashCard mógłbyś spokojnie osobno przetestować.

Kolejna rzecz, której nie kupuje:

String[] strings = CardGenerator.getFlashCard(text, regex);

Rozumiem, get ale dlaczego podajesz mu argumenty. Po tej metodzie spodziewałbym że zwaraca mi obiekt flashCard. A nie jakąś tablicę. A sama nazwa tablica też mi za wiele nie mówi co to właściwie jest.

String[] strings = CardGenerator.getFlashCard(text, regex);

        assertEquals(strings[0], expected.getText());
        assertEquals(strings[1], expected.getTranslation());

A sama metoda właściwie sprawdza flashCard. A po drugie sprawdzasz z innego obiektu flashCard? Nie kupuje tego.

@Parameterized.Parameters
    public static List<Object[]> data() {
        return Arrays.asList(new Object[][]{
                {"amount;wielkość", "amountwielkość"},
                {"digit;cyfra", "amount;wielkość;"},
                {"dividend;dzielna", ";;amount;wielkość"}
        });

    }

Możesz to spokojnie ustawić jako setUP, nie musiałbyś tego dwa razy pisać. Zdecydowanie za mało testów.

return (tab != null) ? new String[]{tab[0], tab[1]} : null;

Spokojnie można by było napisać do tego metodę bo na pierwszy rzut oka nie widać za bardzo co ona robi. np: 

return (isTableEqualNull()) ? returnArray() : null; 
 for (int i = 1; i <= list.size()/5+1 ; i++) {
                for (int j = (i*5)-1; j >= (i-1)*5; j--) {
                    if(list.size() > j)
                        table.addCell(createCell(font, list.get(j)[index]));
                }

Mogłbyś utworzyć osobny obiekt Row, wtedy nie musiałbyś w takie rzeczy bawić. 

Btw. gdzie masz widoki bo nie mogę znależć. 

komentarz 15 października 2017 przez Maniti Obywatel (1,220 p.)
Super!

Ślicznie dziękuje za tak rzetelną odpowiedź. Co do widoków to jeszcze ich nie ma, teraz mam zamiar je dodać/napisać. A co do obiektów Row mógłbyś podrzucić jakiś tutorial?
komentarz 15 października 2017 przez Maniti Obywatel (1,220 p.)
Czy chodzi o obiekt do przechowywania fiszek w wierszach ?
komentarz 15 października 2017 przez ShiroUmizake Nałogowiec (46,300 p.)

Tak o to chodzi . Podam Ci jak jak rozwiązałem problem tabeli 

Klasa budująca row

https://github.com/PatrykMaternicki/HazeBankMenagmentSystem/blob/master/src/main/java/com/Models/Services/RowsBuilderService.java

Klasa wykorzystująca Builder:

https://github.com/PatrykMaternicki/HazeBankMenagmentSystem/blob/master/src/main/java/com/Models/Services/PdfBuilderService.java

A tu dwie najważniejsze metody:

  private void setResultToRow(){
          rowsBuilderService.setHeaderRow();
          for (Instalment element : resultList){
           rowsBuilderService.constructRows(element);
          }
      }
      private void setRowToTable (List<Row> rows){
          for (Row cell : rows){
              table.addCell(cell.getCellId());
              table.addCell(cell.getCellPartCapital());
              table.addCell(cell.getCellPartInterest());
              table.addCell(cell.getCallPartConstant_Fee());
              table.addCell(cell.getCellFinalInterest());
              table.startNewRow();
          }
      }

 

0 głosów
odpowiedź 14 października 2017 przez Wiciorny Ekspert (274,410 p.)
Przeglądnę chętnie u siebie. Widze w respie Springa- przerabiałeś sam, czy jaki tutorial polecasz? A widzę Owrzarka :D

Podobne pytania

0 głosów
1 odpowiedź 357 wizyt
pytanie zadane 11 października 2020 w Nasze projekty przez Szyszka Gaduła (3,490 p.)
0 głosów
1 odpowiedź 298 wizyt
pytanie zadane 30 lipca 2019 w Nasze projekty przez mi-20 Stary wyjadacz (13,190 p.)
0 głosów
1 odpowiedź 230 wizyt
pytanie zadane 16 maja 2019 w Nasze projekty przez mi-20 Stary wyjadacz (13,190 p.)

92,775 zapytań

141,703 odpowiedzi

320,571 komentarzy

62,111 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...