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