Это плохая идея? Нет, вы должны делать то, что имеет смысл, а не следовать некоторому абстрактному правилу (подобное которому почти никогда не учитывает все ситуации, с которыми вы все равно столкнетесь).
Один из способов избежать неприятностей - убедиться, что все функции, возвращающие логические значения, читаются так, как на английском, например: isEmpty()
, userFlaggedExit()
или hasContent()
. Это отличается от моих обычных конструкций глагола, таких как updateTables()
, deleteAccount()
или crashProgram()
.
Для функции, которая возвращает логическое значение, указывающее на успех или неудачу функции, которая обычно следует этой конструкции глагола-существительного, я склонен использовать что-то вроде deleteAccountWorked()
или successfulTableUpdate()
.
Во всех этих случаях с логическим возвратом я могу создать легко читаемое if
утверждение:
if (isEmpty (list)) ...
if (deleteAccountWorked (user)) ...
и т. Д.
Для функций, не возвращающих логические значения, я все еще придерживаюсь соглашения, что 0 в порядке, а все остальные значения являются ошибками какого-либо рода. Использование интеллектуальных имен функций обычно означает, что очевидно, какие именно.
Но имейте в виду, это мое решение. Это может или не может работать для других людей.