Отличный совет с сегодняшнего и наболевшего, чтобы вы в опросе выше голосовали "ок" через 5 лет.
Минимизируйте контекст для читателя, блин.
Даже пофиг на коменты, на тесты, даже пофиг на форматирование, но допустим есть функция на 200 строк, даже с хорошим большим экраном это 40-80 строк, зачем больше? (оптимизаторы L1i - молчите).
И ладно там эти 200 строк, но еще оказывается, что есть переменная в начале фции, которая используется 2 раза, но её использование видно только на другой "странице". Ну вот почему её не объявить ближе к месту использования? Чаще я встречаю ответ "ну, да, можно было". Однако мысленный контекст, который надо держать в голове - больше чем надо.
Другое мое любимое - объявлять сперва фции хелперы, а потом уже переходить к чему-то важному. Чувствуется Си, что сперва надо объявить, а потом юзать, но уже перед 2022 с этим стало проще во многих языках.
Мне не надо читать writeTempFile
фцию, если я еще не понял, где она вызывается. Мне слабо поможет тело isHelpRequired(args []string) bool
если я хз кто это будет дергать. Согласитесь, в этой мысли что-то есть. Заметьте, я о приватных вещах пакета говорю (хотя и паблик вещи ок).
Больше чем уверен, что для многих это кеповые вещи, но...а почему оно так часто на практике встречается, а?
Хотелось бы сюда приплести separation of concerns, но уже лень, просто из 200 строчной фции чаще всего выплывает 3-4 разных вещи, жили бы они в 3-4 фциях НИЖЕ того места где используются и это было бы счастье для читателя, о котором забывают, и писателя, который даже о себе не думает.