Wpis z mikrobloga

#programowanie #csharp #uwp #programista15k

tldr; #naukaprogramowania i proszę o sprawdzenie kodu, czy jest w miarę okej

Mirki, ostatnio zamieszczałem kod i prosiłem, byście zerknęli, czy czy w miarę jest okej, parę błędów wytknęliście, więc zabrałem się za inny mini projekcik, który jest prawie ukończony, jedynie można dodawać do niego różne bajery. Nie wykryłem żadnych błędów. (Mam nadzieję, że prawo murphiego nie działa ^^)

Czy ktoś miałby troszkę czasu i przejrzenie kodu pod kątem różnych rzeczy, które mogłyby zostać napisane lepiej?

Projekt to wrapper planu lekcji do szkoły, pisany w UWP w języku C#,
czyli pobieram źródło strony, formatuję, zapisuję do klasy, wyświetlam dane w programie. Postawiłem też na wersję offine, czyli zapis do XML (nie opłacało mi się bawić w sql)

Rzeczywisty plan: http://www.zs-1.pl/plany_nauczyciel
A jako obrazek daję zrzut z mojego programu :)

Link do GitHub: https://github.com/gtteamamxx/ZS1Plan/tree/master/ZS1Plan
MroczekBall3D - #programowanie #csharp #uwp #programista15k 

tldr; #naukaprogramow...

źródło: comment_iuqx2WxIoCIUghlsKpyMFnzgnXpzuyHL.jpg

Pobierz
  • 25
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MroczekBall3D:
1. Czemu nie korzystasz z konwencji nazewniczej stosowanej w c# (click)?
2. 1 klasa, 1 plik.
3. metoda HTMLServices::getData ma prawie 200 linii... Na pewno da się to jakoś ładniej zrobić.
4. // 2, because 0 is h'our number, 1 is a ring time (eg. 7:10 -> xxx ) <-- od tego są enumy.
5. if (item.InnerHtml == @" "). Magiczny string. Daj zmienną, która powie co to w
  • Odpowiedz
@MroczekBall3D: na początek całkiem nieźle :)

popatrz na ciekawą zależność -> wszystkie twoje metody są publiczne (a na pewno wszystkie w Connections.cs). Zrobienie prywatnej metody często może sie opłacić, zwiększa to znacznie czytelnośc kodu -> dajesz opisowe nazwy i czytasz kod jak książke, a nie zastanawiasz się co ty sie dzieje. Ogólna zasada - krótkie funkcje, opisowe nazwy, mało (najlepiej brak) argumentów przyjmowanych przez funkcje!

zahardcodowana nazwa pliku z planem w xml
  • Odpowiedz
@Yahoo_: 1. Właśnie staram się powoli dostosowywać do tego, możesz zauważyć, że część jest okej, część nie
2. Wezmę pod uwagę ;)
3. Mam pomysł, jak to zrobić, dzięki :D
4. Nie rozumiem,
  • Odpowiedz
@MroczekBall3D: według mnie klamry przy ifach są po prostu spójne z resztą kodu. Bardzo łatwo pomylić się przy zmianach, gdy nie ma tych klamr.

Jeśli chodzi o hardcode nazwy plików - załóżmy, że chcesz miec dwa plany, albo historię planów i wczytywać ten, który aktualnie obowiązywał w jakimś czasie - ile zmian w kodzie musisz zrobić? Niby jedną, ale wiąże się to z przekompilowaniem projektu. Niezbyt skalowalne rozwiązanie ;)

Poza
  • Odpowiedz
  • 0
7. Mam pomysł jak to jeszcze można zrobić, ale byłoby to mniej wydajnie, bo musiałbym wsadzić dwie pętle itd

@MroczekBall3D premature optimization is the root of all evil ( ͡° ͜ʖ ͡°)
Nie zawsze to prawda, ale w Twoim wypadku naprawdę wątpię, żeby 0.03s wykonania robiło jakąś różnice :).
Potem do reszty się odniosę, jak będę przy kompie
  • Odpowiedz
@MroczekBall3D o wszystko. Jak robisz i++ masz 2 kopie i - jedna o wartosci i, druga i+1. Dopiero pozniej jest to przepisywane do adresu &i. Jak robisz ++i, to od razu zwiekszasz wartosc pod adresem &i ( ͡° ͜ʖ ͡°)
  • Odpowiedz