тл; д-р
Тільки якщо мова, якою ви працюєте, вимагає конкретного замовлення. Крім цього, замовлення залежить від вас. Виберіть систему, яка є послідовною та має сенс, і намагайтеся дотримуватися її якомога більше.
1. Чи має значення замовлення?
Тільки якщо мова, якою ви працюєте, повинна мати функцію, визначену раніше у файлі, ніж там, де вона викликана, як, наприклад, у цьому прикладі:
void funcA()
{
funcB();
}
void funcB()
{
//do something interesting...
}
ви отримаєте помилку, тому що телефонуєте funcB()
перш ніж її використовувати. Я думаю, це проблема в PL / SQL і, можливо, також і в C, але ви можете мати попередні декларації, такі як:
void funcB();
void funcA()
{
funcB();
}
void funcB()
{
//do something interesting...
}
Це єдина ситуація, про яку я можу подумати, де, якщо замовлення "неправильне", ви навіть не зможете скласти.
В іншому випадку ви завжди можете їх замовити як завгодно. Напевно, ви навіть можете написати інструмент для цього (якщо ви не можете його знайти там).
2. Чи є "найкраще" замовлення?
Якщо мова / середовище не має вимог до замовлення, то "найкращий" порядок - це той, який найкраще підходить для вас . Мені подобається, що всі геттери / сетери разом, зазвичай на початку класу (але після конструкторів / статичних ініціалізаторів), а потім приватними методами, потім захищеними, потім загальнодоступними. У кожній групі на основі сфери зазвичай немає впорядкування, хоча я перевантажений методом, який я намагаюся зберігати разом, за кількістю параметрів. Я також намагаюся утримувати методи з відповідними функціональними можливостями разом, хоча іноді мені доводиться порушувати своє замовлення на основі сфери; а іноді намагаються підтримувати впорядкування, засноване на масштабах, розбиває групову функціональність. І мій IDE може надати мені алфавітний контур, так що це теж добре. ;)
Деякі мови, як-от C #, мають можливість групувати код у "регіонах" , які не впливають на компіляцію, але можуть полегшити збереження пов'язаних функцій разом, а потім приховати / відобразити їх за допомогою IDE. Як зазначав MainMa , є деякі, хто вважає це поганою практикою. Я бачив добрі та погані приклади регіонів, які використовуються таким чином, тому якщо ви збираєтеся йти цим шляхом, будьте обережні.