https://www.tecnogestion.com/10-tips-to-write-clean-and-maintainable-code/blog-6/