Skip to content
Mateus Oliveira edited this page Sep 7, 2022 · 8 revisions

Welcome to the Python project template Wiki!

Before I started working with software development, I had already seen some important aspects of the area during my graduation in Mathematics, like Clean Code. But when I started as a software developer, two points called my attention: Quality and Automation.

And that is the main goal of this template, to produce an environment as automated as possible for the developers and enforce the code quality of the Python project. It comes with two Command Line Interfaces (CLI) tools:

  • Docky to run less and shorter Docker and Docker Compose commands. Docky CLI help
  • Development scripts (using CLY?!) to run less and shorter development related commands. Development scripts CLI help

Automation

Automation is a technique to reduce human intervention in processes.

Automation biggest advantage is faster processes. But the idea behind the template's automation is to improve the productivity of the developers. Everything that can be done by a script, is done by so. This lets the developers work on what they really like.

Docker

Through Docker, a new contributor to the project can start developing with just one command and having only Docker and Docker Compose installed. This facilitates the integration of new developers to the project, by letting them fully run the project without needing to install new softwares in their machines.

Quality

Software quality assurance is a formal process for evaluating and documenting the quality of the work products during each stage of the software development lifecycle. The practice of applying software metrics to operational factors and to maintain factors is a complex task. Successful software quality assurance is highly dependent on software metrics.

Lee, Ming-Chang. "Software quality factors and software quality metrics to enhance software quality assurance." British Journal of Applied Science & Technology 4.21 (2014).

the literature about the topic talks about several different ways to measure the quality of a software. Three words called my attention when reading them:

  • maintainability: how easy is to apply changes to the code?
  • readability: how easy is to read the code?
  • reliability: how reliable is the code?

Through the template's CI, several quality aspects (focusing in the Python code, but the idea can be applied to other languages) are enforced through tests, typing, linter, code format, security and documentation. I believe the 3 quality factors presented early, can be achieved in your project with the help of this template.

How to measure?

In episode 15 of season 5 of The Office series, the character Andy Bernard finds out it is difficult to be movie critic, and starts to think on other possibilities, like a food critic.

Andy from The Office

In the movies, food, or software areas, there are a lot of ways to assure the quality of the product, and they are not easy (sorry Andy) and they can not be all automated. People are the best way to assure the quality of a project.

This means that the more people use a project, the more quality it will have. In other words, when possible, letting your project open for the public, will make it better.

On the other hand, it is important to understand the aspects that can be measured by a script. We discuss this in next sections.

Editing

To clone this Wiki locally, run

git clone git@github.com:mateusoliveira43/python-project-template.wiki.git