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

Operacje bitowe w C#

Algebra Boola jest jednym z podstawowych założeń znanej nam informatyki. Przy jej użyciu komputery robią to, co robią. Spora część tych operacji jest ukryta na bardzo niskim poziomie abstrakcji. Zazwyczaj nie potrzebuejmy wiedzieć, jak sobie dany procesor radzi z dodawaniem, mnożeniem, czy potęgowaniem. Czasem te operacje musimy wykonywać samodzielnie. W jaki sposób? Już piszę.

  (więcej…)

Code

Dobra nazwa nie jest zła

Wraz ze wzrostem doświadczenia, coraz większą uwagę przykładam do nazw w kodzie. Pomimo że nazwy dla kompilatora to tylko unikalne identyfikatory adresów. Jednak u ludzi sprawa wygląda zgoła odwrotnie. Gdyby zabrano nam możliwość nadawania nazw, nie bylibyśmy w stanie tworzyć nawet prostych programów. Niejednokrotnie dobra nazwa jest ważniejsza niż kod, który znajduje się pod spodem. Dlaczego dobra nazwa nie jest zła?

(więcej…)