Software carpentry: best practices and tools

Course material

Slides of the course:

Exercises:

Checkout url:

svn checkout --username=$USERNAME https://escher.fuw.edu.pl/svn/python-winterschool/public winterschool

Solution to the exercises:

Cheat sheets that summarize the agile development work cycles, and the main features and syntax of Python tools

Good programming practices

Software carpentry in general

Two comprehensive software carpentry courses:

University of Alberta

Tiziano's course at the Bernstein center in Berlin

The classic book about software carpentry: The pragmatic programmer

Coding standards

PEP8, the official Python style guide

pylint , tool to check coding standards

Refactoring

Refactoring home page, maintained by the author of the main refactoring book, //Refactoring: Improving the Design of Existing Code//, Martin Fowler

rope, recommended refactoring tool

bicycle repair man, old and defunct, but worth a mention.

Debugging

pdb, the standard python debugger

winpdb, a graphical interface for pdb. It's platform-independent despite its name.

DDD (DataDisplayDebugger), graphical general-purpose debugger.

Python IDEs often have a built-in debugger.

Profiling

cProfile, the batteries included Python profiler

timeit, built-in Python module to measure the execution time of small code parts

RunSnakeRun, a wxPython-based visualization of profiling results – very intuitive!

Test suites

unittest, the standard Python test framework

py.test, an alternative framework that simplifies writing tests and allows for extension and customization of test experience

nose, another popular alternative

doctest, write tests inside of docstrings

Version control

Subversion (SVN)

SVN book; particularly important is the basic work cycle

A useful and complete one-page cheat sheet for SVN

subclipse, SVN plug-in for Eclipse

TortoiseSVN, SVN integration for the Windows Explorer

Distributed version control

Object Oriented Programming and Software Design

slides | exercise sheet | example solution

A nice example for KIS: Peter Norvig's spelling corrector in 21 lines of Python.

The state pattern example that I talked about: State Pattern Example

Here are a few interesting links about advanced Python OO stuff:

To learn more about software design and design patterns you can read some old-school books:

 
/web/python-winterschool-2010/data/pages/day1.txt · Last modified: 2010/06/28 11:39 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki