Возможно, вы захотите взглянуть на Чистый код Роберта С. Мартина. Он предлагает множество полезных практик для обеспечения читабельности вашего кода.
Кроме того, если ваш код поддерживается рядом модульных тестов, которые тщательно тестируют ваш код, он дает возможность вашему пользователю понять код, посмотрев, что делают эти тесты. Вы также обнаружите, что если вы будете следовать процессу разработки, управляемой тестами, и будете писать тесты для каждого бита функциональности, ваши функции, как правило, будут небольшими, выполняют только одну задачу и делают это хорошо, и имеют тенденцию больше походить на историю, чем просто большая сложная паутина "вещей".
Тесты, как правило, обновляются больше, чем комментарии. Я часто игнорирую комментарии из-за простого факта, что они очень быстро устаревают.