Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     17 Apr 2002  11:50:08
 To : Yuri Mashkovtsev
 Subject : Re: Прототипы и методы объектов
 -------------------------------------------------------------------------------- 
 
 Здравствуй, Yuri Mashkovtsev.
 
 >>>> YM>     То есть прототипы проверить можно дублированием вызова метода
 >>>> YM>     объекта вызовом той же функции (который doesn't do inheritance).
 YM>                     ^^^^^^^^^^^^^^^!!!!!!!
 YM>   Предвидя появление в эфире нижеследующей сроки, я заранее пояснил
 YM>   (для тех, кто скачет по верхам), что это функция, а не метод.
 
 YM> AC > Блин, специально для тех, кто в танке. Это функция, а не метод.
 
 Ты свой собственный комментарий к тому вызову читал? Прочти.
 
 YM>   Более того, отличить функцию от метода в этом случае можно по
 YM>   наличию (отсутствию) двух старых добрых критериев. Hадеюсь,
 YM>   не требуется их здесь формулировать.
 
 YM> AC > И так каждый раз? Сначала вызвать ничего не делающий MyClass::init
 YM> для AC > проверки прототипирования, а потом уже нормальный вызов метода
 YM> для работы? AC > Hу, AC > ну... Это помимо того, что это все равно ничего
 YM> не лечит.
 
 YM>   Это будет работать как workaround в ситуациях, когда не задействована
 YM>   иерархия. При ее наличии использовать такие проверки бессмысленно.
 
 При отсутствии тоже. Ошибка вылезет как раз в том месте, где ты
 предварительный вызов для проверки прототипирования забыл. Поскольку ты это
 действие должен проделать _каждый_ раз, а при изменении передаваемых
 параметров менять код в _двух_, хотя и соседних местах, такие ошибки будут.
 Причем чаще, чем если ты этой проверки вообще делать не будешь. А если ты еще
 и покроешь код тестами, то runtime проверки у тебя будут срабатывать еще при
 make test. Поскольку тесты полезны не только для проверки прототипирования, но
 и для проверки реальной работоспособности, то тем самым ты убьешь трех зайцев
 за цену одного.
 
 YM> AC > Пример:
 YM>   [код пропущен]
 YM> AC > Ваши действия по проверке прототипирования вызова
 YM> AC > $test->test(1);
 
 YM>   Hет таких действий, и быть не может. Квантор всеобщности еще не
 YM>   обязателен для применения в arbitrary ситуациях.
 
 А в тривиальных ситуациях оно вообще зачем? Интересно, чтобы оно ловило
 нетривиальные, где легко сделать ошибку...
 
 YM>   P.S. А блин с чем ?
 
 С красной икрой. (Фу, гадость.)
 
 -- 
 Artem Chuprina
 Communiware.net
 RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757
 --- ifmail v.2.15dev5
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Прототипы и методы объектов   Yuri Mashkovtsev   16 Apr 2002 19:24:27 
 Re: Прототипы и методы объектов   Artem Chuprina   17 Apr 2002 11:50:08 
Архивное /ru.perl/144548d02a6a7.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional