Code

Refaktoring IoT do maszyny stanów

Kilka tygodni temu wspominałem o potrzebie refaktoringu aplikacji IsTableBusy. Planowałem użycie wzorca projektowego Command i Active Object. Jednak po przemyśleniach, bliżej kodu, doszedłem do wniosku, że w tym wypadku lepsze będzie użycie maszyny stanów. Poniżej przedstawiam uzasadnienie dlaczego tak oraz fragmenty kodu.

(więcej…)

Code

JSON dla IoT

Znaczna część komunikacji w internecie odbywa się przy użyciu formatu JSON. Jest on prosty, lekki i czytelny. W związku z tym, jeżeli chcę, aby moje urządzenie było otwarte na świat, muszę wspierać ten format. Mógłbym sam bawić się w parsowanie JSONa do obiektu i na odwrót, ale rozsądniejszym wydaje się być użycie gotowej biblioteki. Zatem zapraszam do lektury wstępnego opisu biblioteki JSON dla IoT czyli ArdunioJson.

(więcej…)

Code

Jak połączyć ESP8266 z WiFi

Czymże byłoby IoT bez dostępu do sieci? Prawdopodobnie pozostało by tylko T, czyli nic szczególnego. Gdyż takie urządzenia elektroniczne, znamy od bardzo dawna. Właśnie dzięki połączeniu ich z globalną siecią otwierają się zupełnie nowe możliwości. Dostęp do sieci możemy uzyskać na wiele sposobów. Od najbardziej tradycyjnego, czyli połączenia przewodem, aż do łączności satelitarnej. Poniżej przedstawię jak połączyć do sieci poprzez najpopularniejszy standard, czyli WiFi, na przykładzie płytki Wemos D1 mini z wbudowanym modułem WiFi ESP8266, której wybór opisywałem tu.

(więcej…)

Code

Czym jest Code Kata

Chciałbyś być lepszym programistą, ale nie masz pomysłu jak możesz udoskonalić swój warsztat? Można to robić na wiele sposobów. Takich jak tworzenie własnego pet projektu, czytanie książek i blogów, czy robienie Code Kata. Nie ma jednego dobrego sposobu, więc warto przeplatać różne metody nauki. Natomiast dziś chciałbym się skupić na dziedzictwie mistrzów japońskich sztuk walki, czyli Kata. Programistycznie Code Kata

(więcej…)

Code

Jak ja stosuje się do SRP – tylko jedna metoda

Akronim SRP jest bardzo popularny. Jednak jak wiele członków programistyczengo świata tak naprawdę go rozumie i stosuje? A jaka jego część tworzy kod według tych zasad? Czy jesteś w stanie opisać jak według Ciebie powinna wyglądać klasa spełniajca tę zasadę? Poniżej opisałem jak ja stosuje się do Single Responsibility Principle i dlaczego lubię, gdy klasa ma tylko jedną metodę.

(więcej…)

Code

Z patologii w patologę

Pisząc kolejną część cyklu o aplikacji do piłkarzyków chciałem nawiązać do błędów jakie popełniałem jak początkujący programista. Teraz z pewnością popełniam inne :). Przypomniałem sobie, że kiedyś napisałem post o tym jak łatwo popaść z patologi w patologię. Ten tekst był aktualny kilka lat temu. Natomiast teraz jest to miła retrospekcja, aby przeczytać i pomyśleć, że już tak nie robię. A oto on w lekko zmodyfikowanej formie. (więcej…)

Code

Usunięcie flagi bitowej

Miałem ostatnio potrzebę usunięcia flagi ReadOnly z pliku. Podczas implementacji spotkała mnie mała niespoadzianka mojej niewiedzy. O ile logika boolowska nigdy nie sprawiała mi problemów. Szybko więc doszedłem do wniosku, że muszę użyć logicznego AND z odwróconą wartością flagi ReadOnly. Tutaj pojawił się problem, ponieważ nie widziałem jak odwrócić bity. Czytaj więcej…

Code

Dobra nazwa nie jest zła

Nazwy dla kompilatora są obojętne. Jednak dla nas, ludzi, wręcz przeciwnie. Jestem pewien, że gdyby nie możliwość nadawania nazw to nie bylibyśmy w stanie tworzyć nawet prostych programów. Niejednokrotnie dobra nazwa jest ważniejsza niż kod, który znajduje się pod spodem. Zatem czym się kierować, aby nazwa była dobra, a nie zła?

(więcej…)