Pull to refresh
17
0
Дмитрий @StrangerInTheKy

PL/SQL разработчик

Send message
Хорошая статья о витамине D выглядит примерно так: old.elementy.ru/nauchno-populyarnaya_biblioteka/432161/Vitamin_D_ili_Zagorat_opyat_polezno
Берите пример ;)
2. Вот эти штучки слева: habrastorage.org/webt/3g/ky/jh/3gkyjhjnmjbaszz-cmu0p3yez2g.png
Должно быть и в Идее, и в ДГ.
Попробовал еще раз. Если текст пакета находится в файле, который создан как Database Console — там это есть. Если это просто файл на диске или это код пакета, открытый из БД, — то нет.
Спасибо за ответ.

1. Про это я забыл, видимо. В моей статье в комментариях столько советов надавали, что все и не запомнишь. Надо попробовать попользоваться.

2. Это только в DataGrip или в IDEA тоже должно быть? У меня IDEA, и у меня такого нет.

3. Нашел, но как-то это действие далеко запрятано. Оно довольно востребованное, я бы куда-то поближе вынес.

4. Ну это просто must have! Могу создать реквест, если это поможет ускорить реализацию планов. Тем более что я и так собирался со дня на день.

5. Надо попробовать, спасибо.

6. Да, очень похоже. Завтра залогинюсь и плюсану.

7. Да, оно!

Практика показывает, что в большинстве случаев все есть, нужно только спросить, где это находится. Это прям круто!
С трактовками термина «евгеника» проблема в том, что был один такой непризнанный австрийский художник, которому эта идея приглянулась, и он начал резво воплощать ее в жизнь в самом радикальном варианте. Потом ложечки нашлись (открыли ДНК, выяснили причины наследственных болезней и как с ними бороться), но осадок остался. Со СПИДом такого не было — никто не уничтожал носителей СПИДа в газовых камерах.
Отличная идея! Собирать базу геномов, да еще чтобы люди заплатили за это!
Идея отличная, только баян: 23andme.com (а также многие другие). Договор там прилагается, можете почитать.

Евгеника плоха тем, что отдельные трактовки термина к «удалить все плохие гены из генофонда человечества» прибавляют «немедленно» и «вместе со всеми носителями этих генов». Сторонников у такой категоричности обычно немного.

После одного Y-движения (если я правильно понял терминологию автора) определенным образом смещаются кубики из середин ребер. После трех движений подряд середины возвращаются на те же места, но определенным образом меняются местами 4 угловых кубика. Соответственно, чтобы собрать кубик, надо, чтобы в конце остались 4 угловых кубика на правильных позициях. И вот загнать эти 4 кубика на правильные позиции иногда бывает непросто.

Когда еще учился в институте, придумал этот метод самостоятельно (интернета в те годы почти не было). И судя по общению с другими любителями, людей, которые сами додумались до этого метода, довольно много. У него есть один недостаток — нужно, чтобы в конце оставались 4 кубика не на своем месте. Иногда остается три, и тогда приходится попотеть. Зато тем же методом (с минимальными изменениями) я потом и 4 х 4 х 4 собирал.

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

