sql developer форматирование кода

Форматирование Кода SQL. Использование Сниппетов

Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.

sql developer форматирование кода. 9.22. sql developer форматирование кода фото. sql developer форматирование кода-9.22. картинка sql developer форматирование кода. картинка 9.22. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.

У SQL Developer есть функция форматирования кода SQL.

Чтобы отформатировать код SQL, щелкните правой кнопкой в области операторов и выберите Format SQL.

В примере на рисунке перед форматированием у кода SQL есть ключевые слова, которые записаны не прописными буквами, и оператор не испольжует отступы не должным образом. После форматирования код SQL становится хорошо читаемым с использованием прописных букв для ключевых слов и должным образом расположенных отступов.

Использование Сниппетов

Сниппеты являются фрагментами кода, которые могут быть просто синтаксисом или примерами.

sql developer форматирование кода. 9.23. sql developer форматирование кода фото. sql developer форматирование кода-9.23. картинка sql developer форматирование кода. картинка 9.23. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.

Можно применять определенные фрагменты кода, когда Вы используете Рабочий лист SQL или создаете или редактируете PL/SQL функцию или процедуру. В SQL Developer есть функция под названием Snippets (Сниппеты). Сниппеты являются фрагментами кода, такими как функции SQL, подсказки Оптимизатора и разные методы программирования PL/SQL. Можно перетаскивать сниппеты в окно Editor.

Чтобы вывести на экран Сниппеты, выберите View > Snippets.

Окно Snippets выводится на экран в правой стороне. Можно использовать выпадающий список, чтобы выбрать группу. Кнопка Snippets помещается в правое поле окна, так, чтобы можно было вывести на экран окно Snippets, если оно становится скрытым.

Использование Сниппетов: Пример

sql developer форматирование кода. 9.24. sql developer форматирование кода фото. sql developer форматирование кода-9.24. картинка sql developer форматирование кода. картинка 9.24. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.

Чтобы вставить Сниппет в Ваш код на Рабочем листе SQL или в функции или процедуре PL/SQL, перетащите сниппет из окна Snippets в требуемое место в Вашем коде. Затем можно отредактировать синтаксис так, чтобы функция SQL была допустима в текущем контексте. Чтобы увидеть краткое описание функции SQL в подсказке, поместите курсор над именем функции.

Пример на рисунке показывает, как CONCAT(char1, char2) перетаскивается из группы Character Functions в окне Snippets. Затем синтаксис функции CONCAT редактируется и остальная часть оператора добавляется следующим образом:

Источник

управлять форматированием кода

В редакторе можно форматировать код отступами, скрывать текст, вводить URL-адреса и т. д. Можно также выполнять автоматическое форматирование кода с помощью интеллектуальных отступов.

Отступы

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

Выбор стиля расстановки отступов

В меню Сервис выберите команду Параметры.

Щелкните Текстовый редактор.

Щелкните Вкладки.

Выберите один из следующих параметров:

Нет. Курсор переходит на начало следующей строки.

Заблокировать. Курсор выравнивает следующую строку с предыдущей.

Автоматически (по умолчанию). Подходящий стиль расстановки отступов определяет служба языков.

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

Изменение параметров отступов табуляциями

В меню Сервис выберите команду Параметры.

Щелкните Текстовый редактор.

Щелкните Вкладки.

Чтобы задать символы табуляции для операций расстановки табуляций и отступов, щелкните Сохранить табуляции. Чтобы указать символы пробелов, выберите Вставлять пробелы.

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

Создание отступа в тексте кода

Выберите текст, в котором нужно применить отступы.

Нажмите клавишу TAB или кнопку Отступ на панели инструментов «Стандартная».

Отмена отступа в коде

Выберите текст, в котором нужно удалить отступы.

Нажмите SHIFT + TAB или кнопку Удалить отступы на панели инструментов «Стандартная».

Автоматическая расстановка отступов во всем коде

В меню Сервис выберите команду Параметры.

Щелкните Текстовый редактор.

Щелкните Все языки.

Щелкните Вкладки.

Выберите Автоматически.

Параметр Автоматически в некоторых языках недоступен.

Преобразование пробелов в табуляции

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

В меню Правка укажите пункт Дополнительно и выберите Установить табуляции в выделенном.

Преобразование табуляций в пробелы

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

В меню Правка укажите пункт Дополнительно и выберите Удалить табуляции в выделенном.

Преобразование текста в верхний и нижний регистр

Для преобразования текста в верхний или нижний регистр имеются специальные команды.

Преобразование текста в верхний и нижний регистр

Выберите текст, который нужно преобразовать.

Отображение URL-адресов и переход по ним

В программном коде можно создавать и отображать интерактивные URL-адреса. По умолчанию URL-адреса:

при наведении указателя меняют его форму на изображение ладони;

открывают URL-адрес при щелчке на нем, если этот URL-адрес действителен.

Включение отображения интерактивных URL-адресов

В меню Сервис выберите команду Параметры.

Щелкните Текстовый редактор.

Чтобы изменить параметр только для одного языка, щелкните папку этого языка и выберите Общие. Чтобы изменить параметр для всех языков, щелкните Все языки и выберите Общие.

Выберите Переход по URL-адресам одним щелчком.

Источник

Sql developer форматирование кода

Интересует, можно ли его научить автоформату иначе, нежели по умолчанию?

sql developer форматирование кода. top. sql developer форматирование кода фото. sql developer форматирование кода-top. картинка sql developer форматирование кода. картинка top. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.sql developer форматирование кода. down. sql developer форматирование кода фото. sql developer форматирование кода-down. картинка sql developer форматирование кода. картинка down. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.
OW © ( 2012-01-11 14:24 ) [1]

т.е., например, пишем:
select * from T_Services S join T_Users U on U.USER_ID = S.USER_ID where U.IN09 = «Y»

нажимаем [автоформат], имеем
select *
from T_Services S
join T_Users U
on U.USER_ID = S.USER_ID
where U.IN09 = «Y»

а хочется
select
*
from
T_Services S
join T_Users U on U.USER_ID = S.USER_ID
where
U.IN09 = «Y»

sql developer форматирование кода. top. sql developer форматирование кода фото. sql developer форматирование кода-top. картинка sql developer форматирование кода. картинка top. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.sql developer форматирование кода. down. sql developer форматирование кода фото. sql developer форматирование кода-down. картинка sql developer форматирование кода. картинка down. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.
Pit ( 2012-01-11 15:40 ) [2]

Плюс надо явно указать версию, они разные насчет форматирования, подсказок.

sql developer форматирование кода. top. sql developer форматирование кода фото. sql developer форматирование кода-top. картинка sql developer форматирование кода. картинка top. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.sql developer форматирование кода. down. sql developer форматирование кода фото. sql developer форматирование кода-down. картинка sql developer форматирование кода. картинка down. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.
OW © ( 2012-01-11 16:11 ) [3]

sql developer форматирование кода. top. sql developer форматирование кода фото. sql developer форматирование кода-top. картинка sql developer форматирование кода. картинка top. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.sql developer форматирование кода. down. sql developer форматирование кода фото. sql developer форматирование кода-down. картинка sql developer форматирование кода. картинка down. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.
OW © ( 2012-01-11 16:43 ) [4]

Tools->Configure tools + F1
Вроде так.

sql developer форматирование кода. top. sql developer форматирование кода фото. sql developer форматирование кода-top. картинка sql developer форматирование кода. картинка top. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.sql developer форматирование кода. down. sql developer форматирование кода фото. sql developer форматирование кода-down. картинка sql developer форматирование кода. картинка down. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.
OW © ( 2012-01-11 17:21 ) [6]

По моему, там не все..

sql developer форматирование кода. top. sql developer форматирование кода фото. sql developer форматирование кода-top. картинка sql developer форматирование кода. картинка top. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.sql developer форматирование кода. down. sql developer форматирование кода фото. sql developer форматирование кода-down. картинка sql developer форматирование кода. картинка down. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.
Компромисс © ( 2012-01-11 17:29 ) [7]

ИМХО лучше отказаться от собственных правил и привыкать к тем, что по умолчанию. Тогда и тебе легче переходить на другие проекты, и другим программистам разбираться в твоем коде.

sql developer форматирование кода. top. sql developer форматирование кода фото. sql developer форматирование кода-top. картинка sql developer форматирование кода. картинка top. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.sql developer форматирование кода. down. sql developer форматирование кода фото. sql developer форматирование кода-down. картинка sql developer форматирование кода. картинка down. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.
Petr V. Abramov © ( 2012-01-11 19:50 ) [8]


> Компромисс © (11.01.12 17:29) [7]

+1
95% населения не морочатся, как настроить свое форматирование, а пользуются тем, которое дает plsqldev

sql developer форматирование кода. top. sql developer форматирование кода фото. sql developer форматирование кода-top. картинка sql developer форматирование кода. картинка top. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.sql developer форматирование кода. down. sql developer форматирование кода фото. sql developer форматирование кода-down. картинка sql developer форматирование кода. картинка down. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.
OW © ( 2012-01-12 10:08 ) [9]

ладно, согласен, вообще-то..

гениальный форум, здесь всегда готовы объяснить, что тебе это не нужно ))

sql developer форматирование кода. top. sql developer форматирование кода фото. sql developer форматирование кода-top. картинка sql developer форматирование кода. картинка top. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.sql developer форматирование кода. down. sql developer форматирование кода фото. sql developer форматирование кода-down. картинка sql developer форматирование кода. картинка down. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.
Единственный Учитель Истины ( 2012-01-12 13:49 ) [11]


> Pit (12.01.12 13:26) [10]
>
> гениальный форум, здесь всегда готовы объяснить, что тебе
> это не нужно ))

Ну если не знаешь как сделать, что остается? Именно убеждать себя и окружающих в том, что это не нужно 🙂

sql developer форматирование кода. top. sql developer форматирование кода фото. sql developer форматирование кода-top. картинка sql developer форматирование кода. картинка top. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.sql developer форматирование кода. down. sql developer форматирование кода фото. sql developer форматирование кода-down. картинка sql developer форматирование кода. картинка down. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.
OW © ( 2012-01-12 13:49 ) [12]

и т.п., и все в столбик..

, короче 🙂
запарился за ним форматировать, хоть как-нибудь

sql developer форматирование кода. top. sql developer форматирование кода фото. sql developer форматирование кода-top. картинка sql developer форматирование кода. картинка top. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.sql developer форматирование кода. down. sql developer форматирование кода фото. sql developer форматирование кода-down. картинка sql developer форматирование кода. картинка down. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.
Компромисс © ( 2012-01-12 13:49 ) [13]

Pit (12.01.12 13:26) [10]

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


> гениальный форум, здесь всегда готовы объяснить, что тебе
> это не нужно ))


> Какая связь между внутренним стандартом и дефолтными настройками
> какой-то левой тулзы?

Такая, что в 95% случаев внутренний стандарт совпадает с дефолтными настройками той тулзы, которая принята в разработке.

sql developer форматирование кода. top. sql developer форматирование кода фото. sql developer форматирование кода-top. картинка sql developer форматирование кода. картинка top. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.sql developer форматирование кода. down. sql developer форматирование кода фото. sql developer форматирование кода-down. картинка sql developer форматирование кода. картинка down. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.
Petr V. Abramov © ( 2012-01-12 19:49 ) [17]

> select
> бла-бла
> from
> бла-бла
> тут, видимо, он понимал, что промежуточный результат достигнут,
> и не парясь, пишет
> select новое бла-бла from
> (
> старый селект
> )
> новые наборы
> where
> И тут, опять, видимо, понимает, что новый промежуточный
> результат достигнут, и опять, не парясь:
> select новое бла-бла-бла-бла from
> (
> старый селект
> (
> самый первый селект
> )
> )
> where
>

не самый плохой подход, кстати.

> и т.п., и все в столбик..

поубивал бы.

Источник

Sql developer форматирование кода

Разработчикам часто приходится анализировать и разбирать сложные SQL-запросы, которые без применения форматирования могут быть запутанными и сложными для отладки. Надлежащее форматирование значительно облегчает понимание и работу с SQL-запросами.

Для форматирования запросов можно воспользоваться онлайн-сервисами, например, Code Beautify, FreeFormatter и sqlformat.org. Однако многим не хотелось бы делиться своими SQL запросами со сторонними сервисами, особенно если код содержит конфиденциальную информацию.

В этой статье мы рассмотрим альтернативные решения для форматирования SQL-запросов, которыми пользуются инженеры Percona. Эти решения можно разделить на три категории:

— Плагины для редактора кода или IDE.

— СУБД (системы управления базами данных)

РЕДАКТОРЫ КОДА ИЛИ IDE

Большинство современных редакторов кода имеют встроенные возможности для форматирования запросов или соответствующие плагины. Мы проверили два популярных кроссплатформенных редактора кода: Visual Studio Code и Sublime.

Visual Studio Code предоставляет как встроенные возможности форматирования запросов, так и плагины (например, SQLTools).

sql developer форматирование кода. dcb476c8ed01a89debe070d4c826ad76. sql developer форматирование кода фото. sql developer форматирование кода-dcb476c8ed01a89debe070d4c826ad76. картинка sql developer форматирование кода. картинка dcb476c8ed01a89debe070d4c826ad76. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.

