-
(pierwsza zauważona rzecz) pliki binarne w repozytorium i to wrzucone w losowe miejsce.
-
namespace czytnik
- najważniejsza nazwa w kodzie, a źle nazwana - namespace powinno być z wielkiej litery. I angielskie.
-
public static List<string> PobierzAdresyKanalow()
List<string> adresyKanalow = new List<string>();
- polskim nazwom zmiennych/w kodzie mówimy "nie".
-
Regex linkParser = new Regex(@"((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
- ten regex to hardcore, i do tego jeszcze niepoprawnie skopiowany więc nie działa (&
?).
foreach (Match m in tableRegEx.Matches(html))
table = table + " " + m.Value;
Jeśli matchów może być dużo to zły pomysł klejenie tego w taki sposób (bo wydajność) - ale to pewnie nie problem.
foreach (Match m in linkParser.Matches(table))
{
if (!adresyKanalow.Contains(m.Value))
adresyKanalow.Add(m.Value);
}
jesli adresy mają byc unikalne to może lepiej użyć Set<...> zamiast List<...>? (Też, mało wydajne i niesemantyczne)
-
public static List<Kanal> UtworzKanalzArtykulami(List<string> adresyKanalow)
- jak wyżej
-
if (item != "http://ekstraklasa.tv/ekstraklasa-tv,83,m.xml" && item != "http://tvn24bis.pl/tvn24-bis,1,m.xml")
- co to za hacki? :P Jeśli już to do jakichś stałych tłumaczących dlaczego akurat te dwa adresy pomijamy.
public static string Wyciagarka(string strZrodlo, string strStart, string strKoniec)
{
int Start, End;
if (strZrodlo.Contains(strStart) && strZrodlo.Contains(strKoniec) != strZrodlo.Contains("http"))
{
Start = strZrodlo.IndexOf(strStart, 0) + strStart.Length; // btw to powinno być z małej litery koniecznie.
End = strZrodlo.IndexOf(strKoniec, Start);
return strZrodlo.Substring(Start, End - Start);
}
else
{
return "";
}
}
Wygląda na jakąś pomocniczą funkcję. To jeszcze nic złego, ale powinna być w takim razie prywatna. Bo robi jakąś czarną magię (łącznie ze sprawdzaniem czy źródło zawiera "http" i porównywaniem tego z tym czy źródło zawiera koniec), nie udostępniałbym tego w publicznym API.
To uwagi do pliku https://github.com/TransportKrausPoloTeam/Czytnik-RSS/blob/master/czytnik/czytnik/DataLoader.cs (jakby co).
TL;DR główny problem to niekonsekwentne nazwy zmiennych/funkcji, polskie nazwy zmiennych/funkcji, wielkie litery w nazwach zmiennych/funkcji gdy powinny być małe oraz małe gdy powinny być wielkie.
To /naprawdę/ jest ważne, reszta punktów to luźniejsze uwagi.