vitus_wagner: My photo 2005 (Default)
vitus_wagner ([personal profile] vitus_wagner) wrote2017-03-15 09:37 am

Semantic locality

http://esr.ibiblio.org/?p=7421

Раймонд умный пост написал по поводу концепций, которые лежат под Unix way. Я эту мысль про семантическую локальность три дня думать буду.

[personal profile] inkelyad 2017-03-18 01:36 pm (UTC)(link)
А вот бы знать.
Это демонстрация того, как я понял утверждения хозяина журнала о потере контекста - что одно и то же исключение, которое бросилось тут и или там, нужно как-то различать , но это немного затруднительно.
livelight: (Default)

[personal profile] livelight 2017-03-18 01:46 pm (UTC)(link)
Пользователю нужно сообщение с бизнес-смыслом.
Исключение OutOfBounds не имеет никакого бизнес-смысла само по себе, откуда бы оно ни вылетело. Оно может обрести такой смысл только после анализа инцидента разработчиками.
Однако, во многих случаях и глубокоуровневый код имеет возможность выкинуть исключение с бизнес-смыслом. Хотя бы ValidationFailedOutOfBoundsException extends ArrayIndexOutOfBoundsException - кому надо, может его поймать особым образом с учётом его бизнес-смысла, а кто не может - тот обработает его как техническое ArrayIndexOutOfBoundsException. Контекстом в данном случае будет точный подкласс и дополнительные его поля.
livelight: (Default)

[personal profile] livelight 2017-03-18 06:32 pm (UTC)(link)
Идеальным разработчикам в вакууме вполне по силам проанализировать все возможные исключительные ситуации (включая поломки внешних и внутренних систем, протёкшие абстракции того уровня, на котором эти программисты как раз работают и корявые введённые данные) и краевые случаи во всех возможных комбинациях и предусмотреть внятную диагностику для пользователя и хорошие процедуры фейл-бэка (например, чтобы банкомат, прежде чем сказать "ой, всё", постарался отдать пользователю его карточку). В реальной же жизни у них случаются баги, которые требуют анализа уже постфактум - для чего уже нужны логи, стек-трейсы и т.д.
Edited 2017-03-18 18:42 (UTC)
yurikhan: (Default)

[personal profile] yurikhan 2017-03-19 04:25 pm (UTC)(link)
Идеальный банкомат должен говорить, сколько у него осталось каких денег, не пользователю, а банку в заббикс. Чтобы по алёрту прибежал админ и поменял оранжевый (сине-зелёный, фиолетовый, коричневый) картридж.