Python Cookbook 2Nd Edition Jun 1002005 [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Python Cookbook 2Nd Edition Jun 1002005 [Electronic resources] - نسخه متنی

David Ascher, Alex Martelli, Anna Ravenscroft

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید






Introduction


Credit: Mark Hammond, co-author of Python
Programming on Win32 (O'Reilly)


The
first computer I had in my home was a 64 KB Z80 CP/M machine. Having
the machine at home meant I had much time to deeply explore this
exciting toy. Turbo Pascal had just been released, and it seemed the
obvious progression from the various BASIC dialects and assemblers I
had been using. Even then, I was drawn towards developing reusable
libraries for my programs, and as my skills and employment experience
progressed, I remained drawn to building tools that assisted
developers as much as building end-user applications.

Building tools for developers means that debugging and testing are
often in the foreground. Although images of an interactive debugger
may pop into your head, the concepts of debugging and testing are
much broader than you may initially think. Debugging and testing are
sometimes an inseparable cycle. Testing will often lead to the
discovery of bugs. You debug until you believe you understand the
cause of the error and make the necessary changes. Rinse and repeat
as required.

Debugging and testing often are more insidious. I am a big fan of
Python's assert statement, and
every time I use it, I am debugging and testing my program. Large
projects often develop strategies to build debugging and testing
capabilities directly into the application itself, such as
centralized logging and error handling. It could be argued that this
style of debugging and testing is more critical in larger projects
than the post mortem activities I just
described.

Python, in particular, supports a variety of techniques to help
developers in their endeavors. The introspective and dynamic nature
of Python (the result of Guido's
we-are-all-consenting-adults philosophy of programming) means that
opportunities for debugging techniques are limited only by your
imagination. You can replace functions at runtime, add methods to
classes, and extract everything about your program that there is to
know. All at runtime, and all quite simple and Pythonic.


An emerging
subject you will meet in this chapter is unit
testing
, which, in today's programming,
is taking quite a different role from traditional
testing's emphasis on unearthing bugs after a system
is coded. Today, more and more programmers are letting unit testing
guide the way, right from the earliest phases of development,
preventing bugs from arising in the first place and playing a key
enabling role in refactoring, optimization, and porting.
Python's standard library now supplies two modules
devoted to unit testing, unittest and
doctest, and, in Python 2.4, a bridge between
them, which you'll see highlighted in one of this
chapter's recipes. If you haven't
yet met the modern concept of unit testing, these recipes will just
about whet your appetite for more information and guidance on the
subject. Fortunately, in this chapter you will also find a couple of
pointers to recent books on this specific issue.

In this chapter, in addition to testing, you will find a nice
collection of recipes from which even the most hardened critic will
take gastronomic delight. Whether you want customized error logging,
deep diagnostic information in Python tracebacks, or even help with
your garbage, you have come to the right place. So tuck in your
napkin; your next course has arrived!


/ 394