Python: czytelność i nowoczesność przede wszystkim
Na Pythona można patrzeć z wielu różnych punktów widzenia. Rozpatrywać jego cechy pod kątem wydajności, zastosowania w tworzeniu skryptów, dokładności obliczeń numerycznych czy choćby dostępności bibliotek. Dziś spojrzymy na niego przede wszystkim jako na język programowania, który jest czytelny i nowoczesny.
Czytelność
To zadziwiające, jak wiele czynników wpływających na czytelność kodu wprowadzili do języka Python jego twórcy. Występują one na ogromnej liczbie płaszczyzn: teoretycznych standardów kodowania, zasad pisania komentarzy, robienia odstępów w kodzie czy składni języka (została nawet spisana filozofia przyświecająca Pythonowi). Przyjrzenie się im może budzić podziw. Wszystko – od stylu pisania kodu po choćby myślenie o Pythonie – ukierunkowane jest na czytelność. Zobaczmy z bliska, o co dokładnie chodzi.
Proste nazwy w języku angielskim
Jestem pod wrażeniem staranności, z którą zostały dobrane nazwy zmiennych, funkcji oraz słów kluczowych języka Python. Kod programu czyta się naprawdę jak książkę. Nie jest przy tym rozwlekły, nazwy nie są z reguły długie – ale równocześnie bardzo celnie i trafnie opisują działanie danej funkcji lub przeznaczenie i zawartość zmiennej.
Niewątpliwie brawa należą się twórcom języka, ale jest to nie mniej ważna informacja również dla nas – w celu tworzenia czytelnego kodu, który będzie dla nas zrozumiały za miesiąc, za pół roku, za rok – powinniśmy bardzo starannie dobierać nazwy zmiennych. Patrząc na dobrze napisany kod, będziemy mogli powiedzieć niczym Cypher z pierwszej części filmu Matrix: "[...] I don't even see the code. All I see is blonde, brunette, redhead. Hey, you a... want a drink?".
Obowiązkowe wcięcia
Wcięcia – osławione przez jednych i znienawidzone przez innych (przyrównujące tę konwencję do pomysłu z czasów języka FORTRAN). To z jednej strony najbardziej podstawowa a równocześnie genialna w swojej prostocie metoda na zwiększenie czytelności kodu. Python idzie dalej.
Po pierwsze, język ten wymusza stosowanie wcięć. To krok milowy w kierunku uczynienia kodu programu bardziej czytelnym. Co więcej, dzięki oznaczaniu kolejnych bloków instrukcji wcięciami można zredukować w składni liczbę ozdobników, takich jak klamerki, nawiasy czy średniki. Dzięki temu widzimy samą implementację kodu: nazwy funkcji i zmiennych, obiektów czy klas, a nie niewiele dla nas znaczące i raczej zaciemniające całokształt klamerki i nawiasy.
Standard kodowania: PEP-8
Na straży czytelności kodu stoi przede wszystkim PEP-8, czyli typowy standard kodowania. Został on stworzony dla osób programujących kod dla biblioteki podstawowej Pythona, ale jest również stosowany w wielu innych projektach na całym świecie. Oczywiście, większości tych zasad, można używać także w innych języka programowania.
Wcześniej spotkałem się tylko z Drupal Coding Standards oraz coding standards moich wykładowców. Jednak szczegółowość oraz zasięg reguł, które zostały zdefiniowane w przypadku Pythona, przerosła moje oczekiwania.
Gdyby ktoś potrzebował przyjrzeć się proponowanym przez Guido zasadom, dobry skrót można znaleźć na blogu Grzegorza Szymańskiego w serii wpisów zatytułowanych Moja ściąga z PEP-8. Niestety, nawet przytoczenie najważniejszych elementów przekracza ramy tego artykułu.
«poprzednia 1 2 3 4 następna »
Polecamy
Reklama
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Pobierałeś pirackie pliki? Uważaj! Kontrole antypirackie w domach użytkowników to codzienność
31
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
Wynalazca WWW przed sądem: walczy tam o wolny dostęp do webowych technologii dla każdego
8
PHP 5.3.9 nie pozwoli hakerom zawiesić serwera. Pozwoli za to przejąć nad nim kontrolę
28
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Klamka jeszcze nie zapadła. Minister prosi Donalda Tuska, by wstrzymał się z podpisywaniem ACTA
24
Społeczność
Nie dla ACTA. Nie dla INDECT. Nie dla europejskiego superpaństwa policyjnego. "rejestruje dane statyczne tj. wygląd podpisu, jak i dynamiczne: czas...
slawek22 @WebDev:
Te korporacje i "twórcy" starej daty których tak bronisz nie...
darekp @eimi, a co za różnica między zdobytym pieniędzmi a nie? Spróbuj zdobyć...
Jan "Tablet, na którym można uruchomić prawdziwe Microsoft Office, ładnie...
Maciekkkk Strona nie działa!
WebDev @eimi®
Zdobyte inaczej niż pieniędzmi, czyli jak? Czy mógłbyś to rozwinąć...
eimi @Webdev, a ja jeszcze raz Ci powiem - to co zdobyte inaczej niż pieniędzmi...
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |









#1 hipertracker® 2009-06-05 01:47:22 0
IP: 92.251.155.[...] Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; pl; rv:1.9.1b4) Gecko/20090423 Firefox/3.5b4
#2 Jan Koprowski® 2009-06-05 06:43:12 0
IP: 87.207.101.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.28 Safari/530.5
#3 hipertracker® 2009-06-05 14:25:09 0
IP: 193.95.179.[...] Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/528.18.1 (KHTML, like Gecko) Version/4.0 Safari/528.17
#4 hipertracker® 2009-06-05 14:42:24 0
IP: 193.95.179.[...] Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/528.18.1 (KHTML, like Gecko) Version/4.0 Safari/528.17
#5 Aspiryna 2009-06-07 17:45:06 -1
Pokaż komentarzIP: 213.134.186.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10
#6 Aspiryna 2009-06-07 17:47:16 -1
Pokaż komentarzIP: 213.134.186.[...] Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10
#7 Jacek Medyk 2009-06-09 16:55:50 -1
Pokaż komentarzIP: 83.10.151.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
#8 hipertracker® 2009-06-09 22:54:49 0
IP: 212.2.170.[...] Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; pl-pl) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Safari/530.17
#9 Jacek Medyk 2009-06-10 18:01:38 0
IP: 83.10.176.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
#10 hipertracker® 2009-06-11 20:03:05 0
IP: 78.16.112.[...] Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; pl-pl) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Safari/530.17
#11 Fan Zabiełło 2009-06-11 22:38:40 0
IP: 84.234.40.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
#12 me_ 2009-08-06 10:51:27 0
IP: 81.186.224.[...] Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.00
#13 Marek Lewandowski 2010-05-06 18:50:02 0
IP: 87.119.53.[...] Mozilla/5.0 (X11; U; Linux i686 (x86_64); pl-PL; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.0
#14 Marek Lewandowski 2010-05-06 18:53:08 0
IP: 87.119.53.[...] Mozilla/5.0 (X11; U; Linux i686 (x86_64); pl-PL; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.0
#15 demikaze 2010-06-06 02:13:25 0
IP: 62.141.223.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3