На языках, где у вас есть выбор, лучше поместить основную функцию / метод / код сверху или снизу?

Когда вы пишете программу, состоящую из небольшой части основной логики, которая вызывает несколько вспомогательных функций, вы можете выбрать либо поместить основную логику в верхнюю часть файла, либо в нижнюю часть (предположим, что язык допускает и то, и другое). Что лучше? Должен ли я поставить свою основную логику в начале файла или в конце, после всех вспомогательных функций? Есть ли существенная разница в полезности / удобочитаемости / понятности между ними?

3 ответа

Решение

Я думаю, это просто вопрос предпочтений. Лично мне нравится иметь его наверху, так что, как только вы откроете код, вы сможете точно увидеть, что он делает, а затем перейти к определениям методов оттуда. Я думаю, что это имеет больше смысла, чем открывать файл и видеть кучу случайных методов, а затем прокручивать до конца, чтобы увидеть, как они на самом деле вызываются.

Как я уже сказал, все предпочтения все же. Или:

function myMain(){
  methodOne();
  methodTwo();
  methodThree();
}

function methodOne(){
  //code here
}
function methodTwo(){
  //code here
}
function methodThree(){
  //code here
}

Или же:

function methodOne(){
  //code here
}
function methodTwo(){
  //code here
}
function methodThree(){
  //code here
}

function myMain(){
  methodOne();
  methodTwo();
  methodThree();
}

На мой взгляд, лучше поставить основную логику сверху. Если кто-то прочтет код, он, вероятно, начнет с начала файла. Наличие основной логики в этом месте даст ему обзор того, что должен делать код в этом файле. Вызовы функций в основной логике также говорят ему, где глубже погрузиться в логику.

Когда язык допускает одно и то же (т. Е. Предварительные объявления не требуются), я предпочитаю, чтобы основной код был наверху. Для меня это служит обзором того, что делает код, поэтому кажется разумным, чтобы это было первым, что кто-то видит при просмотре вашего исходного файла.

Я скорее не люблю предварительные объявления (они пахнут как дублирование), и они должны были бы идти перед основным кодом, который побеждает всю цель наличия main быть первым). Так что в C или C++ у меня будет вообще main внизу (где большинство программистов на C/C++ ожидают, что так оно и будет).

Другие вопросы по тегам