Я провел здесь некоторые поиски и не нашел ничего подобного, так что я собираюсь пойти дальше и спросить. Это действительно больше о семантике, чем вопрос программирования. В настоящее время я пишу что-то на C ++, но язык на самом деле не имеет значения.
Я хорошо знаю, что это хорошая практика программирования, чтобы ваши функции / методы были максимально короткими. И все же, как вы действительно узнаете, что функция слишком длинная? С другой стороны, возможно ли когда-нибудь слишком много сломать функции?
Первым языком программирования, который я выучил (кроме Applesoft BASIC, который не считается ...), был язык ассемблера 6502, где скорость и оптимизация - это все. В тех случаях, когда несколько циклов подсчитывают сглаживание времени всей вашей программы, часто лучше установить ячейку памяти или зарегистрироваться напрямую, чем переходить к другой подпрограмме. Первая операция может занять 3 или 4 цикла, в то время как последняя может занять в два или три раза больше.
Хотя я понимаю, что в настоящее время, если бы я даже упомянул подсчет циклов некоторым программистам, они просто бросили бы на меня взгляд, это сложная привычка, чтобы избавиться от нее.
В частности, допустим (снова с использованием C ++) у нас есть метод закрытого класса, который выглядит примерно так:
int Foo::do_stuff(int x) {
this->x = x;
// various other operations on x
this->y = this->x;
}
Я видел несколько аргументов, что, по крайней мере, каждый набор операций должен быть своей собственной функцией. Например, do_stuff () в теории должен называться set_x (int x), отдельная функция должна быть написана для набора операций, выполняемых над членом класса x, и третья функция должна быть написана для назначения окончательного значения члена класса. х к ученику у. Но я видел другие аргументы, что КАЖДАЯ операция должна иметь свою собственную функцию.
Мне это кажется неправильным. Опять же, я смотрю на вещи с внутренней точки зрения; каждый вызов метода помещает адрес в стек, выполняет свои операции, а затем возвращается из подпрограммы. Это просто слишком много для чего-то относительно простого.
Есть ли лучшая практика для такого рода вещей или это зависит от индивидуального суждения?