Методы для добавления Успехов к программному обеспечению бизнес-класса

Является ли -Wconversion тем, что вы ищете?

Вы можете увидеть поведение здесь во многих случаях.

9
задан Ian Boyd 7 November 2008 в 19:51
поделиться

5 ответов

Прием не является кодированием правил, действительно, это просто, и может, возможно, быть простыми выражениями (number_of_bugs> 1000).

Прием накапливает статистику. Необходимо посмотреть на форму Обработки Потока событий для записи успехов. Например, Вы действительно не хотите реализовывать "1 000 ошибок" успех с "избранным количеством (*) от ошибок где пользователь =: пользователь" все время (Вы могли сделать это этот путь, но возможно не были должны). Скорее необходимо получить событие каждый раз, когда они отправляют ошибку и Вас, системные записи успеха "нашли другую ошибку". Затем правило может проверить "number_of_bugs> 1000".

Очевидно, Вам, возможно, понадобится к "началу насос" если можно так выразиться, устанавливая number_of_bugs на текущее число в DB при запуске системы успеха.

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

Язык сценариев является хорошей идеей также, поскольку они могут легко оценить оба выражения и более сложную логику. "number_of_bugs> 1000" является совершенно действительной программой JavaScript, например. Игра просто будит набор среды.

Можно также сохранить сценарии в DB и сделать редактора "успеха" для добавления их на лету, если Вам нравится, предполагая получение всех соответствующих событий.

5
ответ дан 4 December 2019 в 20:25
поделиться

Я также пытаюсь выяснить, как создать механизм правил успехов.

Я проверил вокруг механизмов правил и каковы основы его. Существует хорошая сводка этого в Википедии

В основном, Вы, у любого есть объединение в цепочку foward, когда Вы, например, проверяете наличие для чего-то; иначе Вы используете Правила продукции События. Это является последним, который привлек мое внимание.

Таким образом, Вы могли предопределить ряд инициированных событий. В механизме можно определить то, что является проверенными условиями, кто основан на доступных метриках и указывает успех ассоциации.

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

Например, у Вас были бы различные события как TicketCreated инициированными в коде.

В механизме правила у Вас могло быть что-то как

Event: TicketCreated
Condition: UserTicketCount >= 1000
Achivement: "Created 1000 tickets"

или чтобы "настройки сброса приняли значение по умолчанию"

Event: SettingsChanged
Condition: Settings = DEFAULT
Achievement: "Reset to Default"

Я еще не попробовал его, но я иду в довольно скоро. Это главным образом theoric на данный момент.

3
ответ дан 4 December 2019 в 20:25
поделиться

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

для, например.

Вы еще зарегистрировали 1 000 часов - "избранная сумма случая (часы)> 1000 затем 'верный' 'ложный' конец от пользователя где user_id =?"

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

1
ответ дан 4 December 2019 в 20:25
поделиться

Успехи бэкенда должны быть простыми - они, кажется, на основе уже отслеженных объектов. Фронтэнд, как Вы правильно заявили, потребует большего количества отслеживания. Одним путем Вы могли бы хотеть сделать, это - реализация механизм аналитики для Вашего сайта фронтэнда.

Piwik по http://www.piwik.org мог бы помочь здесь - это - клон аналитики Google, который Вы размещаете сами. Идея состояла бы в том, чтобы использовать, она регистрирует возможности отследить, когда успех был завершен.

Что касается некоторой формы сценариев правил, необходимо будет всегда вручать, кодируют их - можно, возможно, сделать это более простым хотя путем создания собственного небольшого механизма выполнения сценариев или реализации пользовательского набора Lua.

1
ответ дан 4 December 2019 в 20:25
поделиться

Я думаю, одна таблица для хранения каждого события, которое вы хотите отслеживать. Например, « Выполнен поиск ». Тогда каждое достижение может иметь связанный с ним SQL.

Затем вы можете создать один триггер в таблице Событие , который будет сравнивать достижения, относящиеся к этому событию, и добавлять достижение в Таблица достижений .

Вот схемы быстрых таблиц:

EventItems:
UserId, EventName, DateOccured, AnyOtherInfo

AchievementQualifiers: 
Achievement Name, AchievementCheckSQL, EventsThisAppliesTo 
(Normalize this, if multiple events apply)

В вашей системе, независимо от ее сети или win32, вы просто вставляете в таблицу EventItems всякий раз, когда пользователь выполняет какое-либо событие что вы хотите отслеживать. Вы можете создать один класс, чтобы справиться с этим. Для событий чисто типа DB, таких как «Элемент опубликован» или «Комментарий опубликован», вы можете сделать это с помощью триггера.

Затем в триггерах на EventItems , для каждого AchievementQualifer , имеющего это EventThisAppliesTo , запустите проверку SQL и обновите таблицу UserAchievement , если она истинна и еще не присуждена.

Извините за орфографию, так как я набираю это, сидя в пивной.

1
ответ дан 4 December 2019 в 20:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: