Здравствуйте, Faland, Вы писали:
F>Код должен быть максимально простой, чтобы его мог читать и понимать джуниор, не владеющий никакой эзотерикой.
Кому должен, почему должен? Без конкретики это неверно. Вот я пишу код для себя. зачем мне его писать так, чтобы его мог читать и понимать джуниор? Я не джуниор. Может я вообще этот код на 1 раз пишу. Даже если код для команды — зачем закладываться на некий джуниорский уровень? Я видел джуниоров, которые генерики не понимали. Генерики выкидываем? ООП это сложно, выкидываем классы. Передать функцию параметром? Оо, вы что, ни в коем случае, джуниор не поймёт.
Есть вот системы на хаскеле. Большие. Какой нафиг джуниор. А люди деньги зарабатывают и не знают, что им надо на паскале всё переписать, чтобы джуниор понял.
Бывают и проекты, которые пишут джуниоры. Там да, код должен быть им понятен, ну или по крайней мере интерфейсы. Но обобщать это на все проекты нельзя.