У Sublime нет встроенной поддержки форматирования запросов, но данный функционал легко добавить с помощью Package Control. Доступно несколько плагинов, мы использовали SqlBeautifier.

sql developer форматирование кода. 811f42e6625ef2870f3848cec8439760. sql developer форматирование кода фото. sql developer форматирование кода-811f42e6625ef2870f3848cec8439760. картинка sql developer форматирование кода. картинка 811f42e6625ef2870f3848cec8439760. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.

Системы управления базами данных также поддерживают форматирование запросов.

MySQL Workbench – инструмент визуального проектирования и управления базами данных. Чтобы воспользоваться форматированием запросов, введите ваш запрос в новой вкладке и выберите на панели инструментов “Beautify/reformat the SQL script”.

sql developer форматирование кода. fde04acc24a9551a758513d9048e1ec5. sql developer форматирование кода фото. sql developer форматирование кода-fde04acc24a9551a758513d9048e1ec5. картинка sql developer форматирование кода. картинка fde04acc24a9551a758513d9048e1ec5. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.

Percona Monitoring and Management (PMM) – одно из лучших бесплатных решений для мониторинга и управления базами данных с открытым исходным кодом. Функция PMM Query Analytics позволяет сразу просматривать запросы в отформатированном виде.

sql developer форматирование кода. a9bc0a4ea7859525b8956ab968ca0ea3. sql developer форматирование кода фото. sql developer форматирование кода-a9bc0a4ea7859525b8956ab968ca0ea3. картинка sql developer форматирование кода. картинка a9bc0a4ea7859525b8956ab968ca0ea3. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.

Большая часть команды Percona предпочитает консольные инструменты.

Самым популярным консольным инструментом для форматирования запросов в нашей команде является sqlparse (sqlformat). Разработчики SQLFormat любезно предоставили исходный код этого простого и полезного инструмента, который вы можете использовать на разных платформах.

Разработчик из Percona Агустин Гальего сделал возможным использование sqlparse в Docker.

sql developer форматирование кода. 3472e09c9ba1472c274f9571090105c0. sql developer форматирование кода фото. sql developer форматирование кода-3472e09c9ba1472c274f9571090105c0. картинка sql developer форматирование кода. картинка 3472e09c9ba1472c274f9571090105c0. Можно улучшить читаемость SQL кода, используя отступы, пробелы, прописные буквы и разделение строк.

В данной статье мы рассмотрели ряд удобных инструментов для форматирования SQL-запросов, поделитесь в комментариях вашим опытом с этими или подобными инструментами.

Источник

На чем разрабатывать Oracle разработчику в 2019-м году (и после)

Некоторое время назад я в очередной раз сменил место работы. Новый работодатель был настолько любезен, что разрешил мне выбрать любую IDE, которая понравится, и оплатить лицензию (но в разумных пределах). Также (в кои-то веки) у меня были права администратора на рабочем компьютере, так что я мог ставить что угодно и пробовать сколько угодно. Я попробовал: Oracle SQL Developer, TOAD, Alt SQL Developer и (ВНЕЗАПНО!) IntelliJ IDEA (PL/SQL Developer не пробовал, но много работал раньше). Если вы регулярно пишете PL/SQL код, или хотя бы время от времени делаете запросы к Oracle Database, думаю, вам будет интересно почитать, к каким выводам я пришел.

Сразу хочу предупредить. Не могу сказать, что каждую из IDE изучил досконально, а PL/SQL Developer, кроме всего прочего, видел последний раз 5 лет назад. Поэтому всегда может оказаться, что когда я говорю «этого в IDE нет», на самом деле это там есть, просто я не нашел. А когда я говорю о PL/SQL Developer, я имею в виду версию, кажется, 8 (на которой писал 5 лет назад). Не исключено, что потом там многое изменилось, и не обязательно в лучшую сторону.

Участники соревнований

Итак, что у нас есть? В первую очередь, это то, что можно назвать большой тройкой Oracle-разработки: TOAD, PL/SQL Developer и Oracle SQL Developer. Эти продукты уже давно на рынке, их все знают, у каждого продукта есть своя армия фанатов. Я несколько раз сталкивался с мнением, что TOAD больше любят DBA, а PL/SQL Developer — разработчики. Про Oracle SQL Developer ничего такого не слышал, а армия его фанатов, судя по всему, состоит в основном из менеджеров, — и то только потому, что он бесплатный.

Кроме этого, я решил включить в обзор Alt SQL Developer (продукт, долгое время, а может быть, и до сих пор, разрабатываемый ОДНИМ человеком) и IntelliJ IDEA (он же Гоша, он же Гога, он же DataGrip).

Система там примерно такая: есть IntelliJ IDEA Community Edition — она бесплатная и для джавы. Есть несколько похожих платных продуктов (порядка пары сотен долларов/евро) — RubyMine для Ruby, DataGrip для баз данных, и так далее. И есть IntelliJ IDEA Ultimate Edition, которая дороже всего (примерно 650, кажется), но объединяет в себе функциональность всех продуктов JetBrains. Все эти продукты имеют идентичный интерфейс и очень сильно похожи, благодаря чему переходить с одного на другой проще простого — даже проще, чем с одной версии экселя на другую.
Поэтому далее по тексту мы говорим IDEA — подразумеваем DataGrip, мы говорим DataGrip — подразумеваем IDEA.

PL/SQL Developer

Я начал работать с ораклом в 2011-м году, и это была первая IDE, с которой я столкнулся. Так сложилось, что следующие три года везде, где я работал, использовался именно PL/SQL Developer. Я изучил его довольно неплохо, и он казался отличным инструментом. И хотя 2014-й год был последним годом, когда я запускал эту IDE, даже сейчас она кажется мне неплохим выбором. Главный минус — работает только под Windows.

Oracle SQL Developer

Бесплатная IDE, выпускаемая ораклом. Кроме бесплатности, имеет и другой плюс — кроссплатфоренность. Можно запускать и на линуксах, и на маках. Но, пожалуй, на этом плюсы и заканчиваются. Я ее впервые начал использовать году так в 2015-м. Работает сносно, но есть куча раздражающих мелочей. Дешево и сердито.

Я пробовал начать работать с TOAD несколько раз в свой карьере. Каждый раз я запускал его и тут же у меня возникал вопрос — и чё дальше? Куда нажимать, чтобы начать работать? Последний раз был несколько недель назад, и я наконец-то ее осилил! Разобрался, где какая кнопка, где какая закладка. Эта IDE довольно мощная, но как-то бестолково организованная, имхо. Куча окон и закладок, в которых легко запутаться. И тоже только под Windows.

Alt SQL Developer

Знакомство с этой IDE началось с топика на форуме. На форум пришел какой-то чувак и сказал, что пишет свой PL/SQL Developer с блекджеком и шлюхами. Я никогда не пользовался этой IDE всерьез, только пару недель назад поставил и попробовал поработать один день. Выглядит как PL/SQL Developer, из которого выкинули весь ненужный мусор. К сожалению, несмотря на семилетнюю историю, она до сих пор сыровата. Не помню уже, с чем именно я там столкнулся, но для работы на моем текущем проекте она не применима, к сожалению. И вообще, закрадывается мысль, что автор разработку забросил. А жаль, для продукта, разрабатываемого одним человеком, — это очень достойный результат. Респект, уважуха и лучи поддержки! Опять же, только Windows, но в данном случае не будем придираться.

Intellij IDEA

Вообще-то сначала я просто хотел немного поизучать джаву и писал в этой IDE. А потом для одного из хобби-проектов понадобилось сделать базу на PostgreSQL, и оказалось, что и с БД IDEA отлично справляется! На текущем проекте начал плотно работать с этой IDE и в целом доволен. Правда, без ложки дегтя не обошлось: наткнулся на багу, которая серьезно попортила кровь (IDE перестала показывать объекты одной из схем — на беду, одной из самых необходимых). Написал баг-репорт, воркэраунд посоветовали на форуме JetBrains через пару дней, а до этого пришлось помучиться.

В разговоре с коллегами я как-то упомянул, что некоторое время назад решил начать изучать java — ну так, чисто для себя в основном. Начал с Eclipse, просто потому что слышал про эту IDE раньше. А потом, через год или два, знакомый посоветовал IDEA, я попробовал — и это была любовь с первого взгляда. Казалось, эта IDE понимает меня и чуть ли не читает мысли. Тут один из коллег спросил:
— А чем она тебя так зацепила?
— Ну, даже хотя бы чисто эстетически — там есть темная тема оформления, например.
— Но в Eclipse тоже есть темная тема!
— Нет, ты не понимаешь. Я скачал «Идею», установил, и при первом запуске первое, что она показала — это две картинки рядом. Темная тема или светлая — выбирай.
В этот момент наш фронтэндщик поднял палец вверх и многозначительно изрек:
— ВОООООТ! Юзер экспириенс!

Цена вопроса

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

PL/SQL Developer: 216 долларов + 60 годовая поддержка.
Oracle SQL Developer: бесплатно.
TOAD: 1054 евро (ЛОЛШТО. Может, я просто не туда посмотрел?)
Alt SQL Developer: 99 долларов
DataGrip: 199 евро первый год, 159 второй и по 119 последующие.

Разработка на PL/SQL в IDE

Пишем код

В первую очередь, процесс разработки состоит из чтения и написания кода. Ну, тут понятно: подсветка синтаксиса, автодополнение, навигация, всплывающие подсказки и все такое. Как справляются с этой задачей конкурсанты?

Если брать практическую сторону вопроса, то флагманы уверенно идут впереди. Автодополнение и навигация, имхо, лучше всего работали в PL/SQL Developer. В TOAD и IDEA чуть хуже, а вот Oracle SQL Developer мне так и не удалось заставить автодополнять удобным мне способом (а кроме того, у меня в нем постоянно слетают настройки — они почему-то вообще не сохраняются при выходе). Отдельно хочу отметить такой мелкий нюанс: если окно предложений для автодополнения уже закрылось по какой-то причине, то PL/SQL Developer умеет показывать его снова по Ctrl+Пробел. А еще всплывающие подсказки с названиями и типами агрументов функций. Остальные IDE не умеют, а если и умеют, то я не знаю, по какой клавише, и как эти опции называются в настройках, я тоже не знаю.

Также у PL/SQL Developer было еще несколько прикольных фишек, нужных именно для работы с SQL: сгенерировать в один клик перечень всех полей таблицы через запятую, поиск по коду в ALL_SOURCE, специальный режим отображения результатов селектов, когда поля идут в столбик, а в соседнем столбике одна строка данных. ОЧЕНЬ удобно, когда нужно посмотреть, какие поля и какие примерно данные есть в незнакомой таблице. Из всего этого у конкурентов я нашел только в IDEA поиск по коду и генерацию списка столбцов таблицы.

Настройки форматирования SQL и PL/SQL тоже есть у всех, более-менее одинаковые по мощности, и превью тоже есть. Разве что у TOAD они как-то слишком сложно сформулированы.

А вот с эстетической стороной вопроса флагманы справляются как-то не очень. Если в IDEA есть целая темная тема, то в остальных можно максимум сделать темный фон в редакторе кода. Фон в других окнах останется белым (в PL/SQL Developer, помнится, это частично тоже настраивается, но все в разных местах, чокнуться можно, у остальных вообще никак). Oracle SQL Developer единственный из оставшихся имеет несколько готовых наборов цветов для подсветки синтаксиса, включая набор с темным фоном. Остальные IDE по умолчанию имеют просто вырвиглазные высококонтрастные цветовые схемы и шрифт Courier new — имхо, самый уродливый моноширинный шрифт в этой части Вселенной. IDEA использует шрифт Consolas, он как-то поприятнее. Отдельно отличился TOAD (у меня версия 11.5): там есть баг, из-за которого символы %, &, * и ^ (а первые три очень часто используются в PL/SQL) не попадают ни в один набор символов в настройках, что приводит к невозможности задать им цвет шрифта. То есть они всегда остаются черными, и темная тема означает боль и страдания. И это продукт за штуку зелени? Это фиаско, братан.

Запросы, PL/SQL блоки и скрипты

Тут все на удивление ровно. Работа выглядит более-менее одинаково у всех, хотя без небольших сюрпризов не обходится. В Oracle SQL Developer очень неудобно включается вывод в консоль (нужно больше одного клика мышкой), а IDEA выводит таймстемпы, которые не отключаются — это мешает отлаживать процедуры, использующие динамический SQL.

Еще TOAD и IDEA умеют делать экспорт данных из таблицы в виде INSERT выражений.

PL/SQL Developer имел честный режим эмуляции SQL*Plus — отдельное окно, куда можно писать команды прямо как в самом SQL*Plus — с выводом прямо тут же. Остальные могут просто тупо выполнять скрипты, а output выплевывать в соседнее окно.

Еще стоит сказать об умении определять границы SQL-запросов. Oracle SQL Developer, PL/SQL Developer и Alt SQL Developer требуют обязательно отделять запросы точкой с запятой (а PL/SQL блоки — слэшем), а иначе они не понимают, где один запрос закончился, а другой начался. IDEA в этом плане немного умнее (и TOAD, кажется, тоже) — там можно написать два корректных запроса, не отделяя их друг от друга точкой с запятой, поставить курсор на один из них и выполнить его. Кроме того, IDEA перед запуском обводит распознанный запрос зеленой рамочкой, дополнительно позволяя убедиться, что выполнится именно то, что нужно.

Еще один важный пункт — это пошаговая отладка, но она, кажется, выглядит одинаково вообще у всех IDE, начиная чуть ли не с TurboPascal 7.0. И да, буквально неделю назад на форуме JetBrains написали, что пошаговая отладка PL/SQL в IDEA готова. Народ уже во всю тестирует.

Браузер объектов

Самые удобные браузеры объектов — у PL/SQL Developer и Alt SQL Developer. У них есть панелька слева с браузером, а справа можно писать код, а у PL/SQL Developer еще в добавок были возможности поиска и фильтрации объектов в той же панели. У Oracle SQL Developer почти так же хорошо, но мне нравится немного меньше. У TOAD мне не нравится то, что если смотришь браузер объектов, то в левой панели показаны собственно объекты, а справа, на остальной части экрана, отображаются их многочисленные свойства. А сделать так, чтобы слева были объекты, а справа — редактор кода, не получится. То есть информации TOAD дает может даже и побольше, но юзабилити — не его конек. У IDEA браузер объектов — самое слабое место, на троечку с минусом. С одной стороны, их можно понять, не ораклом единым, и даже не одними реляционными БД жив DataGrip, а с другой: назвался груздем — полезай в короб.

Зато IDEA умеет рисовать ER-диаграммы для уже существующих в БД таблиц, и вызывается эта функция из браузера объектов. За это ей жирный плюс.

Контроль версий

С контролем версий ситуация тяжелая. Так исторически сложилось (уж не знаю как, но это факт), что люди, работающие с Oracle, в основной своей массе довольно дремучи в вопросах организации процессов разработки в команде. Можете представить себе Senior Java (или С/С++/фронтенд) девелопера, который ни разу в жизни не работал ни с одной системой контроля версий? А вот Senior Oracle девелопера можно найти довольно легко — последнего такого я видел не далее как в прошлом году. Про тесты и говорить не приходится (на прошлой работе я показал нашему «лиду» APEX-разработки простенький тестик на Java + Selenium, а он мне в ответ — «Ни в коем случае! Никаких тестов! Это ж в два раза больше работы — и тесты, и код поддерживать!»), а за выражение «Continuous Integration», кажется, меня бы там убили на месте (поэтому я не выражался).
По этой причине мне не удалось толком протестировать возможности по работе с системами контроля версий PL/SQL Developer и Oracle SQL Developer.

Я работал в IDEA с git, и IDEA в этом плане идеальна. Мои коллеги используют SourceTree для работы с гитом (я использую и то, и то), и я могу сказать, что IDEA переигрывает SourceTree на его же поле — при том, что SourceTree вообще ничего другого не умеет.

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

Выводы, которые я для себя сделал

По соотношению цена/качество с большим отрывом выигрывает Oracle SQL Developer: еще бы, если ноль поделить на какое-нибудь число, получится ноль 😉 А если отбросить шутки, то кросс-платформенность и бесплатность — практически единственные его плюсы. И чисто с идеологической точки зрения: если посмотреть на финансовые возможности разработчиков перечисленных IDE, то Oracle — самая богатая компания. Однако, если брать фактическую функциональность и удобство работы, их софтина — самая убогая.

Alt SQL Developer — тоже довольно простенькая программка, и, имхо, она не стоит даже тех 99 баксов, которые за нее просят. Но ёлки-палки: во-первых, она довольно качественно косплеит PL/SQL Developer, а во-вторых, написана одним человеком в свободное от работы время, а не корпорацией с многомиллиардной стоимостью. Упоминания в одном ряду с флагманами она точно заслужила.

PL/SQL Developer — был моим идеалом до появления IDEA. Перечитав эту статью, понял, что PL/SQL Developer даже пятилетней давности был лучше, чем большинство его конкурентов сейчас.

Какую IDE выбрал я?

Я на данный момент выбрал IntelliJ IDEA и хочу попробовать объяснить, почему. Казалось бы, некоторые вещи она умеет хуже, чем конкуренты (браузер объектов), а в остальном — плюс-минус то же самое. Но, тем не менее, IDEA имеет несколько киллер-фич, которые с лихвой перевешивают недостатки. О них чуть подробнее.

Live Template. Совершенно невозможно не упомянуть одну из киллер фич IDEA — Live Template. Что такое Code Template — знают более-менее все, и во всех оракловых IDE это есть. Вы пишете условное сокращение, а IDE заменяет его длинным. Например, вы можете сделать настройку, чтобы IDE заменяла «sft» на «select * from «. В IDEA пошли дальше, и эта функция называется Live Template. Вы можете внутрь шаблона вставить специальные выражения, обрамленные знаками «$», и IDEA не только сделает автозамену, но и по нажатию на Enter будет перемещать курсор по тем местам, где стояли эти выражения.

Refactoring. Просто автозамена текста есть у всех, даже в блокноте, наверное. А вот чего у «большой тройки» нет, так это чуть более интеллектуальной автозамены. Если у вас в пакете есть несколько функций, в которых используются переменные или параметры с одинаковым названием (и даже если просто такое сочетание символов используется где-то еще), то автозамена переименует их все. А если нужно переименовать именно переменную в одной из функций, то тут придется следить и делать автозамену в полуавтоматическом режиме. IDEA решила эту проблему — по Shift+F6 вы можете переименовать именно то, что вам нужно. И это только цветочки, рефакторинг — это немного более сложная штука.

В 2009-м году известный специалист по проектированию интерфейсов Алан Купер выпустил третье издание своей книги «Об интерфейсе». Там он, в частности, обратил внимание читателя на такой странный факт: любая прикладная программа для обработки хоть каких-то пользовательских данных (тут имеется в виду любая из реально существующих — ну там Word, Excel, notepad, Paint, и так далее) может создать файл, дать ему имя, писать в него данные и т. п., но ни одна (. ) не умеет переименовывать уже открытый этой же программой файл, хотя никаких ограничений со стороны ОС для этого нет. Для переименовывания файла закройте его, обратитесь к услугам ОС, потом откройте заново. Юзабилити, ага.

Это была присказка, сказка будет впереди. Таки IDEA эту функцию осилила. Не прошло и 10 лет, как говорится. Переименование файлов — это часть функциональности рефакторинга.
Ждем остальных.

Code Inspection Кто давно читает Хабр, тот наверняка видел регулярно появляющиеся статьи одной компании, разрабатывающей свой продукт для статического анализа, и наверняка успел проникнуться самой этой концепцией. Как внезапно оказалось, в IDEA есть некоторый набор правил и для анализа PL/SQL. Там, конечно, набор пока бедненький, и я уже собираюсь закинуть им Feature Request с несколькими новыми правилами, но даже то, что есть, способно принести немного пользы. Проверив всего один пакет наугад, я нашел одну неиспользуемую переменную и четыре… эээ… как это по-русски. unreachable statements. А потом оказалось, что эти unreachable statements образовались случайно, когда текст правили, и в итоге это были таки баги.

Запуск скриптов. IDEA умеет запускать bat/bash файлы, это настраивается прямо из IDE. Предельно просто: открываем соответствующий файл, IDEA предлагает поставить плагин для работы с этим типом файлов, соглашаемся, плагин сам ставится (за несколько секунд), конфигурируем запуск, работаем дальше. Очень удобно, если вы пользуетесь скриптами для запуска SQL*Plus. Также мы используем модульные тесты для PL/SQL, написанные на Ruby, и точно также они запускаются из той же IDE (но для Ruby вам уже придется ставить IDEA Ultimate Edition, DataGtip не подойдет).

Usability. В конце концов, IDEA — это просто удобно. У IDEA есть куча плагинов. Просто плагинами уже никого не удивишь, они есть вообще везде. Но IDEA может, например, сама определить, что у нее есть плагин, который может вам помочь. Типовой кейс — вы открываете какой-то файл, IDEA выводит сообщение «существует плагин для работы с этим типом файлов» и предлагает его скачать и сконфигурировать. И вообще, часто, когда случается какая-то непонятная фигня, IDEA показывает всплывающую менюшку со списком возможных действий по исправлению этой фигни. Очень приятная забота о пользователе.

У IDEA есть поиск по справке. Если вы знаете название какой-то фичи IDE, вам достаточно зайти в справку и набрать это название в поисковой строке, далее IDE вам сама стрелочкой покажет, где эта функция.

TL;DR IDEA — это айфон от PL/SQL разработки. Могу только пожелать разработчикам IDEA дальнейших успехов, а разработчикам остальных IDE хочу напомнить, что динозавры, которые не смогли эволюционировать — вымерли.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *