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