Re: Re: Проверки
Sergeev Serge
simne at yandex.ru
Fri Aug 13 09:55:08 PDT 2010
13.08.10, 17:34, "Oleg Alistratov" <ali at ali.org.ua>:
> On 13.08.2010 15:43, Serg V. Gulko wrote:
>
> > А можно узнать, что ты делаешь? Просто рядовые приложения не стоят
> > такого количества трудозатрат....imho
>
> Ну, даже рядовые (если они не одноразовые скрипты) я люблю
> писать так, чтобы они были железобетонные.
>
> Чтоб потом минимум 10 лет работали, не требуя смазки и регулировки ;)
>
> Через это я уже подсознательно леплю во всех местах
> строгие приведения типов, проверки на exists и defined
"Вы не поверите..." (с) но эрлангисты делают то-же намного проще (у них реально приложения работают десятилетиями без перезагрузок).
В двух словах, в зависимости от вероятной частоты эксепшенов, есть два метода обработки (я немножко упростил и перевел на наш язык):
1. Если эксепшен может быть относительно редко (ну условно, на 100 вызовов функции 1 эксепшен) - тупо трапаем с уничтожением весь объект и его весь пересоздаем.
2. Если эксепшен может быть часто - тогда делаем развернутую обработку ошибок, но опять-же нафик все эти проверки на defined итп - хватит такого:
$self->log(...
- ЕМНИС, при use strict оно безо всяких проверок красиво ляжет с нужным сообщением, если не существует метода log.
И собственно, используйте Moose/Mouse/Class::Accessor - ЕМНИС, там это все уже предусмотрено.
> ну и юнит-тестами покрываю по возможности плотно.
Это само собой.
More information about the Kiev-pm
mailing list