💡 Инструкция: Выберите один ответ из пяти. На тест отведено 85 минут; после ответа можно открыть объяснение.
Вопрос 21 из 30
Раздел «Наблюдаемость и диагностика»: в примере с Worker важна не форма записи, а поведение. Какое утверждение его описывает?
Visual Basic / VB.NET Visual Basic · Многопоточность и синхронизация Копировать
Class Worker
Private ReadOnly log As ILogger
Public Async Function RunAsync(id As String) As Task
Dim started = Stopwatch.StartNew()
log.Info("job_start", id)
Try
Await ExecuteAsync(id)
log.Info("job_ok", id, started.ElapsedMilliseconds)
Catch ex As Exception
log.Error("job_fail", id, ex)
Throw
End Try
End Function
End Class
Гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко воспроизводит порядок.
Достаточно обеспечить «один текстовый лог без контекста редко воспроизводит порядок»; условие «Гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий» можно отдельно не проверять.
Гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; несколько несвязанных текстовых логов без контекста редко воспроизводит порядок.
Гонки не диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко воспроизводит порядок.
Гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко не воспроизводит порядок.
Вопрос 22 из 30
Раздел «Наблюдаемость и диагностика»: что должно остаться явным после переработки участка с Worker?
Visual Basic / VB.NET Visual Basic · Многопоточность и синхронизация Копировать
Option Strict On
Namespace ReviewCase21_5
Class Worker
Private ReadOnly log As ILogger
Public Async Function RunAsync(reviewId As String) As Task
Dim reviewStarted = Stopwatch.StartNew()
log.Info("job_start", reviewId)
Try
Await ExecuteAsync(reviewId)
log.Info("job_ok", reviewId, reviewStarted.ElapsedMilliseconds)
Catch reviewEx As Exception
log.Error("job_fail", reviewId, reviewEx)
Throw
End Try
End Function
End Class
End Namespace
Зафиксировать в ревью: гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко не воспроизводит порядок.
Зафиксировать в ревью: гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко воспроизводит порядок.
Зафиксировать в ревью: гонки не диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко воспроизводит порядок.
Зафиксировать в ревью: достаточно обеспечить «один текстовый лог без контекста редко воспроизводит порядок»; условие «Гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий» можно отдельно не проверять.
Зафиксировать в ревью: гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; несколько несвязанных текстовых логов без контекста редко воспроизводит порядок.
Вопрос 23 из 30
Раздел «Наблюдаемость и диагностика»: для фрагмента с Worker добавляют регрессионный тест. Какой контракт он должен защищать?
Visual Basic / VB.NET Visual Basic · Многопоточность и синхронизация Копировать
Option Explicit On
Option Infer On
Namespace BoundaryCase21_5
Class Worker
Private ReadOnly log As ILogger
Public Async Function RunAsync(edgeId As String) As Task
Dim edgeStarted = Stopwatch.StartNew()
log.Info("job_start", edgeId)
Try
Await ExecuteAsync(edgeId)
log.Info("job_ok", edgeId, edgeStarted.ElapsedMilliseconds)
Catch edgeEx As Exception
log.Error("job_fail", edgeId, edgeEx)
Throw
End Try
End Function
End Class
End Namespace
Закрепить тестом: гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко воспроизводит порядок.
Закрепить тестом: гонки не диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко воспроизводит порядок.
Закрепить тестом: гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко не воспроизводит порядок.
Закрепить тестом: гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; несколько несвязанных текстовых логов без контекста редко воспроизводит порядок.
Закрепить тестом: достаточно обеспечить «один текстовый лог без контекста редко воспроизводит порядок»; условие «Гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий» можно отдельно не проверять.
Вопрос 24 из 30
Раздел «Наблюдаемость и диагностика»: какой подход сохраняет границу ответственности и делает отказ диагностируемым?
Оставить в коде и тестах условие: гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; несколько несвязанных текстовых логов без контекста редко воспроизводит порядок.
Оставить в коде и тестах условие: гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко воспроизводит порядок.
Оставить в коде и тестах условие: гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко не воспроизводит порядок.
Оставить в коде и тестах условие: достаточно обеспечить «один текстовый лог без контекста редко воспроизводит порядок»; условие «Гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий» можно отдельно не проверять.
Оставить в коде и тестах условие: гонки не диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко воспроизводит порядок.
Вопрос 25 из 30
Что точнее всего описывает механизм «Наблюдаемость и диагностика»?
Технически точный принцип: достаточно обеспечить «один текстовый лог без контекста редко воспроизводит порядок»; условие «Гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий» можно отдельно не проверять.
Технически точный принцип: гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко не воспроизводит порядок.
Технически точный принцип: гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; несколько несвязанных текстовых логов без контекста редко воспроизводит порядок.
Технически точный принцип: гонки диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко воспроизводит порядок.
Технически точный принцип: гонки не диагностируют по идентификаторам операций, времени ожидания, размеру очереди и взаимосвязи событий; один текстовый лог без контекста редко воспроизводит порядок.
Вопрос 26 из 30
Посмотрите на фрагмент по теме «Надёжность в эксплуатации». Какое объяснение точнее всего связывает код с его поведением?
Visual Basic / VB.NET Visual Basic · Многопоточность и синхронизация Копировать
Class WorkQueue
Private ReadOnly queue As New BlockingCollection(Of WorkItem)(100)
Public Function TryEnqueue(item As WorkItem) As Boolean
Return queue.TryAdd(item, millisecondsTimeout:=250)
End Function
Public Sub Complete()
queue.CompleteAdding()
End Sub
End Class
Контракт кода: достаточно явно обеспечить «Рабочая система ограничивает очередь и параллелизм, переживает повтор и частичный отказ»; требование «а также имеет способ мягко остановить приём новой работы перед завершением» на поведение не влияет.
Контракт кода: рабочая система не ограничивает очередь и параллелизм, переживает повтор и частичный отказ, а также имеет способ мягко остановить приём новой работы перед завершением.
Контракт кода: рабочая система ограничивает очередь и параллелизм, переживает повтор и частичный отказ, а также имеет способ мягко остановить приём новой работы перед завершением.
Контракт кода: в разделе Надёжность в эксплуатации выполнение «Рабочая система ограничивает очередь и параллелизм, переживает повтор и частичный отказ» означает, что среда автоматически обеспечивает «а также имеет способ мягко остановить приём новой работы перед завершением».
Контракт кода: рабочая система ограничивает очередь и параллелизм, не переживает повтор и частичный отказ, а также имеет способ мягко остановить приём новой работы перед завершением.
Вопрос 27 из 30
Раздел «Надёжность в эксплуатации»: перед объединением правки нужно проверить один принцип. Какой именно?
Visual Basic / VB.NET Visual Basic · Многопоточность и синхронизация Копировать
Option Strict On
Namespace ReviewCase21_6
Class WorkQueue
Private ReadOnly queue As New BlockingCollection(Of WorkItem)(101)
Public Function TryEnqueue(reviewItem As WorkItem) As Boolean
Return queue.TryAdd(reviewItem, millisecondsTimeout:=251)
End Function
Public Sub Complete()
queue.CompleteAdding()
End Sub
End Class
End Namespace
Зафиксировать в ревью: в разделе Надёжность в эксплуатации выполнение «Рабочая система ограничивает очередь и параллелизм, переживает повтор и частичный отказ» означает, что среда автоматически обеспечивает «а также имеет способ мягко остановить приём новой работы перед завершением».
Зафиксировать в ревью: достаточно явно обеспечить «Рабочая система ограничивает очередь и параллелизм, переживает повтор и частичный отказ»; требование «а также имеет способ мягко остановить приём новой работы перед завершением» на поведение не влияет.
Зафиксировать в ревью: рабочая система не ограничивает очередь и параллелизм, переживает повтор и частичный отказ, а также имеет способ мягко остановить приём новой работы перед завершением.
Зафиксировать в ревью: рабочая система ограничивает очередь и параллелизм, не переживает повтор и частичный отказ, а также имеет способ мягко остановить приём новой работы перед завершением.
Зафиксировать в ревью: рабочая система ограничивает очередь и параллелизм, переживает повтор и частичный отказ, а также имеет способ мягко остановить приём новой работы перед завершением.
Вопрос 28 из 30
Какое свойство механизма «Надёжность в эксплуатации» нужно проверить на редком, но допустимом сценарии?
Visual Basic / VB.NET Visual Basic · Многопоточность и синхронизация Копировать
Option Explicit On
Option Infer On
Namespace BoundaryCase21_6
Class WorkQueue
Private ReadOnly queue As New BlockingCollection(Of WorkItem)(99)
Public Function TryEnqueue(edgeItem As WorkItem) As Boolean
Return queue.TryAdd(edgeItem, millisecondsTimeout:=249)
End Function
Public Sub Complete()
queue.CompleteAdding()
End Sub
End Class
End Namespace
Добавить регрессионную проверку: рабочая система ограничивает очередь и параллелизм, переживает повтор и частичный отказ, а также имеет способ мягко остановить приём новой работы перед завершением.
Добавить регрессионную проверку: рабочая система не ограничивает очередь и параллелизм, переживает повтор и частичный отказ, а также имеет способ мягко остановить приём новой работы перед завершением.
Добавить регрессионную проверку: достаточно явно обеспечить «Рабочая система ограничивает очередь и параллелизм, переживает повтор и частичный отказ»; требование «а также имеет способ мягко остановить приём новой работы перед завершением» на поведение не влияет.
Добавить регрессионную проверку: в разделе Надёжность в эксплуатации выполнение «Рабочая система ограничивает очередь и параллелизм, переживает повтор и частичный отказ» означает, что среда автоматически обеспечивает «а также имеет способ мягко остановить приём новой работы перед завершением».
Добавить регрессионную проверку: рабочая система ограничивает очередь и параллелизм, не переживает повтор и частичный отказ, а также имеет способ мягко остановить приём новой работы перед завершением.
Вопрос 30 из 30
Раздел «Надёжность в эксплуатации»: какой вывод описывает семантику, а не предпочтение в оформлении?
Надёжное обобщение: в разделе Надёжность в эксплуатации выполнение «Рабочая система ограничивает очередь и параллелизм, переживает повтор и частичный отказ» означает, что среда автоматически обеспечивает «а также имеет способ мягко остановить приём новой работы перед завершением».
Надёжное обобщение: достаточно явно обеспечить «Рабочая система ограничивает очередь и параллелизм, переживает повтор и частичный отказ»; требование «а также имеет способ мягко остановить приём новой работы перед завершением» на поведение не влияет.
Надёжное обобщение: рабочая система ограничивает очередь и параллелизм, не переживает повтор и частичный отказ, а также имеет способ мягко остановить приём новой работы перед завершением.
Надёжное обобщение: рабочая система ограничивает очередь и параллелизм, переживает повтор и частичный отказ, а также имеет способ мягко остановить приём новой работы перед завершением.
Надёжное обобщение: рабочая система не ограничивает очередь и параллелизм, переживает повтор и частичный отказ, а также имеет способ мягко остановить приём новой работы перед завершением.