Найти - Пользователи
Полная версия: Как будет "fail silently" по-русски?
Начало » Флейм » Как будет "fail silently" по-русски?
1 2
Tranquility
subj
Lexander
Если в контексте IT, то “без вывода ошибок” или “ без вывода сообщений об ошибках”.
py.user.next
“тихо сбоить”
имеется в виду, что если происходит ошибка, это не должно оставаться незамеченным

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

Lexander
Расскажите это шаблонизаторам. ;)
каким ? пусть книжки читают
FishHook
Lexander
Что происходит, когда в шаблоне указана неизвестная переменная?
jinja2 выдаст исключение, Django проглотит без исключений.
Lexander
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
FishHook
Lexander,
не понимаю Вашей логики,
Расскажите это шаблонизаторам.
как видим шаблонизаторы ОЧЕНЬ по разному работают, кому мне рассказать то, Ранахеру или господам пишущим Джангу (им бесполезно что то говорить, у них там своя атмосфера)?
Lexander
FishHook
не понимаю Вашей логики
Давайте поясню.
В исходном сообщении я, конечно, допустил промах, подразумевая именно Джанговский шаблонизатор из-за моего текущего открытого на момент сообщения проекта, не указав явно название. Каюсь.

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

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

Следовательно, тезис является частным случаем, а никак не “общим правилом программирования”.
bismigalis
FishHook
jinja2 выдаст исключение
В Chameleon аналогично
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB