История изменений
Исправление PRN, (текущая версия) :
обработкой ошибок на месте, с накладными расходами равными нулю.
Если что этот код имеет не «нулевые расходы»
if err := datastore.Get(c, key, record); err != nil {
return &appError{err, "Record not found", 404}
}
Пока err
не известно конвеер продвинуться не может, но в современных процессорах это нивелируется спекулятивными вычислениями. И вполне возможна ситуация что простой вызов
datastore.Get(c, key, record)
может работать быстрее, пока исключение не кинет, но и тут есть нюансы))
то есть генерить исключение в функции и немедля его обрабатывать в вызывающей функции - это ахтунг.
Тебя кто-то заставляет так писать? К чему ты это написал? Сам придумал говнокод, сам его опроверг. Так ты сам с собой поговорить можешь))
Исходная версия PRN, :
обработкой ошибок на месте, с накладными расходами равными нулю.
Если что этот код имеет не «нулевые расходы»
if err := datastore.Get(c, key, record); err != nil {
return &appError{err, "Record not found", 404}
}
Пока err
не известно конвеер продвинуться не может, но в современных процессорах это нивелируется спекулятивными вычислениями. И вполне возможна ситуация что простой вызов
datastore.Get(c, key, record)
может работать быстрее, пока исключение не кинет, но и тут есть нюансы))
то есть генерить исключение в функции и немедля его обрабатывать в вызывающей функции - это ахтунг.
Тебя кто-то заставляет так писать?