Статьи

Интервью: Константин Чикарев на Epictetus Database Manager

Константин Чикарев недавно объявил о выпуске точечной версии Epictetus, инструмента управления базами данных на основе Swing . Константин руководит Antilogic Software в Москве и рассказывает всем о своем инструменте ниже.

Привет, Константин, вы можете начать представляться?

Привет Гиртян! Меня зовут Константин Чикарев. Последние 5 лет я работал веб-разработчиком на Java. Я живу в Москве, в Российской Федерации.

Antilogic Software — что это за компания?

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

Тем не менее, это не моя основная работа, и я сейчас занимаюсь разработкой Epictetus в свободное время, но я думаю, что не за горами выпуск рабочей версии.

Почему вы решили разработать инструмент базы данных?

Проект был начат моим другом и бывшим коллегой 4 или 5 лет назад, когда он сделал несколько полезных компонентов для мониторинга базы данных. Затем он решил создать кроссплатформенный и кросс-инструментальный инструмент, похожий на TOAD и PL / SQL Developer. Позже он заморозил проект и отдал его мне.

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

The application used to be called "Chronos" and now "Epictetus". What's the story?

Да, сначала это был «Хронос». Это была не моя идея. Хронос — греческий бог, отец других богов. Звучит эпично. 🙂 Но для большинства людей это связано со временем. Вы можете найти множество приложений с таким именем для управления временем, периодического планирования и т. Д. Итак, я решил изменить название, пока продукт еще неизвестен. Надеюсь, Эпиктет труднее запомнить, но он уникален. Я думаю, что Эпиктет был очень интересным. Он родился рабом и стал свободным и философом. Марк Аврелий считал его своим вторым учителем после отца.

Какие базы данных поддерживает Epictetus?

Он поддерживает Oracle, MS SQL, MySQL, Firebird и HsqlDB. Я начал с них, потому что я использую их (или использовал их) сам, чтобы я мог сам выполнить тесты. Я собираюсь добавить поддержку как можно больше. Следующие базы данных, которые будут поддерживаться, будут H2 и PostgreSQL. Любой может связаться со мной и запросить поддержку для конкретной базы данных, которая будет добавлена.

Каковы основные функции инструмента?

Текущий выпуск предоставляет следующие основные функции:

  • Выполнение запроса. Могут быть выполнены все текущие или выбранные части запросов с указанием результатов и времени выполнения. Есть кнопки для загрузки следующей страницы или всех данных. Вы можете изменить лимит в настройках подключения.
  • Браузер объектов базы данных. Таблицы, представления, процедуры, триггеры, последовательности и т. Д. Можно просматривать.

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

    Вы можете просматривать BLOB и CLOB и сохранять их на диске:

    И если BLOB содержит сериализованный объект Java, вы можете просмотреть его содержимое, если у вас есть такой класс в CLASSPATH. Но это секретный трюк!

  • Мониторинг. На основе JFreeChart вы можете добавлять свои запросы, устанавливать периоды их выполнения и выбирать выходные поля. Эта функция может использоваться для визуальной статистики, но пока не является официальной, потому что я хочу сделать ее более удобной для пользователей.

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

Инструмент основан на платформе NetBeans. Почему?

Прежде всего, платформа NetBeans основана на Swing. Я только что попробовал один раз и сразу понял, что мы потратили много времени на создание функциональности, которую платформа NetBeans уже имеет в комплекте бесплатно. Например, сейчас я работаю над поддержкой проекта. Я реализовал класс «ProjectFactory» в NetBeans и добавил свою реализацию в поиск NetBeans:

public class EpicProjectFactory implements ProjectFactory
{
private static final String PROJECT_FILE_NAME = "project.epic";


public boolean isProject(FileObject fileObject)
{
return fileObject.getFileObject(PROJECT_FILE_NAME) != null;
}


public Project loadProject(FileObject fileObject, ProjectState projectState) throws IOException
{
if (isProject(fileObject))
{
// load project
return new EpicProject(fileObject, projectState);
}

return null;
}


public void saveProject(Project fileObject) throws IOException, ClassCastException
{
// save project
...
}

}

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

Каковы наиболее полезные функции платформы NetBeans для вас?

  • Плагины. Поскольку я хочу написать это сам, эта функция является «обязательной».
  • Управление библиотекой. Я могу легко включить все, что NetBeans предоставляет в мой проект.
  • Мастер действий. Всего три щелчка, и у меня есть новое действие, с пунктом меню и кнопкой на панели инструментов.
  • Готовый интерфейс. Он готов к работе (окна стыковки, меню и панель инструментов, а также пользовательский интерфейс для настройки).

Также я собираюсь использовать редактор NetBeans вместо нашего.

Какие планы на будущее?

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

  • Добавить поддержку для всех JDBC-совместимых баз данных.
  • Создание плагинов для разработчиков с функциями различных баз данных.
  • Сделайте плагины для администраторов баз данных (для мониторинга, миграции, репликации).
  • Возможно, я добавлю скриптинг (сейчас я склонен к JavaFX).
  • Вскоре я сделаю интерфейс для создания представлений, последовательностей, триггеров и других объектов, чтобы добавить автозаполнение и поддержку выполнения PL / SQL.