Должен ли я проверить параметры метода в Ruby?
У меня есть фон Java и в Java, когда программист вызывает метод с неправильными параметрами, будет выдано исключение. Как Ruby-программисты обрабатывают неверные аргументы метода?
Два противоположных примера из базовых классов:
irb(main):009:0> "" * (-2)
ArgumentError: negative argument
from (irb):9:in `*'
from (irb):9
from C:/Ruby/Ruby193/bin/irb:12:in `<main>'
irb(main):013:0> (-2).times { puts 'hello' }
=> -2
1 ответ
Я обычно стараюсь избегать проверки аргументов в Ruby.
Тем не менее, это действительно зависит от того, какова ваша основная цель. Если вы беспокоитесь о надежности, действуйте осторожно и выдвигайте исключения, когда аргументы приводят к неисправимой ошибке.
Также это зависит от вашего варианта использования:
- Это публичные API? Вы можете строго рассмотреть вопрос о проверке.
- Это частные API / методы? Ну, я бы вообще доверял программисту.
Подходящим подходом может быть использование проверки аргументов на этапе отладки, полезное для обнаружения ошибок и неправильного использования API, а затем - после проверки - удалить проверки.
Итог: нет идеального ответа на этот хитрый вопрос. Это очень зависит как от контекста, так и от личного суждения разработчика.