Clean Code Development With Python (2023-03-28 - 2023-03-30)

Work Environment

Day 1: Python Development: Select Topics

Up front, something about Python The Language. Exercise material not shown, will pick that from here as appropriate, or invent something new.

Basics, And Datatypes

A quick run-through covering Python basics, and its built-in datatypes. Neat insights into Python’s internals (“everything is an object”), iterators, and slicing (the basis for NumPy array handling).

Advanced Topics

There always more about Python. Error handling, automatic resource cleanup, modularization.

(To be created) Presentable material and exercises about

Optional

Even more about Python. Interesting and useful stuff; optional nonetheless.

Day 2: Clean Code? (Software Development: A Craft)

Messages From The Book

../../../../_images/clean-code1.jpg

The following material (which has been created for a similar show, but in C++) will be adapted for our seminar. Goal is to start a discussion on … well … software development, and how it is understood. Agile.

Condensed version of the following talk series by Bob Martin which takes two days to watch:

Object Oriented Programming

Python is not a strict OO language: it does not require anybody to know what a class is. It does bring all features that such languages usually bring, though, and if one knows more, one can do more.

Conversely, Python’s internals are stongly object oriented. int and float are objects, for example, and functions and classes are, too, as are modules and iterators/generators, to name a few more.

It looks like OO is not entirely bad. OO has made its way into software development, it is part of our “craft”, so lets have a deeper look at it.

From Object Oriented Programming:

Exercises: there is some in Object Oriented Programming that we could pick from. Lets think about something more to the point though.

Design Patterns

Discussion: so what? OO is there to solve problems in a readable and reproducible way.

Unit Testing

No craft without testing. Again, automated testing is part of software development for a long time now. Developers, and their employers likewise, do not always recognize the goodness of non-immediacy.

Ease the technical hurdle, give terminology, discuss (unit tests as documentation). The exercises in this training will be formulated as unit tests, so maybe this chapter is in order right at the beginning of it.