Wpis z mikrobloga

@Blade:

1. Testy automatyczne. Skąd mam wiedzieć czy Twój kod w ogóle działa?
2. Też irytuje mnie mieszanie camelCase ze snakecase
3. https://en.wikipedia.org/wiki/Single_responsibility_principle – masz widgeta, który w tej chwili wie jak robić dwie rzeczy na raz: zarządzać taskami i zapisywać swój stan. Jak rozpoznać, że się narusza SRP? Pomyśl jakie zmiany mógłbyś chcieć wprowadzić. Np mógłbyś chcieć zmienić format zapisu z JSONa. Albo w ogóle pisać do bazki. Jednocześnie możesz chcieć dołożyć zatrzymywanie tylko określonych tasków, zamiast wszystkich na raz. To dwa zupełnie oddzielne aspekty. Powinny być reprezentowane przez dwa różne obiekty.
4. Wydaje mi się, że konwencją jest dawać metody magiczne (__init__, __str__
  • Odpowiedz
@MacDada
Ad. 1 To jeszcze nie ten poziom chyba :P ale fakt dopisze testy jednostkowe jak poczytam o tym.
Ad. 3 Wiem o co Ci chodzi ale nie mam bladego pojęcia w jaki sposób powinienem to rozbić...
Ad. 5 Dobrze, że w ogóle wydzieliłem to jako metodę, wcześniej wszystko było w on_start :D

Ad. 2/4 OK do zmiany
  • Odpowiedz
Ad. 3 Wiem o co Ci chodzi ale nie mam bladego pojęcia w jaki sposób powinienem to rozbić...


@Blade: Tam gdzie masz metodę pickle_all() zwracaj same dane. Tam, gdzie ją odpalasz, użyj obiektu, który zapisze.

Zauważ, że w TimerApp masz z kolei wczytywanie tych danych i zamianę na obiekty. Możesz z obu operacji zrobić obiekt Persistance z metodami read() i
  • Odpowiedz
@Blade: dodam tylko, że kod rozbity na małe metody łatwiej się testuje. Nie dość, że masz mniej przypadków do rozpatrzenia dla każdej metody, to jeszcze łatwo je mockować. Ale to jak poczytasz o testowaniu :)
  • Odpowiedz