Zaczalem czytac ta ksiazke, a tam informacje by robic duzo malych metod i nazwy metod mowiace co one robia itd. (niby sie to wszystko wie, ale w praniu roznie wychodzi) i biorac sobie to bardzo do serca napisalem troche kodu, jak oceniacie jego jakosc ?
Ten fragment wyszukuje w danych wejsciowych (ogromym stringu) innych stringow i zapisuje do list tokenow informacje o tym
np. " "ala" dfsd fdsff " "
znajdzie poprawny string ala i reszte uzna za bledne
mysle ze wiadomo co robi program, a o to fragment kodu...
ide po znaku z ogromnego stringa i szukam pierwszego cudzyslowu, jak znajde do gry wkracza mestoda sprawdzStringa()
while (i < dlugoscTekstu) {
aktualnyZnak = tworzStringaZPojedynczegoZnakuZDanych(i);
if (jestZnakiemCharakterystycznymDlaStringa(aktualnyZnak)) {
sprawdzStringa();
}
...
}
}
private void sprawdzStringa() {
String odnalezionyStringWDanych = "\"";
i++;
String aktualnyZnak = tworzStringaZPojedynczegoZnakuZDanych(i);
while (!(jestZnakiemCharakterystycznymDlaStringa(aktualnyZnak)) && czyNieJestemPoZaKoncemDanychDoSkanowania()) {
odnalezionyStringWDanych += aktualnyZnak;
aktualnyZnak = tworzStringaZPojedynczegoZnakuZDanych(i);
++i;
}
odnalezionyStringWDanych += aktualnyZnak;
dodajOdpowiedniToken(odnalezionyStringWDanych);
}
private boolean jestZnakiemCharakterystycznymDlaStringa(String aktualnyZnak) {
return aktualnyZnak.equals("\"");
}
private boolean czyNieJestemPoZaKoncemDanychDoSkanowania() {
return i < daneDoSkanowania.length();
}
private String tworzStringaZPojedynczegoZnakuZDanych(int i) {
return String.valueOf(daneDoSkanowania.charAt(i));
}
private boolean jestToPoprawnyString(String odnalezionyStringWDanych) {
return (jestZnakiemCharakterystycznymDlaStringa(tworzStringaZPojedynczegoZnakuZDanych(i - 1)) && (odnalezionyStringWDanych.length() > 1));
}
private void dodajOdpowiedniToken(String odnalezionyStringWDanych) {
if (jestToPoprawnyString(odnalezionyStringWDanych)) {
tokeny.add(new Tokenek(odnalezionyStringWDanych, "String", linia));
} else {
tokeny.add(new Tokenek(odnalezionyStringWDanych, "Bledny_String", linia));
}
}
czy tak ma wygladac prosty, samodokumentujacy sie kod ?