Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 12, 2013 20:14:03

Tranquility
Зарегистрирован: 2013-03-14
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как будет "fail silently" по-русски?

subj

Офлайн

#2 Апрель 12, 2013 21:36:32

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Как будет "fail silently" по-русски?

Если в контексте IT, то “без вывода ошибок” или “ без вывода сообщений об ошибках”.



Офлайн

#3 Апрель 13, 2013 07:04:41

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Как будет "fail silently" по-русски?

“тихо сбоить”
имеется в виду, что если происходит ошибка, это не должно оставаться незамеченным

import this

Errors should never pass silently.



Офлайн

#4 Апрель 13, 2013 14:57:06

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Как будет "fail silently" по-русски?

py.user.next
“тихо сбоить”
имеется в виду, что если происходит ошибка, это не должно оставаться незамеченным
Вам не кажется, что эти для последующего вывода не хватает как минимум одного слова (never) в исходной фразе? :)
Это уже ваша трактовка, причем, в данном случае неверная.
py.user.next
Errors should never pass silently.
Расскажите это шаблонизаторам. ;)
Что происходит, когда в шаблоне указана неизвестная переменная?



Офлайн

#5 Апрель 14, 2013 05:36:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Как будет "fail silently" по-русски?

Lexander
Это уже ваша трактовка, причем, в данном случае неверная.
это не трактовка, а общее правило в программировании
оно же и отражено в Zen'е, а существовало ещё задолго до появления питона

Lexander
Расскажите это шаблонизаторам. ;)
каким ? пусть книжки читают



Офлайн

#6 Апрель 14, 2013 07:51:45

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как будет "fail silently" по-русски?

Lexander
Что происходит, когда в шаблоне указана неизвестная переменная?
jinja2 выдаст исключение, Django проглотит без исключений.



Офлайн

#7 Апрель 14, 2013 13:30:33

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Как будет "fail silently" по-русски?

py.user.next
это не трактовка, а общее правило в программированиионо же и отражено в Zen'е, а существовало ещё задолго до появления питона
Нет такого правила.
Я привел пример, где такое поведение практикуется.
Даже больше, в обсуждениях при подготовке PEP “fail silently” часто встречается как возможное поведение.
Кроме шаблонизаторов, система логгирования тоже работает в режиме fail silently.

Пример в противовес: тестирование, где fail silently делает бессмысленным сам процесс тестирования ;)

FishHook
jinja2 выдаст исключение, Django проглотит без исключений
Именно.
Причем, в Jinja2 просто используется более гибкая система и поведение может быть переопределено.
А в документации
Возможность переопределения сделана намеренно для обеспечения возможности перехода на Jinja с Django Templates.
И чтобы не менять по всем шаблонам
{{ obj.property }}
на
{% if obj %}{{ obj.property }}{% endif %}
или еще хуже с точки зрения читаемости:
{% if obj is defined %}...
можно просто переопределить jinja2.Undefined



Офлайн

#8 Апрель 14, 2013 16:32:22

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как будет "fail silently" по-русски?

Lexander,
не понимаю Вашей логики,

Расскажите это шаблонизаторам.
как видим шаблонизаторы ОЧЕНЬ по разному работают, кому мне рассказать то, Ранахеру или господам пишущим Джангу (им бесполезно что то говорить, у них там своя атмосфера)?



Офлайн

#9 Апрель 14, 2013 17:05:38

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Как будет "fail silently" по-русски?

FishHook
не понимаю Вашей логики
Давайте поясню.
В исходном сообщении я, конечно, допустил промах, подразумевая именно Джанговский шаблонизатор из-за моего текущего открытого на момент сообщения проекта, не указав явно название. Каюсь.

Тем не менее, если расширить выборку шаблонизаторов, то в других языках мы видим то же поведение:
шаблонизаторы скрывают ошибки вида Undefined variable или позволяют их скрыть в продакшн, отключая debug-режим (здесь вывод таких ошибок оправдан), например.

Т.е. мы наблюдаем, как вы и написали, разное поведение, не только fail silently.
И есть несколько классов систем, где тезис
Errors should never pass silently.
не является аксиомой: шаблонизаторы, логгеры.

Следовательно, тезис является частным случаем, а никак не “общим правилом программирования”.



Офлайн

#10 Апрель 14, 2013 17:10:24

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Как будет "fail silently" по-русски?

FishHook
jinja2 выдаст исключение
В Chameleon аналогично

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version