🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
3 messages
3 total messages Started by Petey Mon, 02 May 2011 19:14
Re: Przydatne narzędzia.
#28015
Author: Petey
Date: Mon, 02 May 2011 19:14
5 lines
1705 bytes
Od jakiegoś czasu korzystam właśnie z linuxa, gdyż pod windowsem pojawiały się różne problemy, które było trudno rozwiązać. 

Jeszcze jedna rzecz, kiedy zacząć uczyć się debuggowania? Czy używać klasy do debugu w pythonie, czy korzystać zewnętrznych klas do debugowania? W jaki sposób się za to zabrać (chodzi o to czy równolegle z nauką kodowania np. oop, czy dopiero po jakimś czasie)? 

Wiem, że jest to bardzo istotna rzecz i na początku zapewne będzie trudniej wszystko pojąć, lecz same wskazówki praktyczne będą przydatne w przyszłości.
Re: Przydatne narzędzia.
#28017
Author: Rob Wolfe
Date: Mon, 02 May 2011 20:39
46 lines
3099 bytes
Petey <efrinut@gmail.com> writes:

> Od jakiegoś czasu korzystam właśnie z linuxa, gdyż pod windowsem
> pojawiały się różne problemy, które było trudno rozwiązać. 
>
> Jeszcze jedna rzecz, kiedy zacząć uczyć się debuggowania? Czy używać
> klasy do debugu w pythonie, czy korzystać zewnętrznych klas do
> debugowania? W jaki sposób się za to zabrać (chodzi o to czy
> równolegle z nauką kodowania np. oop, czy dopiero po jakimś czasie)? 
>
> Wiem, że jest to bardzo istotna rzecz i na początku zapewne będzie 
> trudniej wszystko pojąć, lecz same wskazówki praktyczne będą przydatne 
> w przyszłości.

Nie wiem czy to tylko moja przypadłość, ale z debuggera w przypadku
Pythona korzystam niezwykle rzadko (przeważnie przy pisaniu jakichś
rozszerzeń w C).
Być może wynika to z faktu, że proces tworzenia programu w Pythonie
wygląda nieco inaczej niż w językach bez interaktywnego intepretera.
Pisząc kod w Pythonie uruchamiam funkcję po funkcji i obserwuję na
bieżąco co się dzieje.
Drugą linią obrony jest jakiś statyczny analizator kodu
(w moim przypadku `pyflakes` [1]_), który w locie wyłapuje proste błędy,
typu literówki, brak importu itp. Inne tego typu narzędzia to np.: PyChecker
i PyLint.
Trzecia zapora to oczywiście testy, np. doctesty [2]_, czy unittesty [3]_.

Dodatkowo często używam modułu `logging` [4]_ do wypisywania istotnych
informacji, które mogą pomóc przy rozwiązywaniu ewentualnych problemów.

Także sytuacja, w której wszystkie powyższe zabiegi nie wystarczą 
i muszę odpalić debugger zdarza się bardzo rzadko.
Jak już do tego dojdzie to akurat debugger w pydev jest OK.

Reasumując polecałbym zainwestowanie czasu i energii w naukę korzystania
z narzędzi typu PyFlakes i pisanie dobrych testów *wraz* z rozwojem kodu.
Także wyrobienie sobie nawyku rozwijania programu w ścisłej współpracy 
z interpreterem, czyli zapominamy o znanym skądinąd sposobie: 12h
hakowania, po czym odpalenie i żmudne debuggowanie.

RW

.. [1] https://launchpad.net/pyflakes
.. [2] http://docs.python.org/library/doctest.html
.. [3] http://docs.python.org/library/unittest.html
.. [4] http://docs.python.org/library/logging.html
Re: Przydatne narzędzia.
#28009
Author: Michal
Date: Mon, 02 May 2011 21:55
1 lines
987 bytes
Ucz sie w miare potrzeb. Jezeli teraz nie potrzebujesz debugowac to szkoda czasu.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads