Как Вы реализуете журнал аудита для своих объектов (Программирование)?

По состоянию на 20 января 2019 г. PEP 544 имеет статус Draft. Насколько я понимаю, он еще не реализован в CPython.

9
задан GEOCHET 12 March 2009 в 01:57
поделиться

6 ответов

Я происхожу больше из стороны SW, что сторона DB, если Вы создаете ряд ДАО (Объекты доступа к данным), что Вы используете для своего взаимодействия с базой данных. Я затем вставил бы контрольную функциональность в соответствующие функции в ДАО, которые нужно запоздать.

Триггерное решение для базы данных также выполнимо, оно зависит, где Вам нравится помещать Вашу функциональность в DB или в коде

Существует много ORM (Возразите реляционному Отображению), инструменты там, которые создают уровень DAO для Вас.

1
ответ дан 3 November 2019 в 00:06
поделиться

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

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

Править: У меня был [Контрольный] атрибут на каждом свойстве, я хотел полагать, что auditable и используемое отражение находит их, делая метод неопределенным к объектам контролируемый.

7
ответ дан 3 November 2019 в 00:06
поделиться

Я не знаю, будет ли это соответствовать беспрепятственно Вашему ORM, но я использовал проектирование баз данных Момента времени для приложения ERP, и действительно рекомендуйте это. Вы автоматически получаете Историю и Аудит от этой архитектуры, а также другие преимущества.

3
ответ дан 3 November 2019 в 00:06
поделиться

Мы реализовали аналогичное решение, с помощью AOP (aspectJ реализация). Используя этот конкретный могут быть получены точки, и могут быть выполнены определенные операции.

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

Если бы Вы действительно хотите сделать это в слое приложения, я предложил бы это.

Надежда это помогает..

1
ответ дан 3 November 2019 в 00:06
поделиться

Я знаю, что это не отвечает на Ваш вопрос, но для записи, я предпочитаю обрабатывать этот тип аудита логики в базе данных.

0
ответ дан 3 November 2019 в 00:06
поделиться

Я выполнил, это В спящем режиме (другой ORM) использование Перехватчика для Сессии. Тем путем контрольный код является отдельным от Вашего кода.

0
ответ дан 3 November 2019 в 00:06
поделиться
Другие вопросы по тегам:

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