https://sd.blackball.lv/ru/articles/read/19568-why-your-code-is-so-hard-to-understand