Яuбy / Говнокод #23398 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
def with_batched_ids(count, ids)
  if ids.is_a? Array
    if ids.length > 1
      ids.each_slice(count) do |ids|
        yield(ids)
      end
    else
      yield(ids)
    end
  else
    yield(ids)
  end
end

Заshitное программирование и просто красивая портянка из yield - end - else. Как на ровном месте придумать целый метод.

Запостил: strax strax, (Updated )

Комментарии (1) RSS

  • Начнем с того, что проверять тип -- тупо. Если ты взял язык без стат типизации, то просто напиши в комментарии, что тебе будут передавать. Иначе можно засрать код ненужными проверками.

    Продолжим тем, что мусор на входе вместо ошибки даст мусор на выходе. Передал строку -- и схватил её в блок.

    Обратим внимание на то, что each_slice это метод Enumerable, а вовсе не конкретного Array, так что код еще и насильно завязан на конкретную реализацию.

    И наконец если array у нас имеет размер 1, то его можно спокойно слайсить: получится тот же самый array.

    И наконец получать блок и елдить его глупо, ведь each_slice может отлично получить &block
    Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8