Aktywne Wpisy

Treda +264
salcefrytki +391
potenżny Konfederata to nie jakaś #!$%@? jak te zniewieściałe lewaki
#bekazkonfederacji #konfederacja #polityka
#bekazkonfederacji #konfederacja #polityka
źródło: konf
PobierzSkopiuj link
Skopiuj link
źródło: konf
PobierzWykop.pl
piszę w #python moduł monitorujący #rpi poprzez wykonywanie komend w #linux. Nic skomplikowanego, sprawdzanie połączenia z netem, sprawdzanie dostępnych aktualizacji, temperatury, kontrola led i wysyłanie powiadomień.
Podejście numer 1:
napisałem to funkcjami - jeden check jedna funkcja, skrypt wykonywał wszystkie funkcje z góry do dołu. Pojawiały się wady takiego rozwiązania: mimo, że funkcje był podobne (wykonaj komendę, sprawdź/obrób zawartość, ustal wynik, jeżeli NOK to ledy i powiadomienie) to implementacja nowej funkcjonaliści wiązała się z poprawienie każdej funkcji z osobna - fatalne skalowanie.
Podejście numer 2 (nieskończone):
przepisałem strukturę w klasy i wykorzystałem dziedziczenie. Mam klasę "check" i po niej dziedziczącą np. "checkNetwork", "checkUpdate" itd. każdy obiekt jest wątkiem działającym w pętli. Skalowanie się poprawiało bo wrzucam atrybut w parent'a i mam to we wszystkich child'ach. Mimo to nie jest idealnie bo np. zmiana led'ów nie jest logiczną częścią klasy "check" i nagle próba integracji funkcji "led" z klasami "check" nagle przysparza mi problemów. Nie wiem jak projektować klasy aby się dowolnie (typu push/poll) komunikowały ze sobą w czasie.
Zauważyłem, że to nie język programowania mnie ogranicza się sama logika, co polecacie do przeczytania? Czy to jakieś paradygmat programowania? Jakieś best practices? Styl jaki chcę osiągnąć ma jakąś nazwę? Programowanie "stanowe"?
#programowanie #linux
Powstaje wtedy coś w rodzaju API pomiędzy warstwą sprawdzającą, a raportującą. Zobacz, że mniej więcej tak to też w linuxie wygląda: katalog /proc i /dev (też trochę /var)