|
|
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
автор раз 4000 объектов, то получи их все в дереве, выковыривай и целься мышкой по маленькому значку беда. А что, кнопочка с биноклем совсем не работает? Которая фулл-текст-серч. И вкладочка любимых(кто последний того и любим. кого больше всего любим того и используем чаще) объектов. Их же не 4000? А чем кстати утилита помогает находить 1 из 4000 текстов, будь он в одном файле с другими объектами, или в своем индивидуальном. Юзкейс какой - как происходит работа с утилитой. Ну вот у меня открыты вим и фар-манагер. или просто фар-манагер с подсветкой синтаксиса. и чего дальше происходит. вот мне надо вспомнить по имени одного из 4000, найти, поменять и покласть заново на место. в пиэль эскуэль девелопере есть проекты. Взяли и открыли - набор скриптов, процедур, пакетов..... наслаждаемся..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2013, 10:04:35 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
авторВот с этим могут быть проблемы, но не больше чем в гуи иде. но ведь данный тезис полностью ломает твою утилиту и сабж. Это логика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2013, 10:08:50 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Максим НIBExpert отличная вещь, может если бы что то похожее было для Oracle я бы и не стал заморачиваться. Но он заточен под конкретную СУБД. Есть еще серьёзнейшие, проверенные и уважаемые решения такие как TOAD и PSD, но лично мне они не подходят, можно сказать личная несовместимость, хоть убей, хотя с каждым из них я пробовал работать, пробовал заставить себя, но безрезультатно. На всякий случай, есть ещё всякие универсальные IDE, как Aqua Data Studio или SQuirreL (плюс плагины), у них какие-то элементы могут быть лучше, но, в целом, проработка не такая глубокая, как у придворной IDE. Максим НТак же не будем забывать (о чем я уже не раз писал), что по мимо предопределенных объектов (tables, views, procedures etc) могут быть еще пользовательские объекты, т.е. что то специфичное, и это далеко не редкость. Особенно если приходится иметь дело с EAV, в котором несколько тысяч типов объектов (классов). А какие это специфичные объекты, особенно при EAV? В моём понимании, если говорить о разработке на SQL, то все "объекты" и код и должны быть около SQL, чтобы ими могли оперировать используемые инструменты. Например, в том же IBExpert есть sql-расширения, которые можно оформлять в свои блоки (а-ля "процедуры"), для этого есть их поддержка в IDE, в т.ч. и секции в "дереве объектов" (плюс консольные утилиты и dll-библиотека для исполнения всего sql). Ещё в одном SQL Workbench/J есть куча своих встроенных команд (для экспорта/импорта данных, сравнения и т.д., кстати, посмотри, он вроде бы как-то работает с Liquibase, но не помню чего именно), но, при работе с тем же оракловом девелопером эти команды или эту утилиту вряд ли будут использовать. Я хочу сказать, что те, кто работает с IDE будут максимально упрощать свою работу. Если даже нужен немалый дамп данных как "insert ..." где-то применять, то его всё равно запросто (ибо так проще) смогут оформить как стандартный блок кода или чего там есть в IDE, и выгружать когда нужно. Короче говоря, для них IDE предопределяет структуру проектов, взаимосвязь между объектами и т.п. И если нужна какая-то модульность, то будут оперировать стандартными средствами, теми же "схемами" или в рамках проектов (если IDE позволит). Если есть необходимость в дополнительной возни со скриптами (а она, всё таки, часто и есть), то они согласны пережить этот гемор (для них меньший по сравнению с тем, если бы работали вне IDE). Тут как раз можно помочь удобным продвинутым создавателем дампов или скриптов, о котором как-то говорилось раньше. В т.ч. круто, когда для конкретной IDE есть, скажем доставалка данных из её истории для того же Liquibase, ну и прочие скрипты. А в общем случае, если задача уже не решается в рамках широких sql-команд и пр. кода (или когда нет возможности из sql при необходимости вызывать внешние утилиты, анализировать результаты, ну и пр.), то уже вынуждены решать вопросы за рамками скриптов, после накатов, к примеру, будут другие запускать питоновские скрипты или те же джарники и т.д. Теперь о тех, кто работает в текстовых редакторах или в не-DB IDE. По своему опыту. Так специфика сложилась, что именно с FireBird-ом у нас самые геморные проекты. Под другие СУБД гораздо меньше мороки и вынуждены работать в типовых придворных IDE, и даже миграторы не используются, все скрипты готовятся ручками и исполняются. Под FireBird в текстовом редакторе работать заставил, прежде всего, препроцессор. Плюс там же реализована "IDE" под свой DSL для проектов. Плюсы редакторов. Это попытка уменьшить количество одновременно используемых разных IDE/редакторов, где разные раскладки клавиш (особенно весело переключаться часто между вим-управлением и другим), нет возможности везде оформить хотя бы более-менее идентично раскраски кода, не говоря уже о разных самих редакторах кода и т.д. и т.п. Текстовые редакторы, в целом, для тех, кто это прочувствовал, имеют более удобную организацию среды для работы, гибкую, мощную, без лишнего информационного и интерфейсного шума, позволяющую эффективно работать через клавиатуру без дёрганий к мыши и нормально работать мышью, когда активно не печатаешь, а что-то рассматриваешь, изучаешь и т.д. Плюс сам по себе редактор мощный. Недостатки те же, в частности, на счёт SQL, как будь-то заменить java-IDE или студию. У нас крайне слабый велосипед для контекстного автокомплита (в редких случаях есть небольшой разбор текста), в основном, "дополняются" элементы через структуру БД, т.е. имена таблиц, процедур и т.п. Выручают сниппеты и остальные текстовые плюшки, ну и плюс у нас не мало хреновин для генерации текста SQL на основе своего прикладного DSL. Но, тем не менее, какие-то операции всё таки удобно делать в том же IBExpert, к тому же отладчик там, и некоторые у нас в нём полностью работают (для него сделан свой плагин для генерации текста в его текстовых редакторах). Не знаю как именно работает ранее указанный Vorax, но обычно в подобных db-плагинах типовая организация "db-консолей", по мотивам DB-IDE. О мощном автокомплите, "компиляции" на лету с подсветкой проблем и подсказок и т.п. и т.д. пока можно лишь мечтать. К тому же и "консольные" sql-команды тоже не всегда удобно работают, т.е. в основном это запуск или всего текста в буфере или выделенного блока/блоков. Часто не хватает интерактивности по мотивам sqlplus хотя бы, т.е. вводишь текст разных команд (со снипетами, автокомплитом и пр.), набрал "/", "go" или "commit" и команды выполнились, консоль очистилась (в историю) и т.д. (частично иногда что-то можно сделать в виртуальном консоль/терминале при реальном сеансе с консольной тулзой). Короче говоря, обычно не хватает мощной поддержки исходников как для других языков, показ семантической структуры (кроме файловой иерархии), переходы по элементам, взаимосвязи и т.д. Было бы неплохо, если бы ещё была бы полная гармония между SQL-исходником и текущей базой (типа даже списки полей светились бы в автокомплите и примечались, это в базе есть, это только в исходниках и т.п.), между SQL и клиентским кодом, и т.д. Вот есть ещё один визуализатор HyperSQL , там делается попытка "зарисовать" не только базу через исходники, с док-комментариями, но и найти зависимости объектов БД в java/C++ -коде, как бы не помешал бы подобный функционал и внутри редактора (кроме внешнего HTML). Короче говоря, полностью работать в текстовом редакторе, имхо, пока проблематично. Я знаю одного энтузиаста, он, прежде всего, большой любитель лиспа. Всю свою разработку - кложура, С/С++, html/javascript и пр., SQL (правда тоже частично, но не мало), плюс документация и всякое org-mode - выстроил в эмаксе, который он каждый день программирует. Плюс в фаерфоксе установил keysnail и радуется жизни, и отчасти я ему завидую, но добиться такого уровня не просто, и надо уж очень захотеть, или иметь на это оправдание (кстати, от него научился ряду фишек, например, как использовать быстрый автокомплит на основе слов в тексте - дополнять поиск из соседних определенных буферов (ну, кроме других типовых механизмов), или вместо всплывающих подсказок для параметров процедур/функций/методов (особенно, если их нет вообще) генерировать сниппеты, где в качестве значений по умолчанию для полей (по которым прыгать по "tab") будет декларация имени параметра и тип - прыгнул на параметр, он весь выделился и вводишь текст и т.п.). Но, при работе с исходниками мне не нужно их постоянно реструктуризировать, перестраивать и т.п. Я хочу их создавать в едином удобном виде, с расчётом на меньшую писанину, с прицелом для задач создания БД и накатов, с учётом взаимосвязанной модульности. Т.е. и в редакторах нужно иметь механизмы для организации семантической структуры БД на основе исходников (плюс вспомогательные элементы, как история изменения объекта и пр.). Если это будет внешняя консольная утилита, то для того же редактора желателен плагин, который после запуска поймёт, что нужно внутри редактора обновить/передёрнуть (в идеале, нужна или полностью встроенная хрень или не помешал бы постоянно запущенный сервер, чтобы не перезапускать на каждый чих). Как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2013, 20:31:08 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Petro123авторВот с этим могут быть проблемы, но не больше чем в гуи иде. но ведь данный тезис полностью ломает твою утилиту и сабж. Это логика. Ну а куда без проблем и их решений. Они есть везде, и в гуях и в предполагаемой тулзе. Я же хочу попробовать их (в смысле эти инструменты) попробовать объединить. И от каждого взять то, для чего он предназначен. От иде(или прошаренного текстового редактора) - удобную работу с кодом, от миграторов возможность простого и безболезненного обновлений от версиии к версии, ну а от тулза возможность организовать хранение кода БД-приложния, управление им, структурирование и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2013, 21:08:43 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakovавтор раз 4000 объектов, то получи их все в дереве, выковыривай и целься мышкой по маленькому значку беда. А что, кнопочка с биноклем совсем не работает? Которая фулл-текст-серч. И вкладочка любимых(кто последний того и любим. кого больше всего любим того и используем чаще) объектов. Их же не 4000? А чем кстати утилита помогает находить 1 из 4000 текстов, будь он в одном файле с другими объектами, или в своем индивидуальном. Юзкейс какой - как происходит работа с утилитой. Ну вот у меня открыты вим и фар-манагер. или просто фар-манагер с подсветкой синтаксиса. и чего дальше происходит. вот мне надо вспомнить по имени одного из 4000, найти, поменять и покласть заново на место. в пиэль эскуэль девелопере есть проекты. Взяли и открыли - набор скриптов, процедур, пакетов..... наслаждаемся..... Встречный вопрос: вы исправляете какую-нибудь ошибку в хранимых процедурах, либо занимаетесь рефакторингом: там подправили строчку, в другой проке комментарий сделали (когда работал с файербердной базой у меня за один такой поход больше десятка процедур могло попасться под руку), а эту просто открыли, в окошке висеть оставили, потом вернулись к первой, доделали, потом к 5-й и т.д. А теперь вы хотите побыстрому все что направили накатить на общу разработческую базу, а теперь на тестовую, а потом на другую (2-ю, 3-ю и т.д.) тестовую, потом снова вернуться обратно доправить, снова понакатывать, потом было бы неплохо пересобрать зависимые процедуры из данного модуля (и из всех зависимых), позапускать зависимые юнит-тесты, повторить весь указанный цикл, а потом с чистой совестью оформить из всего этого (по внутрикорпаративным стандартам) чейндж-скрипт и так, чтобы не стереть при этом руку, возюкая мышью по столу. Вот у меня и есть мечта (может быть не сбыточная) это автоматизировать (а еще много чего еще автоматизировать и организовать, тут много говорили уже, не буду повторяться), причем не на уровне самодельных, заточенных под конкретный проект, скриптиков, или не на уровне притаскивания за ущи для этого мигратора (все таки у них другие задачи), а на уровне какого-либо стандарта, общей схемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2013, 21:23:51 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
PSV100А какие это специфичные объекты, особенно при EAV? Допустим есть БД-приложение (или его модуль), построенное на EAV. В нем есть специальные процедуры, с помощью, которых можно создать новый тип объекта(класс), добавить ему атрибуты, привязать к другому. И вот с помощью этого инструментария я создаю новый класс "Автомобиль" с соответствующими атрибутами (скорость, мощность etc), делаю его наследником класса "Транспортное средство" и дочерним от класса "Автопарк". Получаю набор вызовов процедур с определенными параметрами. Т.е. если бы я создал таблицы "Автомобиль", то я бы увидел ее в ИДЕ'шке, смог всякие операции с ней проводить и т.д. Ну а в данном случае наш новый тип объекта как бы теряется, он становится просто набором инсертов в 3-4 (утрируя) EAV-таблицы. С помощью тулза же можно (при желании и необходимсоти, я не говорю, что это обязательно) организовать структуру хранения таких типов объектов и упралять ее. Т.е. описываем новый тип объекта БД, например "EAV-класс" (это просто название), описываем его элементы: сам класс, атрибуты, связи, наслдования ну и прочие специфичные вещи, а потом работаем с ним как с обычным объектом применяя весь имеющийся функционал. PSV100Я хочу сказать, что те, кто работает с IDE будут максимально упрощать свою работу. Если даже нужен немалый дамп данных как "insert ..." где-то применять, то его всё равно запросто (ибо так проще) смогут оформить как стандартный блок кода или чего там есть в IDE, и выгружать когда нужно. Короче говоря, для них IDE предопределяет структуру проектов, взаимосвязь между объектами и т.п. И если нужна какая-то модульность, то будут оперировать стандартными средствами, теми же "схемами" или в рамках проектов (если IDE позволит). Если есть необходимость в дополнительной возни со скриптами (а она, всё таки, часто и есть), то они согласны пережить этот гемор (для них меньший по сравнению с тем, если бы работали вне IDE). Тут как раз можно помочь удобным продвинутым создавателем дампов или скриптов, о котором как-то говорилось раньше. В т.ч. круто, когда для конкретной IDE есть, скажем доставалка данных из её истории для того же Liquibase, ну и прочие скрипты. Согласен, у меня и нет мысли и желания сделать революцию в мире разработки БД-приложений и оторвать всех разработчиков от ИДЕ'шек, которые разрабатываются огромным количеством профессионалов, просто в методике, по которой работаю я, есть необходимость в похожем гибком инструменте (может есть у кого то еще, а может я один буду с этим работать). ИМХО продвинутых (и очень) содавателей дампов и так хватает, а вот если организовать структурированное хранение исходников, то тут тоже возможны интересные варианты. PSV100Теперь о тех, кто работает в текстовых редакторах или в не-DB IDE. По своему опыту. Так специфика сложилась, что именно с FireBird-ом у нас самые геморные проекты. Под другие СУБД гораздо меньше мороки и вынуждены работать в типовых придворных IDE, и даже миграторы не используются, все скрипты готовятся ручками и исполняются. Под FireBird в текстовом редакторе работать заставил, прежде всего, препроцессор. Плюс там же реализована "IDE" под свой DSL для проектов. Плюсы редакторов. Это попытка уменьшить количество одновременно используемых разных IDE/редакторов, где разные раскладки клавиш (особенно весело переключаться часто между вим-управлением и другим), нет возможности везде оформить хотя бы более-менее идентично раскраски кода, не говоря уже о разных самих редакторах кода и т.д. и т.п. Текстовые редакторы, в целом, для тех, кто это прочувствовал, имеют более удобную организацию среды для работы, гибкую, мощную, без лишнего информационного и интерфейсного шума, позволяющую эффективно работать через клавиатуру без дёрганий к мыши и нормально работать мышью, когда активно не печатаешь, а что-то рассматриваешь, изучаешь и т.д. Плюс сам по себе редактор мощный. Недостатки те же, в частности, на счёт SQL, как будь-то заменить java-IDE или студию. У нас крайне слабый велосипед для контекстного автокомплита (в редких случаях есть небольшой разбор текста), в основном, "дополняются" элементы через структуру БД, т.е. имена таблиц, процедур и т.п. Выручают сниппеты и остальные текстовые плюшки, ну и плюс у нас не мало хреновин для генерации текста SQL на основе своего прикладного DSL. Но, тем не менее, какие-то операции всё таки удобно делать в том же IBExpert, к тому же отладчик там, и некоторые у нас в нём полностью работают (для него сделан свой плагин для генерации текста в его текстовых редакторах). Именно, плюс в том, что здорово овладеть каким нибудь развитым универсальным инструментом (vim, emacs, eclipse, jedit etc) для работы с исходным кодом и применять его для разных программ и технологий, только устанавливая дополнительные плагины, расширяя подсветку и автокомплит. При большом желании и плагин не сложно набросать. Ну а каждая ИДЕ стремиться сделать свой личный редактор кода, самый удобный и самый лучший, к которому нужно привыкать и перестраиваться. PSV100Не знаю как именно работает ранее указанный Vorax, но обычно в подобных db-плагинах типовая организация "db-консолей", по мотивам DB-IDE. О мощном автокомплите, "компиляции" на лету с подсветкой проблем и подсказок и т.п. и т.д. пока можно лишь мечтать. К тому же и "консольные" sql-команды тоже не всегда удобно работают, т.е. в основном это запуск или всего текста в буфере или выделенного блока/блоков. Часто не хватает интерактивности по мотивам sqlplus хотя бы, т.е. вводишь текст разных команд (со снипетами, автокомплитом и пр.), набрал "/", "go" или "commit" и команды выполнились, консоль очистилась (в историю) и т.д. (частично иногда что-то можно сделать в виртуальном консоль/терминале при реальном сеансе с консольной тулзой). Короче говоря, обычно не хватает мощной поддержки исходников как для других языков, показ семантической структуры (кроме файловой иерархии), переходы по элементам, взаимосвязи и т.д. Было бы неплохо, если бы ещё была бы полная гармония между SQL-исходником и текущей базой (типа даже списки полей светились бы в автокомплите и примечались, это в базе есть, это только в исходниках и т.п.), между SQL и клиентским кодом, и т.д. Вот есть ещё один визуализатор HyperSQL, там делается попытка "зарисовать" не только базу через исходники, с док-комментариями, но и найти зависимости объектов БД в java/C++ -коде, как бы не помешал бы подобный функционал и внутри редактора (кроме внешнего HTML). Vorax как раз и позволяет работать с кодом (из файла, или временного файла), а затем исполнять (причем либо полностью, либо покомандно, либо частино по выделению), используя старый добрый классный sqlplus и естественно все его языковые расширения. Как то задавался вопросом: почему каждая (по крайней мере многие из них) ИДЕ'шка пытается выполнять sql своими способами, кто то через JDBC, котто через другие драйвера, не смотря на то, что для многих СУБД обычно есть специализированный родной экзекутор (как sqlplus или psql для Postgres), т.е. здесь ИДЕ тоже не оставляют выбора. Да, во многих из них есть режимы для работы с консолью (например в Тоаде и PSD есть специальные типы worksheet'ов, которые исполняются в sqlplus), но это больше как фича дополнителная, со своими ограничениями. PSV100Но, при работе с исходниками мне не нужно их постоянно реструктуризировать, перестраивать и т.п. Я хочу их создавать в едином удобном виде, с расчётом на меньшую писанину, с прицелом для задач создания БД и накатов, с учётом взаимосвязанной модульности. Т.е. и в редакторах нужно иметь механизмы для организации семантической структуры БД на основе исходников (плюс вспомогательные элементы, как история изменения объекта и пр.). Если это будет внешняя консольная утилита, то для того же редактора желателен плагин, который после запуска поймёт, что нужно внутри редактора обновить/передёрнуть (в идеале, нужна или полностью встроенная хрень или не помешал бы постоянно запущенный сервер, чтобы не перезапускать на каждый чих). Вот над этим я пытаюсь работать, инструмент, который мог бы поддерживать структуру и порядок среди объектов и модулей, а не просто нагромождение файлов-чейнджсетов или жесткое отображение объектов в дереве иде'шки, ну и интегрировался в другие спеиализированные проверенные популярные средства (текстовые редакторы, ИДЕ'шки, sql-экзекуторы, файловые менеджеры, CI и т.д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2013, 22:11:03 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Максим НВстречный вопрос: оригинально) Не отвечая на важный вопрос о хранилище (у велосипеда есть 2 колеса и рама). Мы спрашиваем: "а у вас есть ABS, электрический звонок и круиз контроль". Т.е ты задумал на основе написания скриптов create делать автоматически скрипты update с с сохранением данных клиента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2013, 00:29:36 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Petro123Максим НВстречный вопрос: оригинально) Не отвечая на важный вопрос о хранилище (у велосипеда есть 2 колеса и рама). Мы спрашиваем: "а у вас есть ABS, электрический звонок и круиз контроль". Этим вопросом я попытался ответить на вопрос автора, если не получилось отвечу что непонятно. Petro123Т.е ты задумал на основе написания скриптов create делать автоматически скрипты update с с сохранением данных клиента? Нет, авоматически делать скрипты не в моей компетенции, только сохранение кода разработчика в сттруктурированном виде. Чуть позже покажу пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2013, 07:02:08 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Максим Н, Тогда расшифруй Накатить на тестовую базу всё что наисправлял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2013, 09:10:56 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
авторВстречный вопрос: вы исправляете какую-нибудь ошибку в хранимых процедурах, либо занимаетесь рефакторингом: там подправили строчку, в другой проке комментарий сделали (когда работал с файербердной базой у меня за один такой поход больше десятка процедур могло попасться под руку), а эту просто открыли, в окошке висеть оставили, потом вернулись к первой, доделали, потом к 5-й и т.д. А теперь вы хотите побыстрому все что направили накатить на общу разработческую базу, а теперь на тестовую, а потом на другую (2-ю, 3-ю и т.д.) тестовую, потом снова вернуться обратно доправить, снова понакатывать, потом было бы неплохо пересобрать зависимые процедуры из данного модуля (и из всех зависимых), позапускать зависимые юнит-тесты, повторить весь указанный цикл, а потом с чистой совестью оформить из всего этого (по внутрикорпаративным стандартам) чейндж-скрипт и так, чтобы не стереть при этом руку, возюкая мышью по столу Не, я получаю бизнес-требование, открываю или создаю новый проект, оному посвященный, и в рамках этого проекта все что надо делаю. По правилам жанра проекты одного слоя апи друг на друга не ссылаются, и я ничем не озабочен, совсем. Все объекты имеющие отношение к проекту имеют типовой префикс, и находятся биноклем, равно как и покладены в папочку, имеющую тот же самый номерной префикс. Когда я переделываю таблицу - в папочке остается скрипт целиковый, или альтерящий. Это вопрос управления всем ходом разработки. А не удобства ИДЕ. Как говорил один из моих боссов - ==хаос автоматизировать невозможно==... мне тут подумалось что можно добавить ==а порядок - он и без автоматизации - порядок==. Но тут как. Порядок такой сложился при разработке кастомизаций готового крупного продукта - ОЕБС. и сейчас используется при изготовлении фин.отчетности. (т.е. система, на которой отчетность собирается - уже есть, и зафиксирована) Всегда ли его можно наложить на другие типы разработки - я не уверен. Дальше - когда я знаю кого мне надо открыть по именам - я и не ищу его в дереве. я набираю имя в ближайшем окне, клацаю правой кнопулей, и вот он - открыт. Дерево вообще крайне редко используется. Обычно начинаешь ковырять пакет, и дальше открываешь правой кнопкой объекты из него - таблы, вьюшки. Правишь и закрываешь. Если объект нужно покласть не в текущую папку - по префиксу же сразу видно - куда. Если я помню префикс проекта - автоподсказка автоподсказывает мне все объекты, имеющие отношение к сути дела. По формальному кодовому префиксу и смыслонесущему постфиксу сразу видно - это что и зачем. Вимы и емаксы может и сэкономят мне клики по клаве, но всякое автодополнение экономит намного больше.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2013, 15:40:19 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
авторНу а в данном случае наш новый тип объекта как бы теряется, он становится просто набором инсертов в 3-4 (утрируя) EAV-таблицы Я бы делал пустые таблички, которые можно править в иде, и переносил бы их стр-ру в ЕАВ пиэль-скуль-процой. "Это и охота, и зверей убивать не надо" (c) Простоквашино ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2013, 15:53:00 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Максим НVorax как раз и позволяет работать с кодом (из файла, или временного файла), а затем исполнять (причем либо полностью, либо покомандно, либо частино по выделению), используя старый добрый классный sqlplus и естественно все его языковые расширения. Максим, речь не об этом. Такой Vorax в том же JEdit лепится на типовых плагинах (часть из которых уже была конкретна названа). Есть SQL-плагины, которые могут дать настраиваемое дерево объектов в БД (где ты можешь любые нужные папочки наваять) плюс содержимое объектов. Есть система управления текстовыми файлами. Даже взяв базовые плагины для организации семантической структуры исходников, без спецразбора кода SQL, и, например, можно настроить правила для "фолдинга" (хотя бы через регэкспы, можно даже линии в коде по разному раскрашивать) и у тебя будут рисоваться деревья для показа структуры открытого sql-файла согласно его "фолд"-ам. Те же sql-плагины могут сами исполнять запросы, со своими дополнительными плюшками. Хочешь, через плагин console запускай sqlplus, можно настроить обработку результатов его вывода, будут списки ошибок и переходы на места в коде. Или даже организовать интерактивный режим работы в console с этим же sqlplus. Но, вряд ли Vorax реализует полноценный семантический контекстный тот же автокомплит (не говоря уже обо всём остальном). Например, при наборе текста где-то внутри sql-процедуры нужно не только понимать конкретное место внутри sql-оператора, но и знать, чего есть выше по коду, определить список параметров, переменных и т.д., понимать чего ещё есть внутри файла вне процедуры, по связанным включениям вида start/input переходить в те файлы и т.д. Обычно, тот же автокомплит на уровне списка элементов согласно правилам синтаксиса (ключевые слова, список встроенных функций и т.п.), плюс объекты БД на основе метаданных (и нет подключения к БД - нет и автокомплита), ну может ряд локальных выкрутасов на основе окружающего текста. В дополнение, м.б. Vorax умеет широко обрабатывать результаты вывода sqlplus. Если, в частности, Vorax более продвинут, то это только плюс. Максим НКак то задавался вопросом: почему каждая (по крайней мере многие из них) ИДЕ'шка пытается выполнять sql своими способами, кто то через JDBC, котто через другие драйвера, не смотря на то, что для многих СУБД обычно есть специализированный родной экзекутор (как sqlplus или psql для Postgres), т.е. здесь ИДЕ тоже не оставляют выбора. Да, во многих из них есть режимы для работы с консолью (например в Тоаде и PSD есть специальные типы worksheet'ов, которые исполняются в sqlplus), но это больше как фича дополнителная, со своими ограничениями. Ну, кроме того, что м.б. иногда и руки кривые, а так, в принципе, есть вполне реальные технические причины. Тот же IBExpert работает через "нативный" доступ, он расширяет SQL относительно сервера и стандартных утилит, плюс архитектура ODBC/AdoNet/JDBC не позволяет задействовать все возможности СУБД, да и банально так производительнее. Другие IDE/утилиты тоже часто расширяют функционал, особенно "кросс-СУБД", типа поддержка вычислений через спец-комментарии, которые работают для всех серверов. SQL-запускалку геморно дёргать постоянно на каждый чих, каждый раз перезапуская, коннектясь, или не очень то практично организовать сеанс псевдо-консольной работы, плюс не удобно обрабатывать результаты через stdout, та же производительность ниже. Кроме того, тот же JDBC уже имеет в загашнике некий глобальный интерфейс для работы с метаданными СУБД, и т.д. Максим НДопустим есть БД-приложение (или его модуль), построенное на EAV. В нем есть специальные процедуры, с помощью, которых можно создать новый тип объекта(класс), добавить ему атрибуты, привязать к другому. И вот с помощью этого инструментария я создаю новый класс "Автомобиль" с соответствующими атрибутами (скорость, мощность etc), делаю его наследником класса "Транспортное средство" и дочерним от класса "Автопарк". Получаю набор вызовов процедур с определенными параметрами. Т.е. если бы я создал таблицы "Автомобиль", то я бы увидел ее в ИДЕ'шке, смог всякие операции с ней проводить и т.д. Ну а в данном случае наш новый тип объекта как бы теряется, он становится просто набором инсертов в 3-4 (утрируя) EAV-таблицы. С помощью тулза же можно (при желании и необходимсоти, я не говорю, что это обязательно) организовать структуру хранения таких типов объектов и упралять ее. Т.е. описываем новый тип объекта БД, например "EAV-класс" (это просто название), описываем его элементы: сам класс, атрибуты, связи, наслдования ну и прочие специфичные вещи, а потом работаем с ним как с обычным объектом применяя весь имеющийся функционал. А как такое технически реализовать, имея в виду "работу с исходниками", да и ещё попутно решая первостепенные задачи вариантного создания БД и внесения изменений ? Обычно так. Пусть в исходниках лежит где-то база (ну может не FireBird-а, оракл с постгресом не потаскаешь, пусть sqlite) или лежит дамп как "insert"-операторы с какими-то EAV-данными. В sql-коде, где-то в процедуре или других блоках, я могу вполне подключить эту базу или создать sqlite-базу (в т.ч. и в памяти) и загрузить туда дамп данных. Затем, исходя из конкретных потребностей в каждом случае, для операции наката или какого-то формирования БД, выполнить обработку и разместить в целевой БД нужные данные, или сформировать код для этого (те же insert-ы) и т.п. Далее, для своей работы в текстовом редакторе, мне необходимо формировать исходники. Вновь обращаю внимание на проект sqlmake. Там есть примерная логика организации удобной структуры каталогов. Выделяется понимание "datamodel" - таблицы с индексами и пр., для которых нужно в исторической последовательности формировать create-операторы и дальнейшие "alter"-ы плюс остальные требуемые операции, логически группировать по версиям. Также имеется весь остальной "повторяемый"-код (create or alter/replace ...), плюс нужно выделять тот код, который нужен для запусков перед и после операций модификации БД. Хотелось бы объекты объединять в логические подмодули в одном файле, где бы указывалась зависимость от других модулей (я планирую через спец-аннотации), модуля организуются иерархически. Всё это предопределяет структуру каталогов. Далее, в редакторе есть удобные средства для манипулирования файлами, в т.ч. есть возможность смотреть на всю (или частично) структуру каталогов, ну и плюс файлы в них. А если ещё будет понимание структуры каждого конкретного файла, то просто замечательно (и пока речь не идёт о фишках IDE для непосредственной работы с кодом, как перемещение по связанным элементам, в общем вокруг семантики). И не помешало бы на основе исходников иметь инструмент, как указанный ранее HyperSQL, который сформирует согласно такой-то настроенной конфигурации проекта виртуальную структуру БД (в т.ч. и собрал бы, например, все alter-ы таблицы в одном месте рядом с исходным create, ну и др. зависимости), что-то бы хотелось в т.ч. и в виде текстовых данных для самого редактора, естественно, с поддержкой связности. И задачи для организации "EAV" и подобного, справочных и тестовых данных и т.д. (и это действительно частое явление) будут где-то выделены в своих каталогах и файлах. Если какой-то настраиваемый "HyperSQL" сможет поддержать информацию об этих "дополнениях", то неплохо. А так обычно где-то в документации (кроме инфы в самих файлах, плюс будут ссылки на документацию из разных мест, т.е. из файлов и "HyperSQL") будет расписано, чего за хреновина такая, как делать настройки для неё и т.д. И вполне достаточно её выделить хотя бы в файловой структуре. Если нужно какую-то ту же sqlite-базу править, то открою какой-то вьювер, м.б. и внутри редактора, ну и направлю данные. Как я понимаю, у тебя есть желание сделать некую абстрактную IDE, где, например, слева бы рисовалось дерево проекта, причём хочу в таком виде (как папки и файлы), хочу в другом (по объектам БД и "виртуальные" объекты). Далее для какого-то объекта "EAV" будет раскрыто своё поддерево, с реальными EAV-данными, или откроется какой-то режим "sql-консоли" для манипулирования данными и т.п. А справа будет нарисовано дерево объектов подключенной БД, и всё со всем гармонично взаимодействовать. Затем захотел, дал команду вида собрать sql-скрипт по таким-то хреновинам - получил. Теоретически, что-то вполне можно сделать, но лишь что-то и в конкретном месте, конкретной IDE/редакторе. Если делать супер-универсально, без поддержки чего-то конкретного, то это возможно консоль а-ля как тот же sqlplus (show my_project, export хреновина to файл и т.д., кому нужно, тот и в эмаксе запустит), или HTML или вообще полный вэб. Сейчас как раз начали появляться проекты как ACE Editor, типа продвинутый редактор в браузере. Для FireBird есть IDE FlameRobin, это десктоп-GUI, но часть интерфейса реализовано через HTML, настраиваемого. Да и хватает всяких Web-DBIDE. Но стоит ли ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2013, 16:58:55 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Максим, а вообще-то, нафига голову ломать на счёт какой-то IDE, если хочется попробовать текстовый редактор. Ведь в нём, фактически, есть всё, что нужно. И работать как бы нужно в стиле "true" соответственно. Возьми тот же vim c Vorax и вперёд пробовать. Нет каких-то деревьев, типа как файловая структура или объекты в БД, якобы нужно писать плагин - да пока фиг с ним. Я согласен с мнением Vladimir Baskakov выше на счёт всяких деревьев, они лишь относительные помощники. Те же свои "кастомные" деревья реализуются через обычный текст, через фолдинг. Открыл файл, в котором по умолчанию всё свёрнуто - вот и дерево, открывай узлы, можно по уровням, можно по "тэгам", доступны все операции как для текста, поиск, фильтр и т.д. (как пример, открой в том же JEdit здоровенный файл истории его изменений). Посмотри на org-mode, как там организованы структурные текстовые документы, с ссылками для перехода. Короче говоря, полноценное IDE. В одних буферах воюешь со своей метасистемой, рядом sql-ишь. Можно попробовать sublime. У него есть нехваталки (в т.ч. и хромалки, если нужно именно вим-управление), но зато есть всё нужное, фактически, из коробки: - можно определить свой синтаксис, кроме раскраски задать правила для фолдинга, сниппеты и элементы автокомплита, и свои метки для кода (и, кстати, для своего "языка" не нужно возиться с ctags). Благодаря его "goto" дерево проекта там и нафиг не нужно, структуру файлов проще вне редактора смотреть (и если чё, запускать из фара/mc/zsh, второй экземпляр редактора он не запустит); - можно запускать тот же sqlplus и результаты обрабатывать, светить ошибки и т.д. Плюс есть и всякие плагины для этого дела, вплоть до интерактивной сессии; - есть куча плагинов, типа можно запускать внешнюю тулсу, сохранив файл в буфере, она его обработает (или передать часть файла), перечитать его в редакторе и т.п. Т.е. "метадеревья" формировать можно внешней утилитой (вместо родных плагинов); - что-то есть по мотивам org-mode от эмакса, конечно не всё, но на счёт организации документов должна быть основа, в т.ч. и переходы по ссылкам; - есть всякие запускалки чего нужно, типа для вэб-ссылки запуск броузера, куча примеров как в буферах самому чего надо открывать; - есть основа, чтобы сделать свою обработку файла в буфере по особому, т.е. запретить редактирование, через "вверх/вниз" сразу перелетать по прикладным элементам и т.д. - есть всякие популярные помогалки по мотивам вима, типа автокомплит целых строк, выравнивание (tabular) и т.д. и т.п. Если у тебя сформируется методика разработки БД и поделишься с обществом, все будут благодарны. А если ещё и какой-то плагин для чего-то набросаешь, то его вполне могут по всем эмаксам растащить, как, Zen Coding/Emmet, например. Имхо, вполне себе вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2013, 18:42:49 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Vladimir BaskakovавторНу а в данном случае наш новый тип объекта как бы теряется, он становится просто набором инсертов в 3-4 (утрируя) EAV-таблицы Я бы делал пустые таблички, которые можно править в иде, и переносил бы их стр-ру в ЕАВ пиэль-скуль-процой. "Это и охота, и зверей убивать не надо" (c) Простоквашино Вариант интересный конечно, но только чисто теоретически, т.к. на самом деле все сложнее. Специфические типы данных могут быть, связи, наследования и прочие понты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2013, 20:28:01 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakovоткрываю или создаю новый проект Vladimir Baskakovи в рамках этого проекта все что надо делаю Vladimir BaskakovПо правилам жанра проекты одного слоя апи друг на друга не ссылаются Vladimir BaskakovВсе объекты имеющие отношение к проекту имеют типовой префикс Т.е. в вашем проекте есть сформированный набор правил (кстати где он описан и как контролируется?) и если ему следовать, то можно здорово сэкономить время себе и другим, на сбор версий, разбирание с чужим кодом и т.д. Что будет если новый сотрудник создаст объект без префикса и включит в версию? Когда это выяснится? Т.к. в тулзе есть возможность описывать структуру хранимых объектов, то есть и возможность контроллировать также и их наименования, т.е. например указываем, что для модуля "ЗП" имя индекса должно состоять из первых 2-х, 3-х, 4-х символов имени таблицы, разделенное знаком "_". А имя сиквенса должно начинаться (или заканчиваться) символами "SEQ", так же разделенное знаком "_". Затем во время сбора версии (в том же самом CI к примеру) запускаем тулз на проверку имен и получаем взрывы или предупреждения. Ну и соответсвенно легко настроить кодогенерацию, под стандарты проекта и каждого модуля-подмодуля: ввожу команду и получаю стандартизированный набор болванок уже с именами. Vladimir BaskakovЭто вопрос управления всем ходом разработки. А не удобства ИДЕ. Как говорил один из моих боссов - ==хаос автоматизировать невозможно==... мне тут подумалось что можно добавить ==а порядок - он и без автоматизации - порядок==. Но тут как. Порядок такой сложился при разработке кастомизаций готового крупного продукта - ОЕБС. Что порядок сложился это хорошо, и то что он поддерживается это тоже хорошо, и это видно. Но вот что если он не сложился, ну или если нет у человека достаточного опыта при начале нового БД-проекта. А тут можно предложить некий фреймворк, каркас, с преднастройками от лучших заводчиков разработчиков в этой сфере. С возможностью интеграции с другими инструментами. Т.е. чтобы типовой БД-проект можно было бы организовать несколькими командами или щелчками мыши, с нужной структурой, контролем, системой сбора и накатки версий и т.д. И это совершенно не значит, что нужно забросить ГУИ и ломать глаза в консоли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2013, 20:58:17 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Petro123Максим Н, Тогда расшифруй Накатить на тестовую базу всё что наисправлял. Т.е. есть несколько процедур/пакетов (5-10, легко), которые я наизменял, и теперь мне нужно собрать их в один скрипт и откатать их на других серваках (тестовых, разработческих etc), что проверить валидность накатки, запустить юнит-тесты, нагрузочные тесты, подключить тестировщиков (если надо), причем это скрипт можен иметь особенности при сборке, если это пакеты, то логично в начале включить "головы", а затем "тела", если это процедуры (да и еще файербердовские), то, насколько помню, там еще и порядок может быть важен, тот возможно собрать по времени изменения и т.д. Ну и повторятся это может много раз. А потом нужно собрать нужный скрипт для включения в версию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2013, 21:38:49 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
PSV100Максим, речь не об этом. Такой Vorax в том же JEdit лепится на типовых плагинах (часть из которых уже была конкретна названа). Есть SQL-плагины, которые могут дать настраиваемое дерево объектов в БД (где ты можешь любые нужные папочки наваять) плюс содержимое объектов. Есть система управления текстовыми файлами. Даже взяв базовые плагины для организации семантической структуры исходников, без спецразбора кода SQL, и, например, можно настроить правила для "фолдинга" (хотя бы через регэкспы, можно даже линии в коде по разному раскрашивать) и у тебя будут рисоваться деревья для показа структуры открытого sql-файла согласно его "фолд"-ам. Те же sql-плагины могут сами исполнять запросы, со своими дополнительными плюшками. Хочешь, через плагин console запускай sqlplus, можно настроить обработку результатов его вывода, будут списки ошибок и переходы на места в коде. Или даже организовать интерактивный режим работы в console с этим же sqlplus. Но, вряд ли Vorax реализует полноценный семантический контекстный тот же автокомплит (не говоря уже обо всём остальном). Например, при наборе текста где-то внутри sql-процедуры нужно не только понимать конкретное место внутри sql-оператора, но и знать, чего есть выше по коду, определить список параметров, переменных и т.д., понимать чего ещё есть внутри файла вне процедуры, по связанным включениям вида start/input переходить в те файлы и т.д. Обычно, тот же автокомплит на уровне списка элементов согласно правилам синтаксиса (ключевые слова, список встроенных функций и т.п.), плюс объекты БД на основе метаданных (и нет подключения к БД - нет и автокомплита), ну может ряд локальных выкрутасов на основе окружающего текста. В дополнение, м.б. Vorax умеет широко обрабатывать результаты вывода sqlplus. Если, в частности, Vorax более продвинут, то это только плюс. Можно и плагинами, Vorax это в принципе и есть набор инструментов и плагинов - vim для кода, sqlplus в качестве экзекутора, интеграция с NERDTree, ctag'ами и XPtemplate. Из фишек там есть разбор кода (ксати с использованием antlr, ксати надо подсмотреть как именно), он умеет определять и выполнять блоки и отдельные sql-операторы, чего то еще было, сейчас не припомню. Просто для меня это был первый такой открытый инструмент, который использует для решения задач всем знакомые и проверенные инструменты, и практически ни к чему не надо привыкать. PSV100А как такое технически реализовать, имея в виду "работу с исходниками", да и ещё попутно решая первостепенные задачи вариантного создания БД и внесения изменений ? Хранить исходники создания(изменения) класса и его элементов так же как и исходники создания таблицы и ее элементов. Но это просто как вариант, чтобы показать принцип работы тулза. Так же теоретически возможно хранить исходники какой-нибуть NoSQL-базы, например Cypher-скрипты, так же их орагнизовывать и контроллировать. PSV100Как я понимаю, у тебя есть желание сделать некую абстрактную IDE, где, например, слева бы рисовалось дерево проекта, причём хочу в таком виде (как папки и файлы), хочу в другом (по объектам БД и "виртуальные" объекты). Далее для какого-то объекта "EAV" будет раскрыто своё поддерево, с реальными EAV-данными, или откроется какой-то режим "sql-консоли" для манипулирования данными и т.п. А справа будет нарисовано дерево объектов подключенной БД, и всё со всем гармонично взаимодействовать. Затем захотел, дал команду вида собрать sql-скрипт по таким-то хреновинам - получил. Да, примерно так, но вот насчет рисования дерева я не думал, информация для него - да, хранение-контроль структуры проекта/модулей - да, а уже на основе этого можно и визуализировать. PSV100Теоретически, что-то вполне можно сделать, но лишь что-то и в конкретном месте, конкретной IDE/редакторе. Если делать супер-универсально, без поддержки чего-то конкретного, то это возможно консоль а-ля как тот же sqlplus (show my_project, export хреновина to файл и т.д., кому нужно, тот и в эмаксе запустит), или HTML или вообще полный вэб. Сейчас как раз начали появляться проекты как ACE Editor, типа продвинутый редактор в браузере. Для FireBird есть IDE FlameRobin, это десктоп-GUI, но часть интерфейса реализовано через HTML, настраиваемого. Да и хватает всяких Web-DBIDE. Но стоит ли ? Идея интересная, но думаю перебор, по крайней мере пока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2013, 22:13:50 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
PSV100Максим, а вообще-то, нафига голову ломать на счёт какой-то IDE, если хочется попробовать текстовый редактор. Ведь в нём, фактически, есть всё, что нужно. И работать как бы нужно в стиле "true" соответственно. Возьми тот же vim c Vorax и вперёд пробовать. Нет каких-то деревьев, типа как файловая структура или объекты в БД, якобы нужно писать плагин - да пока фиг с ним. Я согласен с мнением Vladimir Baskakov выше на счёт всяких деревьев, они лишь относительные помощники. Те же свои "кастомные" деревья реализуются через обычный текст, через фолдинг. Открыл файл, в котором по умолчанию всё свёрнуто - вот и дерево, открывай узлы, можно по уровням, можно по "тэгам", доступны все операции как для текста, поиск, фильтр и т.д. (как пример, открой в том же JEdit здоровенный файл истории его изменений). Посмотри на org-mode, как там организованы структурные текстовые документы, с ссылками для перехода. Короче говоря, полноценное IDE. В одних буферах воюешь со своей метасистемой, рядом sql-ишь. Согласен, с фолдингом и тэгами проще будет, еще попытаюсь заюзать вместе с xiki, интересно что из этого получится. Дерево это не самоцель, просто есть такая возможность его нарисовать, если нужно. PSV100Можно попробовать sublime. У него есть нехваталки (в т.ч. и хромалки, если нужно именно вим-управление), но зато есть всё нужное, фактически, из коробки: - можно определить свой синтаксис, кроме раскраски задать правила для фолдинга, сниппеты и элементы автокомплита, и свои метки для кода (и, кстати, для своего "языка" не нужно возиться с ctags). Благодаря его "goto" дерево проекта там и нафиг не нужно, структуру файлов проще вне редактора смотреть (и если чё, запускать из фара/mc/zsh, второй экземпляр редактора он не запустит); - можно запускать тот же sqlplus и результаты обрабатывать, светить ошибки и т.д. Плюс есть и всякие плагины для этого дела, вплоть до интерактивной сессии; - есть куча плагинов, типа можно запускать внешнюю тулсу, сохранив файл в буфере, она его обработает (или передать часть файла), перечитать его в редакторе и т.п. Т.е. "метадеревья" формировать можно внешней утилитой (вместо родных плагинов); - что-то есть по мотивам org-mode от эмакса, конечно не всё, но на счёт организации документов должна быть основа, в т.ч. и переходы по ссылкам; - есть всякие запускалки чего нужно, типа для вэб-ссылки запуск броузера, куча примеров как в буферах самому чего надо открывать; - есть основа, чтобы сделать свою обработку файла в буфере по особому, т.е. запретить редактирование, через "вверх/вниз" сразу перелетать по прикладным элементам и т.д. - есть всякие популярные помогалки по мотивам вима, типа автокомплит целых строк, выравнивание (tabular) и т.д. и т.п. Sublime посмотрю, но всем редакторам не угодишь, и в любом случае ИДЕ это для многих (в т.ч. и для меня пока ) основная среда работы с БД-кодом. PSV100Если у тебя сформируется методика разработки БД и поделишься с обществом, все будут благодарны. А если ещё и какой-то плагин для чего-то набросаешь, то его вполне могут по всем эмаксам растащить, как, Zen Coding/Emmet, например. Имхо, вполне себе вариант. Да, было бы здорово. Спасибо, что напомнил про Zen Coding. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2013, 22:28:03 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Максим НSublime посмотрю, но всем редакторам не угодишь, и в любом случае ИДЕ это для многих (в т.ч. и для меня пока ) основная среда работы с БД-кодом. Ну может тогда по интерпрайзному, на Эклипс посмотреть. У него свои db-плагины, есть расширения для Оракл, от того же Toad . При необходимости, можно чего-то самому наплагинить, какие-то имена объектов контролировать и т.д. Далее, есть Xtext , для своих DSL, не только разбор, полную IDE из коробки обеспечить можно, в т.ч. и разбор SQL, если вдруг надо будет. На нём основан Xtend , CoffeeScript для Javа, как придворный пример использования технологии. У jetbrains есть некий аналог, MPS , правда не знаю на счёт Оракла, скорее всего, в рамках стандартного db-плагина. Если понадобится и какая-то Neo4j, то, имхо, для того же Эклипса чего-то найдётся. Имхо, если есть корпоративные потребности, м.б. проект и оправдает себя, вдруг и за пределами организации тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2013, 01:39:57 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
авторКогда это выяснится? 2 вида контроля - 1) орг. - разработки особенно начинающих просматривались тим-лидами 2) для управления деплоем разработок (которые выглядели как папочки в версионнике) работала тулза - установщик пакета на окружение, она проверяла зависимости от ядерных объектов, раскладывала что и куда нужно, накатывала пакеты и тд. Она тоже смотрела. Та тулза была перловым скриптом. без нее ничего никуда не ставилось. Разработка сопровождалась непременно историей изменений и материалами требований, которые покрывались изменениями. Поэтому всегда было довольно просто найти, кто наследил. Опять же - копипаст образцовых скриптов и пакетов - никто не писал с чистого листа. Подразделение ораклистов было около 100 чел. - аналитики, разрабы, функ-архитекторы, р-п. Жестко кодеров было около 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2013, 10:58:35 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Максим ННо вот что если он не сложился, ну или если нет у человека достаточного опыта при начале нового БД-проекта. ты никогда не работал в новой команде?. Тебе просто дают минимальные права в хранилище версий. А коммитит наставник. У тебя подход такой - это утилита IDE для наставника. А эта утилитаIDE для новичка? Или в организации никто не знает что такое хранимка, как её назвать...и тут наша утилита это поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2013, 10:59:42 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Максим НPetro123Максим Н, Тогда расшифруй Накатить на тестовую базу всё что наисправлял. Т.е. есть несколько процедур/пакетов ==== CREATE TABLE и теперь мне нужно собрать их в один скрипт и откатать их ==== что значит Откатить? Создать с нуля БД или апдейт БД заказчика\тестового при добавлении поля? Т.е. автоматом из CREATE сделать UPDATE TABLE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2013, 11:03:22 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Максим НИдея интересная, но думаю перебор, по крайней мере пока. Контроль имён объектов в тулзе - тоже перебор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2013, 11:05:11 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Petro123Максим Нпропущено... Т.е. есть несколько процедур/пакетов ==== CREATE TABLE и теперь мне нужно собрать их в один скрипт и откатать их ==== что значит Откатить? Создать с нуля БД или апдейт БД заказчика\тестового при добавлении поля? Т.е. автоматом из CREATE сделать UPDATE TABLE "Откатать", значит накатить, установить, выполнить с помощью какого либо sql-экзекутора (гуевого или не очень) на нужных базах. С create table немного подругому, там уже просто так несколько раз не накатишь, но тоже вполне решаемо при необходимости (скрипт отката и все такое). т.е. тут важно отличать "data model" от кода (пакеты, процедуры, вьюхи, триггера), о чем говорил PSV100. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2013, 13:02:40 |
|
||
|
Выбор СУБД для небольшой Java-утилиты
|
|||
|---|---|---|---|
|
#18+
Petro123Максим ННо вот что если он не сложился, ну или если нет у человека достаточного опыта при начале нового БД-проекта. ты никогда не работал в новой команде?. Тебе просто дают минимальные права в хранилище версий. А коммитит наставник. У тебя подход такой - это утилита IDE для наставника. А эта утилитаIDE для новичка? Было дело, но везде все по разному, где то вобще никакими СКВ не пользовались для разработки БД. Petro123Или в организации никто не знает что такое хранимка, как её назвать...и тут наша утилита это поможет? Это только один из вариантов использования, кому то будет полезен, кому то нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2013, 13:06:44 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38284699&tid=2129029]: |
0ms |
get settings: |
15ms |
get forum list: |
24ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
54ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
95ms |
get tp. blocked users: |
1ms |
| others: | 275ms |
| total: | 503ms |

| 0 / 0 |
