Самодокументированный код легче читать и поддерживать
Следуйте принципу наименьшего искупления и принципу « код как документация» : используйте одну переменную для одной цели, чтобы и ее было легко понять, и код легко прочитать без объяснений.
Правильно структурированный код проще (а значит и дешевле) использовать (пере)
Кроме того , здесь , казалось бы , что query
всегда используется для подготовки заявления перед его выполнением. Это, вероятно, признак того, что вы хотите реорганизовать часть этого кода в один (или несколько) вспомогательных методов для подготовки и выполнения запроса (в соответствии с принципом DRY ).
Таким образом, вы эффективно:
- используйте только одну переменную в вашем вспомогательном методе, чтобы идентифицировать запрос текущего контекста,
- нужно вводить меньше кода каждый раз, когда вы хотите повторно выполнить запрос,
- сделать ваш код более читабельным для других.
Примеры:
Подумайте об этом, взятом из вашего примера, где измененная версия явно лучше. Конечно, ваш фрагмент был просто примером для целей этого вопроса, но концепция все еще остается верной и масштабной.
Ваш пример 1:
Strings querycre,queryins,queryup,querydel;
querycre = 'Create table XYZ ...';
execute querycre ;
queryins = 'Insert into XYZ ...';
execute queryins ;
queryup = 'Update XYZ set ...';
execute queryup;
querydel = 'Delete from XYZ ...';
execute querydel ;
Ваш пример 2:
Strings query;
query= 'Create table XYZ ...';
execute query ;
query= 'Insert into XYZ ...';
execute query ;
query= 'Update XYZ set ...';
execute query ;
query= 'Delete from XYZ ...';
execute query ;
Пример 3 (Рефакторированный псевдокод):
def executeQuery(query, parameters...)
statement = prepareStatement(query, parameters);
execute statement;
end
// call point:
executeQuery('Create table XYZ ... ');
executeQuery('Insert into XYZ ...');
executeQuery('Update XYZ set ...');
executeQuery('Delete from XYZ ...');
Преимущество показывает с регулярным повторным использованием.
Персональный анекдот
Я изначально начинал как программист на C, работающий с ограниченным пространством экрана, поэтому повторное использование переменных имело смысл как для скомпилированного кода (тогда), так и для того, чтобы больше кода можно было читать одновременно.
Однако затем, перейдя к языкам более высокого уровня и освоив функциональное программирование, я привык использовать неизменяемые переменные и неизменяемые ссылки везде, где это возможно, для ограничения побочных эффектов.
Что это значит для меня?
Если вы привыкли иметь неизменяемость всех входных данных вашей функции и возвращать новый результат (как истинная математическая функция), вы приобретаете привычку не дублировать магазины.
По сути, это приводит к:
- ты пишешь короткие функции,
- с четко определенными целями,
- это легче понять,
- повторно использовать,
- расширить (будь то путем наследования ОО или функциональной цепочки),
- и документ (как уже самодокументируемый).
Я не говорю, что здесь нет никакой пользы для изменчивого состояния, я просто указываю, как эта привычка может вырасти на вас и как это влияет на читабельность кода.