Нерестовых потоков для обработки данных


У меня есть класс, который порождает потоки для обработки данных. Я работаю на код инструментирования. Когда процесс запущен, время = система.currentTimeMillis(); когда оно завершается, время = система.currentTimeMillis() - время; у меня есть метод, чтобы вспомнить это время:

/**
 * Get the time taken for process to complete
 * 
 * @return Time this process has run if running; time it took to complete if not
 */
public long getRunTime() {
   return processRunning? System.currentTimeMillis() - time : time;
}

Это явное использование тернарного оператора? Мой комментария javadoc понятно?



634
7
задан 2 февраля 2011 в 07:02 Источник Поделиться
Комментарии
4 ответа

Поскольку метод имеет возвращаемое значение, даже если код не закончил обработку первой линии вашей документации следует читать не "получить время, затрачиваемое на процесс завершить", но, возможно, вместо "получения текущего и общего времени обработки" или что-то вроде этого? Я тоже согласен с Бертом Ф замечание, но если бы были ясные комментарии, объясняющие поведение и ты не намерен подвергать его начала и окончания по отдельности, то нет никаких причин, чтобы тратить дополнительную переменную, вы можете оставить код как есть и добавить комментарии или при желании избавиться от логических "processRunning" и вместо того, чтобы использовать свой completedTime/переменную среды выполнения для установления того, что он все еще работает. Все незначительные недостатки, в целом.

6
ответ дан 2 февраля 2011 в 07:02 Источник Поделиться

У меня нет проблем с тернарным оператором.

Но трудно сказать, что результатом является то, что комментарии говорят. Без контекста о том, что время (которое плохое имя переменной) трудно понять результат функции.

время: плохое имя переменной. Время чего?

6
ответ дан 2 февраля 2011 в 08:02 Источник Поделиться

Представляется, что метод порой возвращает метку времени (время) и иногда она возвращает в срок (разница между метками времени) (при условии, что время всегда есть метка, если нет, то этот вопрос просто отходит на время , имеющее двойное определение).

4
ответ дан 2 февраля 2011 в 07:02 Источник Поделиться

Это вопрос стиля и вкуса, но я бы скорее пойти с

public long getRunTime() {
if(processRunning)
return System.currentTimeMillis() - time;

return time;
}

Я просто думаю, что это читается легче, и ее проще комментировать. Теперь поставил меня на огонь на несколько операторов return :Д

2
ответ дан 21 февраля 2011 в 01:02 Источник Поделиться