Правила правильного и красивого оформления скрипта. (Qlikview & Qlik Sense)

Автор Eva, 26 января 2016, 04:09:19

« назад - далее »

Eva

Добрый день! Давно заметила за собой такой недостаток, что очень некрасиво пишу формулы и непонятно остальным оформляю скрипт загрузки. Сейчас стала стараться писать его правильно, но все равно не до конца понятно и красиво. Есть ли установленный правила оформления скрипта и больших выражений?Где их можно почитать?

admin

Привет.
Есть определенный набор общих рекомендаций по оформлению программного кода.
В поисковике можно найти много на эту тему.
И что значит - некрасиво? К коду подходит скорее определение - понятно / непонятно.
Если полгода спустя написания вы смотрите на свой код и легко понимаете что хотели сделать - значит все ОК  :)
Приведите пример "некрасивого" кода, обсудим сообща. Думаю всем будет интересно и полезно.

Eva

Вот пример выражения формулы, корректно ли оформлены сеты?
If(GetFieldSelections(_Dimension)='За сегодня', SUM({<[Календарь ПериодNum]={$(=max([Календарь ПериодNum]))}>}((P_RATE)/100)*P_OUT_PORTF_VAL)/1000,
if(GetFieldSelections(_Dimension)='За неделю',SUM({<[Неделя]={$(=max([Неделя]))},[День]>}((P_RATE)/100)*P_OUT_PORTF_VAL)/1000,
    if(GetFieldSelections(_Dimension)='За месяц',SUM({<[$МесяцГодNum]={$(=Max([$МесяцГодNum]))},[День]>}((P_RATE)/100)*P_OUT_PORTF_VAL)/1000,
        SUM(((P_RATE)/100)*P_OUT_PORTF_VAL)/1000
        )
      )
    )

admin

Привет,
Под сетами понимаются выражения задающие условия отбора?
{<[Календарь ПериодNum]={$(=max([Календарь ПериодNum]))}>}
В оформлении никакого криминала не вижу.
Но есть пара замечаний, личных, не базирующихся на каких-либо стандартах.
1. Именование полей, смешанные названия типа [Календарь ПериодNum]. Легче работь с моделью где все поля именуются по одному принципу и желательно на одном языке. Смешанные названия отнимают время на понимание и ввод с клавиатуры.
2. Расчеты в выражениях. Следует помнить, что при каждом изменении выборки происходит перерасчет всех выражений в приложении. Я бы рекомендовал избавиться от выражения:
((P_RATE)/100)*P_OUT_PORTF_VAL)/1000 переместив эту задачку в скрипт подготовки данных.

Яндекс.Метрика