Arduino i Raspberry Pi Początkujący? Oto jak napisać czysty kod

  • Michael Fisher
  • 0
  • 2067
  • 125
Reklama

Kiedy zaczynasz i więcej na temat tworzenia oprogramowania, często natrafiasz na to wyrażenie “czysty kod”. W najczystszej postaci jest to kod łatwy do odczytania dla innych osób. Jest wyrazisty i piękny, a po prostu można łatwo rozpoznać jego zamiary patrząc na to.

Pisanie czystego kodu łatwiej powiedzieć niż zrobić.

Niezależnie od tego, czy jesteś Arduino Rozpoczęcie pracy z Arduino: Przewodnik dla początkujących Rozpoczęcie pracy z Arduino: Przewodnik dla początkujących Arduino to platforma prototypowania elektroniki typu open source oparta na elastycznym, łatwym w użyciu sprzęcie i oprogramowaniu. Jest przeznaczony dla artystów, projektantów, hobbystów i wszystkich zainteresowanych tworzeniem interaktywnych obiektów lub środowisk. majsterkowicz, czy budujesz Raspberry Pi Raspberry Pi: Nieoficjalny samouczek Raspberry Pi: Nieoficjalny samouczek Niezależnie od tego, czy jesteś obecnym właścicielem Pi, który chce dowiedzieć się więcej, czy potencjalnym właścicielem tego urządzenia o wielkości karty kredytowej, to nie jest przewodnik, którego chcesz przegapić. aplikacje w Pythonie, a nawet jesteś programistą, istnieje kilka przydatnych wskazówek, które ułatwią czytanie kodu innym osobom. Oto, co musisz wiedzieć.

Bądź konsekwentny

Być może pierwszą i najbardziej oczywistą wskazówką będzie zgodny w tym co robisz. Dobrym przykładem tego jest stosowanie tych samych wzorców podczas nazywania funkcji Absolutne podstawy programowania dla początkujących (część 2) Absolutne podstawy programowania dla początkujących (część 2) W części 2 naszego absolutnego przewodnika po programowaniu będę obejmujący podstawy funkcji, zwracane wartości, pętle i warunki warunkowe. Upewnij się, że przeczytałeś część 1 przed rozwiązaniem tego problemu, w którym wyjaśniłem… i zmienne Podstawy programowania komputerowego 101 - Zmienne i typy danych Podstawy programowania komputerowego 101 - Zmienne i typy danych Po wprowadzeniu i mówieniu trochę o programowaniu obiektowym i skąd pochodzi jego imiennik, pomyślałem, że nadszedł czas, abyśmy przeszli przez absolutne podstawy programowania w sposób inny niż język. To… Powinieneś wybrać konwencję nazewnictwa i trzymać się jej.

Jakiej konwencji nazewnictwa należy zastosować?

Cóż, jeśli piszesz Python dla Raspberry Pi, odpowiedź jest jasna. Standard PEP-8 (barometr dobrego, czystego kodu Pythona) mówi, że nazwy zmiennych powinny być pisane małymi literami, a każde słowo powinno być oddzielone znakiem podkreślenia. Na przykład: gpio_input i odczyt czujników wilgotności.

Przewodnik po stylu Arduino domyślnie stwierdza, że ​​powinieneś pisać swoje zmienne w tak zwanym Camel Case. Tutaj słowa nie są od siebie oddzielane, ale pierwsza litera każdego słowa jest pisana wielkimi literami, z wyjątkiem pierwszego słowa. Na przykład: przycisk wciśnięty i temperatura Odczyt.

Istnieją oczywiście inne style nazewnictwa zmiennych. Powyższe jest po prostu zalecane przez oficjalne przewodniki po stylu. Ale cokolwiek wybierzesz, upewnij się, że trzymasz się tego i używasz tej samej konwencji nazewnictwa w całym programie.

Napisz znaczące komentarze

Komentarze to świetny sposób na wyjaśnienie, co robi Twój program. Możesz określić, co robi każda funkcja i każda zmienna reprezentuje własnymi słowami. Ułatwia to stronom trzecim czytanie kodu, ale także ułatwia jego utrzymanie, ponieważ ostatecznie lepiej go rozumiesz.

Ale jeśli nie napiszesz komentarzy w sposób oczywisty i wyrazisty, możesz nie zawracać sobie głowy.

Pisząc komentarze, powinieneś spróbować wyjaśnić dlaczego kod, oprócz tego. Postaraj się, aby intencja była całkowicie jasna i powiedz coś o kodzie, czego sama nie może powiedzieć. Więc zamiast:

// aktualizacja odczytu

Rozważ napisanie:

// Zaktualizuj liczbę złamań wiązki laserowej przed wysłaniem tweeta

Pamiętaj, aby pisać pełnymi, poprawnymi gramatycznie zdaniami. Ponadto standard PEP-8 dla Pythona mówi, że zawsze należy pisać komentarze i zmienne w języku angielskim. Ułatwia to innym współpracę z tobą, jeśli zdecydujesz się wydać swój kod jako open source, ponieważ angielski jest w zasadzie lingua franca w tworzeniu oprogramowania.

Przewodnik po stylu Arduino idzie jeszcze dalej i mówi, że musisz komentować każdy blok kodu, każdą pętlę for i każdą deklarację zmiennej.

Osobiście uważam, że to trochę ekstremalne. Jeśli piszesz pełne, wyraziste nazwy zmiennych, kod jest już samodokumentujący. To powiedziawszy, nie wahaj się dodawać komentarzy tam, gdzie Twoim zdaniem są potrzebne. Użyj własnego osądu.

Uprość swój kod

Kiedy uczysz się programować po raz pierwszy Jak nauczyć się programowania bez stresu Jak nauczyć się programowania bez stresu Być może zdecydowałeś się kontynuować programowanie, czy to dla kariery, czy dla hobby. Świetny! Ale może zaczynasz czuć się przytłoczony. Nie za dobrze. Oto pomoc w ułatwieniu podróży. często jesteś pełen entuzjazmu. Czytasz wszystko, co możesz na temat wybranego języka, frameworka lub platformy. Zaczynasz napotykać pojęcia, których nigdy wcześniej nie znałeś, i zbyt chętnie używasz ich we własnym kodzie.

Rzeczy takie jak trójskładnikowe operatory, które pozwalają ci zagęścić logikę “instrukcja if” takie jak ten:

 int x = 5; jeśli (x < 10)  y = 1;  else  y = 0;  

W jedną linię, tak jak to:

int x = 5; int y = (x < 10) ? 1 : 0; printf("%i\n", y); 

Operatorzy trójskładnikowi są z pewnością fajni i zachęcam do zapoznania się z nimi. Ale kiedy piszesz kod, który jest łatwy do odczytania dla innych, najlepiej ich unikać. To tylko jeden przykład.

Przewodnik po stylu Arduino zachęca również do unikania wskaźników, instrukcji #define i typów danych innych niż standardowe: boolean, char, byte, int, unsigned int, long, unsigned long, float, double, string, array i void. Powinieneś unikać typów danych, takich jak uint8_t, ponieważ są one rzadziej używane, nie wyjaśnione w dokumentacji i nie strasznie zwięzłe.

Wcięcie i skorzystaj z białych znaków

Jeśli chodzi o pisanie czystego kodu, użytkownicy Pythona mają przewagę, ponieważ standardowy interpreter Pythona nakazuje, aby cały kod musi mieć rozsądną strukturę i wcięcia. Jeśli nie wciśniesz po każdej deklaracji funkcji i klasy oraz instrukcji warunkowej, twój program po prostu nie będzie działał.

W Arduino nic nie stoi na przeszkodzie, aby pisać nieustrukturyzowany, kompaktowany kod. Ostatecznie jest to trudne do odczytania i trudne do utrzymania.

Ale nic też nie powstrzymuje cię przed lepszą strukturą kodu.

Najpierw ustal, o ile chcesz wciąć. Powinieneś ostrożnie używać klawisza Tab, ponieważ każdy edytor tekstowy traktuje kod ASCII tabulatora inaczej, a jeśli udostępniasz swój kod komuś innemu, istnieje szansa, że ​​niechcący wprowadzą niespójności do wcięcia. Te niespójności mogą zepsuć twój program, szczególnie jeśli używasz języka wrażliwego na spacje, takiego jak CoffeeScript CoffeeScript to JavaScript bez bólu głowy CoffeeScript to JavaScript bez bólu głowy Nigdy tak naprawdę nie lubiłem pisać JavaScript. Od dnia, w którym napisałem w nim moją pierwszą linię, zawsze byłem oburzony, że cokolwiek w niej piszę, zawsze wygląda jak Jackson… lub Python. W tym artykule z OpenSourceHacker wyjaśniono bardziej szczegółowo, dlaczego należy unikać klawisza Tab.

Zwykle używam czterech spacji dla każdego wcięcia, ale ogólna liczba zależy od ciebie. Tak długo, jak jesteś konsekwentny.

Możesz jednak skonfigurować IDE i edytor tekstowy, aby traktować każdą kartę jako określoną liczbę spacji, co pozwala jednak używać klawisza Tab bez ryzyka problemów. Jeśli używasz Sublime Text 2, sprawdź ich oficjalną dokumentację. Jeśli używasz Vima, po prostu edytuj .vimrc plik z tymi liniami. Edytor Arduino automatycznie zrobi to za Ciebie i wstawi dwie spacje po każdym naciśnięciu klawisza Tab.

Następnie musisz po prostu wiedzieć, gdzie wciąć kod. Zasadniczo należy zawsze wcinać po każdej deklaracji funkcji i po każdej Jeśli, jeszcze, dla, podczas, przełącznik, i walizka komunikat.

Wielu redaktorów ma możliwość wcięcia całych bloków kodu jednocześnie. Jeśli używasz Sublime Text 2, możesz skonfigurować kombinację klawiszy skrótu lub kombinacji klawiszy. W przeciwnym razie możesz użyć domyślnej kombinacji, którą jest (w OS X) Cmd + [. W edytorze Arduino możesz automatycznie poprawić wcięcie pliku, naciskając Ctrl + T w systemach Windows i Linux oraz Cmd + T w systemie OS X.

To zależy całkowicie od twojego edytora, więc przeczytaj instrukcję!

Nie powtarzaj się

Jedną z najważniejszych mantr dobrego tworzenia oprogramowania jest nie powtarzaj się, który jest często skracany SUCHY.

Pisanie kodu DRY jest niezwykle ważne, ponieważ zapewnia spójność logiki twojego programu, pozwala na dokonanie zmiany w jednym miejscu i odzwierciedlenie jej na całym świecie, a ty spędzasz mniej czasu na pisaniu tego samego raz po raz.

Najlepszym sposobem na pozostanie SUCHYM jest liberalne i hojne stosowanie Funkcje - powtarzanie powtarzanego zadania za pomocą bloku kodu, który można wywoływać raz po raz - i upewniając się, że każde jest odrębne i dobrze napisane.

Dobra funkcja jest krótka; przewodnik PEP-8 niewiele mówi o długości funkcji, ale Clean Code: Handbook of Agile Software Craftsmanship autorstwa Boba Martina (wysoce zalecane) mówi, że “funkcje rzadko powinny mieć długość 20 linii”. Najlepiej byłoby nawet krótszy niż to.

Funkcje powinny robić dokładnie jedną rzecz. Potrzebujesz funkcji, która wykonuje dwie rzeczy? Napisz dwie funkcje.

Te wskazówki ułatwiają śledzenie przebiegu programu i, w razie potrzeby, debugowanie go. Dodatkową korzyścią są użytkownicy Arduino, którzy są ściśle ograniczeni ograniczeniami przestrzeni dyskowej, ponieważ usuwane są nadmiarowości. Powoduje to mniejsze programy.

Wyraźnie

Inną ważną mantrą tworzenia oprogramowania jest “jawne jest lepsze niż niejawne”. Oznacza to, że Twój kod powinien na pierwszy rzut oka wykrzykiwać, co robi. Przewodnik po stylu Arduino mówi, że takich rzeczy należy unikać:

if (buttonPressed) doSomething ();  

Powinieneś raczej dać do zrozumienia, co się dzieje. Zamiast tego napisz coś takiego:

if (buttonPressed == True) doSomething ();  

Wyjdź i kod (cóż)

Pisanie czystego kodu jest zaskakująco proste. Musisz tylko zachować konsekwencję we wszystkim, co robisz, unikać zwolnień i być wyraźnym. Pamiętaj, czysty kod to tylko kod, który można odczytać.

Na ten temat jest wiele świetnych materiałów do czytania. Świetnym punktem wyjścia jest samouczek Arduino i przewodniki po stylu API, a następnie standard PEP-8, jeśli budujesz aplikacje Python dla Raspberry Pi. Jeśli używasz innego języka (np. Javascript na tablicy Tessel Budowanie Internetu rzeczy, z Tessel: Rada rozwoju Node.js Budowanie Internetu rzeczy, Z Tessel: Rada rozwoju Node.js Tessel to nowa rasa płytę programistyczną, która działa w całości na Node.js, a po udanym Kickstarterze osiągnęły punkt, w którym są dostępne dla wszystkich). Sprawdź oficjalny przewodnik po stylu w Google.

Jeśli szukasz bardziej akademickiej lektury na ten temat, sprawdź Clean Code: A Handbook of Agile Software Craftsmanship autorstwa Boba Martina. Wspomniałem o tym wcześniej w tym artykule i jest wysoce zalecane. Mimo że używa Java do zilustrowania pojęć, wiele pomysłów można przekazać do innych języków, takich jak Python i C dla Arduino.

Istnieje również kilka świetnych postów na blogu, które ilustrują, jak pisać dobry, opisowy, czysty kod. Polecam sprawdzić “Czysty, wysokiej jakości kod: przewodnik, jak zostać lepszym programistą” autor: Arash Arabi, piszący dla butterfly.com.au oraz “Podstawy pisania czystego kodu” Chris Reynolds, piszący dla webdevstudios.com.

Chociaż nie jest to wyraźnie związane z czystym kodem, warto również dowiedzieć się, jakich funkcji i bibliotek najlepiej unikać w wybranym języku. Na przykład, jeśli uczysz się PHP, powinieneś unikać “mysql” bibliotek, a jeśli budujesz fizyczne produkty za pomocą Arduino, nigdy nie powinieneś używać funkcji Opóźnienia Funkcja Opóźnienia Arduino i dlaczego nie powinieneś jej używać Funkcja Opóźnienia Arduino i dlaczego nie powinieneś jej używać Podczas gdy opóźnienie () jest przydatne w przypadku podstawowych demonstracji działania Arduino naprawdę nie powinieneś używać go w prawdziwym świecie. Oto dlaczego i czego powinieneś użyć zamiast tego. .

Pamiętaj, że łatwiejszy do odczytania kod jest łatwiejszy w utrzymaniu. Ponadto, jeśli kiedykolwiek utkniesz w czymś, łatwiej jest komuś przeczytać i pomóc.

Czy masz jakieś wskazówki dotyczące pisania czystego kodu? Czy coś przegapiłem? Powiedz mi! Zostaw mi komentarz poniżej i daj mi znać.

Zdjęcie: Dry Bed (Premasagar), Little TAB Key (Kai Hendry), 2015 (Wikilogia)




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.