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)
@Golomp: Nie powinny występować xD Jeszcze muszę zrobić użytek z HasInternetConnection, mysle, ze tylko to oraz dzialania na plikach mogą powodowac problemy
@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
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!
funkcje internalowe dobrze jest nazywać z przedrostkiem int_
@player11one: @MroczekBall3D: żadnych przedrostków! Visual Studio pokazuje takie rzeczy i dopisywać jakieś cudowne prefixy w nazwach zmiennych/funkcji to przeżytek
@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,
@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 ;)
7. Mam pomysł jak to jeszcze można zrobić, ale byłoby to mniej wydajnie, bo musiałbym wsadzić dwie pętle itd
@MroczekBall3Dpremature 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
@player11one: ( ͡°( ͡°͜ʖ( ͡°͜ʖ͡°)ʖ͡°) ͡°) Ależ oczywiście, że się zgadzam z Tobą, ale tylko wtedy kiedy będę chciał wartość przed dodaniem niż po dodaniu xD edit; ej, Tobie chodzi o ify? xD
@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 ( ͡°͜ʖ͡°)
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
źródło: comment_iuqx2WxIoCIUghlsKpyMFnzgnXpzuyHL.jpg
PobierzJeszcze muszę zrobić użytek z HasInternetConnection, mysle, ze tylko to oraz dzialania na plikach mogą powodowac problemy
@MroczekBall3D: xD
@MroczekBall3D: Ta, to samo mówiła dziwczyna, która pisałą kalkulator wyborczy xD
Zablokuj aplikacji dostęp do neta to pewnie się wysypie.
@robroypl: Czyli anty-debilny kalkulator w Cpp.
@Szab @arhu @Mave @ZapomnialWieprzJakProsiakiemByl : Wołam was chłopaki, ostatnio pomogliście C:
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 wpopatrz 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
@player11one: @MroczekBall3D: żadnych przedrostków! Visual Studio pokazuje takie rzeczy i dopisywać jakieś cudowne prefixy w nazwach zmiennych/funkcji to przeżytek
2. Wezmę pod uwagę ;)
3. Mam pomysł, jak to zrobić, dzięki :D
4. Nie rozumiem,
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
@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
edit; ej, Tobie chodzi o ify? xD