Page 5 of 23

Style Guide i Coding Standard – czy to już jakość?

Kiedy zdamy już sobie sprawę, że sprytny kod i mikrooptymalizacje to nie jest dobra droga, dochodzimy do wniosku, że jakość kodu jednak ma znaczenie. A wyrazem dbania o tą jakość kodu jest wprowadzenie odpowiednich reguł. Temu właśnie służą Style Guide i Coding Standard. W C są one szczególnie ważne, bo język pozwala nam na wiele dziwnych rzeczy. Czasem występują jako dwa oddzielne dokumenty, a czasem jako jeden. Różni się również sposób ich użycia. Czasem zawierają rozsądny zestaw zasad, który faktycznie jest przestrzegany w projekcie. Czasem natomiast są tak restrykcyjne i tak niemożliwe do wyegzekwowania, że nikt nawet nie próbuje. Kiedy indziej natomiast każdy i tak wie lepiej. W dwóch ostatnich przypadkach reguły służą głównie do chwalenia się na zewnątrz, że do naszego projektu DODALIŚMY jakość. No właśnie to tak nie działa. Możemy wprowadzić te wszystkie reguły a i tak pisać w sposób zupełnie niezrozumiały dla innych.

Dlatego dzisiejszym artykule porozmawiamy sobie właśnie o zasadach znajdujących się zwykle w tego typu dokumentach. Po co powstały i jak je egzekwować. Oczywiście temat jest tak rozległy, że omówię tylko mały odsetek najczęściej spotykanych reguł.

Continue reading

Mikrooptymalizacje są bez sensu

Poza próbą napisania jak najsprytniejszego kodu robiącego wszystko w jednej linijce o czym pisałem ostatnio, drugim największym grzechem programistów C jest próba optymalizowania wszystkiego i wszędzie. Jest to koronny argument usprawiedliwiający nieczytelny kod. A ta optymalność bardzo często jest fikcją. Nie jest poparta żadnymi pomiarami dla naszego konkretnego przypadku. Bazuje tylko na legendach i przekazach ustnych kultywowanych przez kolejne pokolenia programistów C. O ile kiedyś – w zamierzchłych czasach – te zasady miały jakiś sens, teraz najczęściej kompilatory mogą wykonać tą robotę za nas. Albo nie musimy w ogóle się tym przejmować, bo już nam wystarczy RAMu. A my możemy cieszyć się kodem, który da się rozczytać.

Continue reading

Livestreamy – projekt od zera

Jak zapewne wiecie – od jakiegoś czasu prowadzę streamy na youtube. W ostatnim czasie głównym tematem jest projekt zegara szachowego, którego robię od zera. Pokazuję tam wszystkie fazy łącznie z analizą istniejących rozwiązań i ewolucją koncepcji. Do tej pory ukazały się trzy odcinki:

W trzecim odcinku już pojawił się kod i unit testy. Wygląda to całkiem fajnie. Zapraszam do oglądania!

Przy okazji zmiany w kodzie można śledzić również na moim githubie:

https://github.com/ucgosupl/chess_clock

W tym tygodniu niestety nie było streama, ponieważ jestem na wsi i mam słaby internet. Z tego samego powodu nie wiem, czy uda mi się zrobić streama w przyszłym tygodniu. Ale za to w najbliższym czasie dojdzie trochę treści pisanych. Te są odporniejsze na problemy z internetem 😀

Sprytny kod w C – nie rób tego

Kiedyś bardzo popularne było pisanie sprytnego kodu. Żeby jak najwięcej zmieściło się w jednej linijce. Żeby oszczędzić sobie nadmiarowego pisania, bo w końcu wiem, że coś się wydarzy pod spodem. Osoba czytająca ten kod mogła jedynie stwierdzić – ale dobry jest ten, kto to napisał, ja nic nie rozumiem. Język C doskonale się do czegoś takiego nadawał. Możemy (nad)używać niejawnego rzutowania, wyrażeń z efektami ubocznymi, magicznych operacji bitowych, wskaźnikowych i innych.

Społeczności skupione wokół innych języków zrozumiały swój błąd i poszły w zupełnie przeciwnym kierunku. Zauważono, że nie opłaca się zyskiwać jednej linijki po to, żeby potem nie dało się zrozumieć co autor miał na myśli. Jednak z C jest inaczej. Pisanie sprytnego kodu weszło nam w krew i przykłady tego typu przeniknęły do materiałów edukacyjnych, do przykładów z internetu, na uczelnie i są przekazywane nowym pokoleniom programistów. W tym artykule przyjrzymy się jak objawia się nasz spryt i jak nieuchronnie prowadzi do strzelenia sobie w stopę.

Continue reading

Praca zdalna w embedded

Na ostatnim livestreamie opowiadałem o pracy zdalnej w embedded. W związku z aktualną epidemią temat jest na czasie i pewnie wiele osób i całych firm szuka podpowiedzi jak przejść na pracę zdalną. Szczególnie jeśli nigdy wcześniej tego nie próbowaliście, a teraz nagle wszyscy muszą pracować z domów. W tym artykule zebrałem najważniejsze informacje, które również omawiam w wersji wideo:

Continue reading

Livestreamy na Youtube

W zeszłym tygodniu na Youtube pojawił się mój pierwszy livestream o systemach embedded:

W miarę możliwości będę nagrywać raz w tygodniu. Kolejny odcinek we wtorek 28 stycznia o 20.00 – LINK.

Informacje o nadchodzących i przeszłych odcinkach możecie znaleźć w panelu bocznym strony.

Continue reading