1. Поиск по дереву объектов. Неочевидно, что он есть, потому что надо начать печатать, чтобы он появился, а для этого надо знать, что нужно начать печатать. И как следствие, тут же минус: в поле ввода нельзя вставить имя искомого объекта по Ctrl+V. Чтобы поле появилось, нужно начать печатать, то есть до Ctrl+V там уже что-то будет, а после — будет что-то не то. У вас там в панели с кнопками в Database view есть свободное место, вставьте туда статическое поле.
Второй минус: вы подсвечиваете найденные объекты, а я бы предпочел, чтобы все неподходящие объекты скрывались. Потому что у нас около тысячи объектов в схеме, а на экран входит штук 50 максимум, а дальше опять надо скроллить.
2. Очень хотелось бы кнопку перехода от объявления функции/процедуры в спецификации пакета к телу и обратно. Вот прямо очень. А уж если будет функция подсветки несовпадающих объявлений (когда в одном месте поменяли, а в другом — нет), то будет просто супер.
3. Катастрофически нужна кнопка перекомпиляции пакета (применимо к любому объекту с кодом, включая триггеры и вью). Пакет может сломаться потому, что он зависит от другого сломанного объекта. Когда тот другой объект становится валидным, иногда нужно вручную пнуть зависимый пакет, чтобы он перекомпилировался.
4. Кнопка reload обновляет данные всей схемы. Для больших схем это может занять много времени. Было бы неплохо, чтобы кнопка обновляла то, что в данный момент выбрано в дереве: если выбран какой-то пакет — то только этот пакет, если выбран весь узел packages — то все пакеты (но только пакеты), и т. д. Я видел кнопку reload, но для этого надо зайти в код пакета. Было бы удобно иметь такую функциональность и в дереве объектов.
5. По ctrl+click на названии функции в дереве подсвечивается эта функция. Хотелось бы, чтобы вместо этого открывался код пакета и курсор перемещался к функции.
6. Если какой-то объект является синонимом, то по ctrl+click подсвечивается определение синонима. Дальше пройти нельзя. Было бы неплохо иметь возможность сразу перейти к объекту. Пока цепочка очень длинная (и неочевидная): ctrl+click по названию — double click по определению синонима — ctrl+click по названию объекта в коде синонима.
7. Было бы неплохо видеть список столбцов, индексов и констрейнтов на таблице не только в виде DDL скрипта, но и в виде таблички.

Это так, навскидку, первое, что в голову пришло. Вспомню что-то еще, напишу сразу реквест у вас на сайте.

P. S. Как-то, работая в IDEA с гитом, увидел там список файлов, озаглавленный как «People who change the files in the active changelist also change». Я тут не понял, вы пытаетесь мне что-то продать? О_о
;)
Какие еще оценки? Не надо никаких оценок. В Африке до сих пор есть племена, которые охотятся на антилоп таким способом. Тупо загоняют их до смерти. (Антилопа, если кто не в курсе, это не маленький олененок как в мультике «Золотая антилопа», это такая дура размером почти с лошадь.) Охотники находят антилопу, отбивают ее от стада и тупо бегут за ней. Километров через 30 антилопа тупо падает без сил, а охотники — нет. Спокойно подходят, добивают копьями, разделывают и уносят к остальному племени.
А когда человек только формировался как биологический вид, все примерно так и охотились. Человек занимал экологическую нишу дневного хищника, охотящегося на жаре, пока остальные хищники отлеживаются в тенечке. К этому он был приспособлен лучше всего и до сих пор остается приспособленным.
И вам любой марафонец подтвердит — научить пробегать марафон можно любого.
Человек никогда не был самым быстрым существом в мире.
Смотря как ставить задачу и считать. Если бежать марафон по типичной африканской саванне днем в +30, то таки человек будет самым быстрым. Возможно, его обгонит верблюд (но это не точно), — и, пожалуй, больше никто.
Интересно было бы также провести соревнования по суточному бегу и/или многодневному бегу, но, мне кажется, их верблюд может и не выдержать.
Если сущность имеют 2 атрибуты, то нужно уже 4 join-на!
Не нужно миллион джойнов, нужен один PIVOT (он в постгресе называется «crosstab» и работает вполне шустро).
И еще...
«join-на» — это пять! Почти как «2ва» и «3ри». Пишите хотя бы «join'а», если использовать слово «джойна» так уж не хочется.

Кроме того, все атрибуты обычно хранятся в виде строк, что приводит к приведению типов, как для результата, так и для условия WHERE.
Так заведите отдельные таблицы или столбцы под каждый тип.
Если вы пишете много запросов, то это достаточно расточительно, с точки зрения использования ресурсов.
EAV — это в принципе расточительно…
Ибо иначе не получить клубную карту и прочее.
Хорошо еще если карту, а вот я как-то наткнулся на сайт, где нельзя было зарегистрироваться, не поставив галочку «Я хочу получать рассылку». Пришлось ставить, получать рассылку и жать «Unsubscribe». Так ведь этого тоже иногда не достаточно, потому что такой галочкой, как правило, тебя подписывают на 100500 типов рассылки, а Unsubscribe в письме отписывает только от одного типа.
АйБиЭму нужен был конкурент, это такой американский маркетинг, нет конкурента – создай его.
Унылая конспирология.
Расскажите еще, как в секретной лаборатории Микрософта вырастили Торвальдса.
Спасибо за комментарий, интересно было послушать человека, который использует Alt SQL Developer.

