Два фрагмента кода путем изменения


У меня есть два фрагмента, которые будут использованы в руководстве, и я хотел бы некоторую обратную связь о том, кто более понятной

1

    property int hours, minutes, seconds
    property real shift: 0.0
    property bool night

    function timeChanged() {
        var date = new Date();
        hours = date.getUTCHours() + Math.floor(clock.shift);
        minutes = date.getUTCMinutes() + (clock.shift % 1) * 60;
        seconds = date.getUTCSeconds();
        night = (hours < 7 || hours > 19);
    }

2

    property int hours, minutes, seconds
    property real shift
    property bool night

    function timeChanged() {
        var date = new Date;
        hours = shift ? date.getUTCHours() + Math.floor(clock.shift) : date.getHours()
        night = ( hours < 7 || hours > 19 );
        minutes = shift ? date.getUTCMinutes() + ((clock.shift % 1) * 60) : date.getMinutes()
        seconds = date.getUTCSeconds();
    }

Я лично считаю, что инстанцирование сдвиг переменной и прыгать ?: оператор вообще является лучшим подходом.

Обратите внимание, что обе эти фрагменты направлены в учебник для людей, кто новичок в QML, и поэтому мне доверили выбирать то, что кажется простым и ясным для людей, которые не знают много о QML.



Комментарии
2 ответа

Я определенно думаю, что образец № 1 является более читаемым. Главная причина (отсутствие) тернарный оператор. Хотя любой программист должен понимать, это увеличивает объем кода, который вы должны прочитать. С Пример #1 Вы можете быстро пропустить деталей после + в часах и минутах заданий, тогда как ? : вы должны читать более внимательно.

Кроме того, в образце № 2 вы в принципе добавить обработку особых случае, без необходимости он, добавив ненужные сложности.

Еще один бонус в образец № 1 является то, что ночью не определен в середине часов/минут/секунд, так что код будет более логично сгруппированы.

Кстати, я думаю, что использование сдвига должны быть задокументированы с комментарием.

5
ответ дан 11 августа 2011 в 09:08 Источник Поделиться

Я не знаю QML и я могу очень хорошо понять, что происходит в образце #1. Использование ? : синтаксис может быть путаете с кем-то новый язык.

Кроме того, например, чтобы определить сдвиг является хорошей и очень читаемый.

0
ответ дан 10 августа 2011 в 06:08 Источник Поделиться