Foundations of Agile Python Development (eBook)
416 Seiten
Apress (Verlag)
978-1-4302-0635-4 (ISBN)
The agile development movement represents the latest advances in tools and techniques intended to boost developer productivity. This is the first book to apply these sought after principles to Python developers, introducing both the tools and techniques built and supported by the Python community. Authored by Jeff Younker, who is perhaps best known for his creation of a popular Python testing framework, this book is sure to be a hit among readers who may have reached their limits of knowledge regarding the Python language, yet are seeking to improve their understanding of how sound processes can boost productivity to unparalleled heights.
Jeff Younker once trained in mathematics and biochemistry at the University of Houston, but was lost to the world of computers early in his trials. He has been employed in one capacity or another in the world of scripts and programming for over 15 years. He's been developing in Python for the last several years after a long stint working with Java and Perl.
You've long been enamored with the Python language, and have mastered its many nuances. Yet something seems to be missing-a productivity boost that you know is possible but you're not sure how to go about it. This was the sentiment of so many developers before discovering Agile programming paradigm, which embraces concepts such as automation, effective code management, and test-driven development.Foundations of Agile Python Development is the first book to apply these sought after principles to Python developers, introducing both the tools and techniques built and supported by the Python community. Authored by Jeff Younker, a well known member of Python's agile community who is perhaps best known for his creation of a popular Python testing framework, this book is sure to be a hit among readers who may have reached their limits of knowledge regarding the Python language, yet are seeking to improve their understanding of how sound processes can boost productivity to unparalleled heights.
Jeff Younker once trained in mathematics and biochemistry at the University of Houston, but was lost to the world of computers early in his trials. He has been employed in one capacity or another in the world of scripts and programming for over 15 years. He's been developing in Python for the last several years after a long stint working with Java and Perl.
Contents 5
About the Author 13
About the Technical Reviewer 14
Acknowledgments 15
Introduction 17
Who This Book Is For 17
What’s Really in Here? 18
Contacting Me 19
Chapter 1 What Is Agile Development? 20
Why More Methodologies? 20
A Little History 22
Planning and Agile Development 23
What Are Agile Methods? 23
Summary 37
Chapter 2 The IDE: Eclipsing the Command Line 39
Installing Eclipse 41
Installing Plug-Ins 43
Installing and Configuring Pydev 49
Your First Project 50
Looking Under the Hood 56
Paying for More Functionality 57
Summary 58
Chapter 3 Revision Control: Subverting Your Code 59
Revision Control Phylum 60
What Subversion Does for You 61
Getting Subverted 62
Working with Your Subverted Code 65
Updating Your Working Copy 72
Conflicting Changes 73
Subverting Eclipse 77
Working with a Subverted Eclipse 82
Committing Changes 88
Editing a File 89
Reverting Changes 90
Resolving Conflicts 91
Deleting Files 94
Moving Files 95
Renaming Files 95
Copying Files 96
Summary 97
Chapter 4 Setuptools: Harnessing Your Code 99
The Project: A Simple RSS Reader 99
Python Modules 100
The Old Way 101
The New Way: Cooking with Eggs 102
Some Notes About Building Multiple Versions 103
Installing Setuptools 104
Getting Started with Setuptools 105
Building the Project 106
Installing Executables 109
Dependencies 110
Think Globally, Install Locally 112
Fixing Options with setup.cfg 115
Bootstrapping Setuptools 115
Subverting Subversion: What Shouldn’t Be Versioned 116
Checking in Changes: Not Losing It 118
Working in Development Mode 118
Summary 120
Chapter 5 A Build for Every Check-In 121
Buildbot Architecture 122
Installing Buildbot 122
Configuring the Build System 124
Mastering Buildbot 125
Enslaving Buildbot 130
Hooking Up Source Control 134
Using the Source 137
Subversion to Buildbot, Over 139
A Python for Every Builder 140
Finally, a Real Build Succeeds 142
Installing the Build 143
Supporting Python 2.4 Builds 146
Ensuring Local Dependency Processing 150
Keeping Up Appearances 152
Summary 154
Chapter 6 Testing: The Horse and the Cart 156
Unit Testing 158
The Problems with Not Unit Testing 159
Pessimism 160
Test-Driven Development 163
Knowing Your Unit Tests 164
unittest and Nose 165
A Simple RSS Reader 166
The First Tests 168
Finding Tests with Nose 176
Skipping Slow Tests 177
Integrating the Tests into the Environment 179
Summary 190
Chapter 7 Test-Driven Development and Impostors 192
Moving Beyond Acceptance Tests 192
Renaming 200
Overriding Existing Methods: Monkeypatching 202
Using Data Files 206
Isolation 207
Rolling Your Own 209
Python Quirks 210
Mocking Libraries 210
Aggregating Two Feeds 211
A Simple pMock Example 212
Implementing with pMock 213
A Simple PyMock Example 229
Implementing with PyMock 232
Other pMock and PyMock Features 245
Summary 248
Chapter 8 Everybody Needs Feedback 249
Measuring Software Quality 251
Measurements 252
Quantitative Measurements: How Much Is That Doggie in the Window? 253
Code Coverage 253
Complexity Measurements 255
Velocity: When Are We Done? 258
Qualitative Measurements: It’s a Shih Tzu! 259
Coding Conventions 260
Welcome Back to Python 262
Never Try to Fix a Social Problem with a Technical Solution 264
Code Reviews 265
Renaming 266
Communication 266
Technological Feedback: Bad Programmer, No Cookie 267
Coercion at the Keyboard 267
When Code Is Submitted 272
Buildbot and Coverage 274
Summary 277
Chapter 9 Databases 278
A New Religion 278
Blurring the Boundaries 279
Concealing Data Access 280
Object-Relational Mappers 280
Python ORMs 282
Building the Database 311
Testing 312
Refactorings 313
Migrations 313
Summary 321
Chapter 10 Web Testing 323
Really Simple Primer 323
HTML 324
CSS 325
XML 325
URI and URL 325
HTTP 326
Web Servers and Web Applications 326
WSGI Middleware 330
Testing Web Applications 330
Using JsUnit 335
Summary 351
Chapter 11 Functional Testing 353
Running Acceptance Tests 353
FIT into Buildbot 367
Summary 381
Index 383
Erscheint lt. Verlag | 18.6.2009 |
---|---|
Zusatzinfo | 416 p. |
Verlagsort | Berkeley |
Sprache | englisch |
Themenwelt | Informatik ► Programmiersprachen / -werkzeuge ► Python |
Informatik ► Software Entwicklung ► Objektorientierung | |
Mathematik / Informatik ► Informatik ► Web / Internet | |
Schlagworte | agile programming • Databases • Development • Eclipse • interfaces • language • Productivity • programming • Python • Testing |
ISBN-10 | 1-4302-0635-7 / 1430206357 |
ISBN-13 | 978-1-4302-0635-4 / 9781430206354 |
Haben Sie eine Frage zum Produkt? |
Größe: 4,8 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich