LINUX.ORG.RU

История изменений

Исправление Manhunt, (текущая версия) :

Ключевая идея в том, чтобы не замусоривать описание основного сценария постоянными упоминаниями того, что на любом шаге этого сценария может произойти какая-нибудь очередная ошибка. Дело в том, что обычно нет никакой разницы, на каком именно из шагов основного сценария ошибка произошла: всё равно в результате этой ошибки весь сценарий целиком считается проваленным, и содержательная обработка ошибки производится ВНЕ логики провалившегося сценария.

Проблема some_string.parse() состоит в том, что чтобы добраться до собственно int-а и дальше с ним работать по существу, придётся поднасрать в код упоминаниями того, что вместо int-а могла вернуться ошибка. Растоманы, после нескольких лет мучений (с unwrap и с try!), сократили это упоминание до единственной кракозябрины - "?". В результате код на расте испещрен бесполезными (с точки зрения той логики, которую код пытается реализовать) кракозябрами.

Но ещё хуже то, что постоянные приплясывания вокруг Result — это не единственный источник бойлерплейта и кракозябр в расте...

Исправление Manhunt, :

Ключевая идея в том, чтобы не замусоривать описание основного сценария постоянными упоминаниями того, что на любом шаге этого сценария может произойти какая-нибудь очередная ошибка. Дело в том, что обычно нет никакой разницы, на каком именно из шагов основного сценария ошибка произошла: всё равно в результате этой ошибки весь сценарий целиком считается проваленным, и содержательная обработка ошибки производится ВНЕ логики провалившегося сценария.

Проблема some_string.parse() состоит в том, что чтобы добраться до собственно int-а и дальше с ним работать по существу, придётся поднасрать в код упоминаниями того, что вместо int-а могла вернуться ошибка. Растоманы, после нескольких лет мучений (с unwrap и с try!), сократили это упоминание до единственной кракозябрины - "?". В результате код на расте испещрен бесполезными (с точки зрения той логики, которую код пытается реализовать) кракозябрами.

Но ещё хуже то, что постоянные приплясывания вокруг Result — это не еденственный источник бойлерплейта и кракозябр в расте...

Исходная версия Manhunt, :

Ключевая идея в том, чтобы не замусоривать описание основного сценария постоянными упоминаниями того, что на любом шаге этого сценария может произойти какая-нибудь очередная ошибка. Дело в том, что обычно нет никакой разницы, на каком именно из шагов основного сценария ошибка произошла: всё равно в результате этой ошибки весь сценарий целиком считается проваленным, и содержательная обработка ошибки производится ВНЕ логики провалившегося сценария.

Проблема some_string.parse() состоит в том, что чтобы добраться до собственно int-а и дальше с ним работать по существу, придётся поднасрать в код упоминаниями того, что вместо int-а могла вернуться ошибка. Растоманы, после нескольких лет мучений (с unwrap и с try!), сократили это упоминание до единственной кракозябрины - "?". В результате код на расте испещрен бесполезными (с точки зрения той логики, которую код пытается реализовать) кракозябрами.