1 — есть у IDEA и Oracle SQL Developer.
2 — ни разу не встречал, чтобы такое именование объектов использовалось на практике, то идентификаторы в кавычках должны понимать вроде бы все.

P.S. Если кому то интересно, темная тема сейчас на стадии беты.
Это вообще супер, можете мне написать, когда фича будет готова? Можно в личку.
Автор, а ты забыл еще и про автоформатирование стиля кода — это половина юзабельности Идеи.
Вообще-то нет, не забыл. Но про это у меня всего одно предложение:
Настройки форматирования SQL и PL/SQL тоже есть у всех, более-менее одинаковые по мощности, и превью тоже есть.
Настройки форматирования у IDEA очень мощные, но прикол в том, что у всех остальных они такие же мощные. Можно было бы развернуть мысль шире, но я подумал, что любой, кто настраивал хотя бы одну IDE, уже знает, что там, а тут я просто написал, что у остальных не хуже.
Пожалуй, забыл только упомянуть, что у IDEA есть две фишки:
— форматирование при вставке (ctrl+V) — вставляемый кусок форматируется, отступы корректируются под место вставки
— если написать селект, потом перед ним написать «select * from (», а после него — закрывающую скобку, то после скобки IDEA сама форматирует этот селект, оказавшийся внутри, и это нечеловечески удобно. Два пива тому, кто это придумал! ;)

Нельзя просто так взять и вычитать курсор из функции в интерфейс Идеи.
А кстати, у кого еще кроме TOAD есть эта функция?
Ну, у нас именно так и есть.
У нас есть один сервер для разработки, один для тестирования, один — копия продакшена и последний — собственно продакшен. На копии прода мы тестируем установку. Если там она пройдет, значит и на настоящем проде пройдет. А на девелоперской среде проблема мешания друг другу решена с помощью синонимов. Есть одна схема с таблицами, и есть схемы для разработки, где вместо таблиц — синонимы, которые ссылаются на основную схему. Можно держать параллельно несколько схем для разработки с разными версиями пакетов и править их назависимо друг от друга.

Вот несколько лет назад я работал в одном проекте, где все было на одном инстансе. Одна схема — прод, одна — дев. И крутись как хочешь. Вот там да, было весело. Я уж думал у вас что-то вроде такого.
6. Либо я не разобрался, либо ваш модуль не поддерживает синонимы на соседние схемы, даже в пределах одного физического инстанса. В редакторе — краснота сплошная.
У нас тоже все на синонимах, но все распознается. У меня тоже была проблема с тем, что все было красное, когда открывал *.sql файлы с диска. Эта проблема решается примерно так: нужно поставить курсор на любое красное слово, слева появится (может не сразу, а через секунду) кнопочка, на которую нужно ткнуть, появится меню, там нужно выбрать «Attach session». После этого в правом верхнем углу редактора кода появится выбор схем. Выберите нужную схему, должно заработать.

10. Огромные тупняки на больших схемах.
Да, такое есть, и раздражает, кажется, вообще всех. Я уже месяц собираюсь написать реквест. Может, сегодня напишу.

Резюмируя — просто попользуйтесь PL/SQL Dev чуть более, чем на домашний проект с парой таблиц — и будет заметно, чего не хватает в Идее/Грипе.
В этом самая большая сложность разработки специализированного ПО. Очень тяжело высасывать из пальца задачу, приближенную к боевой, а потом смотреть, чего не хватает. Проще собирать фидбек от пользователей.
Вам очень повезло, если у Вас был переписчик
По-русски это называлось «CD-RW привод» (и потом еще были DVD-RW). Гугл-транслейт не в курсе, его тогда еще не было ;)

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity