Manypeople поспорили о функции размер. Говорят, что в целом функции должны быть довольно короткими. Мнения варьируются от примерно 15 строк до «около одного экрана», который сегодня, вероятно, составляет около 40-80 строк.
Кроме того, функции всегда должны выполнять только одну задачу.Неужели плохая практика имеет длительный метод инициализации?
Однако существует один вид функции, которая часто терпит неудачу в обоих критериях в моем коде: функции инициализации.
Например, в аудиоприложении звуковое оборудование/API необходимо настроить, аудиоданные должны быть преобразованы в подходящий формат и состояние объекта должно быть правильно инициализировано. Это, очевидно, три разные задачи, и в зависимости от API это может легко охватывать более 50 строк.
Вещь с init-функциями заключается в том, что их обычно вызывают только один раз, поэтому нет необходимости повторно использовать какие-либо компоненты. Не могли бы вы разбить их на несколько более мелких функций, если бы вы считали, что большие функции инициализации в порядке?
+1 для 'утверждают()' в одиночку. – ndim
+1: «нет необходимости повторно использовать какие-либо компоненты». Повторное использование не является проблемой. Написание чего-то, что можно понять и поддерживать другими людьми, гораздо важнее. –
Я помню часть рекомендаций о том, чтобы оставить идентификаторы, начинающиеся с подчеркивания, во внутреннем использовании компилятора C и избегая их в программах. Кроме того, вы должны отметить эти три функции init-off init как 'static'. На этот раз они не будут использоваться за пределами текущего исходного файла. И в качестве дополнительного преимущества интеллектуальный компилятор увидит, что их вызывают только один раз, и просто вставляйте код (на всякий случай, если вы беспокоитесь об этом накладные расходы). – ndim