Article View: pl.comp.lang.python
Article #28017Re: Przydatne narzędzia.
From: Rob Wolfe
Date: Mon, 02 May 2011 20:39
Date: Mon, 02 May 2011 20:39
46 lines
3099 bytes
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
Technical Details
Message-ID:
<87sjswbzwy.fsf@smsnet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!plix.pl!newsfeed1.plix.pl!goblin2!goblin.stu.neva.ru!aioe.org!.POSTED!not-for-mailReferences:
<304b71eb-abaa-4e31-8e51-2801e4814070@glegroupsg2000goo.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!plix.pl!newsfeed1.plix.pl!goblin2!goblin.stu.neva.ru!aioe.org!.POSTED!not-for-mail From: Rob Wolfe <rw@smsnet.pl> Newsgroups: pl.comp.lang.python Subject: Re: Przydatne narzędzia. Date: Mon, 02 May 2011 22:39:09 +0200 Organization: Aioe.org NNTP Server Lines: 46 Message-ID: <87sjswbzwy.fsf@smsnet.pl> References: <304b71eb-abaa-4e31-8e51-2801e4814070@glegroupsg2000goo.googlegroups.com> NNTP-Posting-Host: 2rGoQNolRk9jw3eVwM369A.user.speranza.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) X-Notice: Filtered by postfilter v. 0.8.2 Cancel-Lock: sha1:a4phH6c6t+DfEXuqxX5tp9ylxN4= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit