Аудит данных в Oracle на основе пакетных переменных и триггеров

В пакеты Oracle можно добавлять переменные. Эти переменные имеют свои значения для каждой сессии. Такое свойство позволяет организовать аудит — лог записей о том кто и когда менял данные в таблицах. Общий алгоритм такой:

  • Создаётся пакет с переменными.
  • После соединения программа записывает в эти переменные данные о пользователе: идентификатор пользователя, открытый модуль и всё что может понадобится для аудита.
  • На таблицы помещаются триггеры которые используют переменные из пакета аудита и записывают информацию о модификации данных в отдельную таблицу.

Почти все описанные изменения производятся в БД. В клиенте добавляется только код регистрации переменных после коннекта. За счёт этого, такой подход может использоваться даже в наборе старых приложений в которых затруднительно найти и изменить все обращения к таблице в клиентах.

Читать далее Аудит данных в Oracle на основе пакетных переменных и триггеров

PL/SQL developer. 5. Горячие клавиши

Настройка горячих клавиш PL/SQL developer производится в меню Tools->Preference->Key Configuration.

Форма настройки горячих клавиш PL/SQL Developer

Для изменения достаточно встать на строку с часто используемым действием и нажать сочетание клавиш.

Удобно когда заданы горячие клавиши для нового SQL окна (File / New / SQL Window).

Фундаментальные принципы объектно ориентированного проектирования (Часть 2): Инкапсуляция

Вольный перевод статьи Fundamental Object Oriented Design principles (Part 2): Encapsulation.

Рассмотрим принцип Инкапсуляции используемый объектно ориентированными языкми программирования.

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

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

Эта статья предполагает что вы знакомы как минимум с одним ОО языком программирования. C++, Delphi, C# и Java являются примерами объектно ориентированных языков. В отличии от них JavaScript основан на объектах, в нём используется прототипирование вместо классов. Настоящий ОО язык программирования имеет классы, объекты и очень часто интерфейсы.

Что такое Инкапсуляция?

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

Читать далее Фундаментальные принципы объектно ориентированного проектирования (Часть 2): Инкапсуляция

Мысли про статью Люди как нелинейные и наиболее важные компоненты в создании программного обеспечения

Известная статья Алистэра Коуберна Люди как нелинейные и наиболее важные компоненты в создании программного обеспечения раскрывает важную сторону разработки ПО, и в общем-то и других областей деятельности людей. Ниже краткий конспект этой статьи с доабвлением моих мыслей по поводу содержания статьи.

Первичным компонентом в проекте являются люди. От них в большей степень зависит успех или провал проекта, другие факторы (методология, артефакты, процесс) влияют в меньшей степени. Другими словами, любую методологию можно применить чтобы сделать проект успешным и также любая методология может привести к провалу проекта. Это следствия того что методология не основной фактор.

Продолжая эти размышления мы приходим к вопросу

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

Коммуникация

Одни из основных параметров влияющих на проект — это степень коммуникации между людьми. Наиболее эффективными являются обсуждения лицом к лицу, перед доской или ПК. При исключении свойств коммуникации её эффективность падает.

График понижения эффективности коммуникации

Читать далее Мысли про статью Люди как нелинейные и наиболее важные компоненты в создании программного обеспечения

Оператор with и декомпозиция методов в Delphi

У нас в команде запрещён к использованию оператор with. Основная причина в проблемах с надёжность кода с with. Существует и другая сторона работы с with. Часто его применение указывает на плохую организацию кода и переместив код в более адекватное место оператор with станет просто не нужен. Рассмотрим два примера.

Перемещение кода

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

Читать далее Оператор with и декомпозиция методов в Delphi

Drops — изучения слов иностранного языка

drops logo

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

Недостатки:

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

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

WinMerge — сравнение файлов

WinMerge позволяет сравнить два текстовых файла и показывает отличия в них. Работает также как утилиты из систем контроля версий, например, вместе с TortoiseSVN устанавливается TortoiseMerge.

Читать далее WinMerge — сравнение файлов