Quality of software matters, whether you share it with others or not. Software should be easy to install, easy to use, and well documented. This training will cover those aspects from the perspective of the Python ecosystem. However, it is also important that software is easy to maintain, so coding style matters, API-level documentation should be available, as well as a battery of tests to ensure the software’s integrity. Of course, good design is at least as important.
Learning outcomes
When you complete this training you will
- know some best practices for writing quality code;
- catch errors at development time by using type annotations in your code;
- know how to handle errors;
- know how to systematically test your code;
- know how to document your code;
- be able to use objected-oriented programming to improve the reuse of your code;
- be able to use functional programming concepts to improve your coding style;
- aware that you can use design patterns to avoid reinventing the wheel.
Schedule
Total duration: 4 hours.
Subject | Duration |
---|---|
introduction and motivation | 5 min. |
coding best practices | 15 min. |
exception handling | 10 min. |
type hints | 10 min. |
documenting code | 10 min. |
unit testing | 50 min. |
coffee break | 10 min. |
object-oriented programming | 80 min. |
functional programming | 20 min. |
design patterns discussion | 20 min. |
wrap up | 10 min. |
Training materials
Slides are available in the GitHub repository, as well as example code and hands-on material.
Target audience
This training is for you if you want robust software that is easy to understand and maintain.
Prerequisites
You will need experience programming in Python. This is not a training that starts from scratch.
If you plan to do Python programming in a Linux or HPC environment you should be familiar with these as well.
Trainer(s)
- Geert Jan Bex (geertjan.bex@uhasselt.be)