OberonCore https://forum.oberoncore.ru/ |
|
Эргономика для разработчика https://forum.oberoncore.ru/viewtopic.php?f=1&t=123 |
Страница 1 из 1 |
Автор: | sacred [ Пятница, 03 Март, 2006 13:00 ] |
Заголовок сообщения: | Эргономика для разработчика |
Коллеги, предлагаю в этой ветке делиться всякими удобными "примочками" или недокументированными возможностями среды BlackBox, которые позволяют повысить производительность труда. Также предлагаю задавать вопросы, ну и отвечать на них ![]() Самому поделиться пока нечем. Тогда задам вопрос: Разрабатываю многомодульную систему. Редактирую один из модулей, потом говорю типа: "Compile and unload". Ну и получаю: unload, мол, failed. Понятно почему - этот модуль загружен и используется другими. Ну тогда иду в Module List и выгружаю их все. Нельзя ли как-то автоматизировать этот процесс, типа сделать команду "Compile and unload all linked modules"? |
Автор: | Илья Ермаков [ Пятница, 03 Март, 2006 21:09 ] |
Заголовок сообщения: | |
Дмитрий Темиргалеев, мой коллега, этим делом занимался - он тут даже где-то об этом говорил. У него весь процесс рутины заавтоматизирован до предела - знай только коммандеры нажимай... Только что кофе ему ББ еще варить не научился ![]() Скоро запустим репозиторий Open-Source-проектов на ББ - sources.metasystems.ru. Все желающие могут там "парковать" свои разработки. С нашей стороны разместим CVS, Intelligence и школьную среду ШАРИК. |
Автор: | sacred [ Воскресенье, 05 Март, 2006 22:30 ] |
Заголовок сообщения: | |
А почему CVS? Может лучше SubVersion? |
Автор: | Grabli [ Четверг, 27 Апрель, 2006 15:48 ] |
Заголовок сообщения: | |
Илья Ермаков писал(а): Скоро запустим репозиторий Open-Source-проектов на ББ - sources.metasystems.ru. Все желающие могут там "парковать" свои разработки. С нашей стороны разместим CVS, Intelligence и школьную среду ШАРИК.
Скоро? |
Автор: | Илья Ермаков [ Четверг, 27 Апрель, 2006 15:52 ] |
Заголовок сообщения: | |
Скажу только, что в июне на сайте появится много нового ![]() |
Автор: | Иван Кузьмицкий [ Понедельник, 18 Июнь, 2007 22:49 ] |
Заголовок сообщения: | |
Илья Ермаков писал(а): ...Скоро запустим репозиторий Open-Source-проектов на ББ - sources.metasystems.ru. Все желающие могут там "парковать" свои разработки. С нашей стороны разместим CVS, Intelligence и школьную среду ШАРИК.
А про какую CVS речь шла? Мы тут уже успели замутить подсистему для Blackbox, на платформе ODBC+MySQL. Показалось интереснее, чем писать интерфейс для Subversion... |
Автор: | Борис Рюмшин [ Понедельник, 18 Июнь, 2007 22:59 ] |
Заголовок сообщения: | |
Иван А. Кузьмицкий писал(а): Илья Ермаков писал(а): ...Скоро запустим репозиторий Open-Source-проектов на ББ - sources.metasystems.ru. Все желающие могут там "парковать" свои разработки. С нашей стороны разместим CVS, Intelligence и школьную среду ШАРИК. А про какую CVS речь шла? Мы тут уже успели замутить подсистему для Blackbox, на платформе ODBC+MySQL. Показалось интереснее, чем писать интерфейс для Subversion... И в чём соль подсистемы? |
Автор: | Иван Кузьмицкий [ Вторник, 19 Июнь, 2007 07:24 ] |
Заголовок сообщения: | |
Борис Рюмшин писал(а): Иван А. Кузьмицкий писал(а): Илья Ермаков писал(а): ...Скоро запустим репозиторий Open-Source-проектов на ББ - sources.metasystems.ru. Все желающие могут там "парковать" свои разработки. С нашей стороны разместим CVS, Intelligence и школьную среду ШАРИК. А про какую CVS речь шла? Мы тут уже успели замутить подсистему для Blackbox, на платформе ODBC+MySQL. Показалось интереснее, чем писать интерфейс для Subversion... И в чём соль подсистемы? Особенно ни в чём. Блокирующая, модульная, ничего необычного. Разве что "родная", блэкбоксовая. Переплюнуть ту же Subversion цели не ставилось, просто изучаем BB. Да с чего всё началось... Когда над подсистемой трудится более одного человека, естественно, есть риск влететь на "накат" старой версии при обмене модулями. Понадобилось видеть автора, и дату правки модуля, а для пущего пижонства - прямо в Ящике. Я как-то ставил CVS-ку, качал исходники FreePascal. И вот что подумал - для моего уровня рисовать нормальный интерфейс к уже существующим CVS займёт не меньше времени, сколько и написание своей системы контроля (чего там - четыре таблицы в базе). Но во втором случае я получаю бонусы - дополнительный опыт в ББ и экономия времени на изучение CVS. Так что через пару дней каркас был готов, сейчас в фоновом режиме отлаживаем. |
Автор: | Илья Ермаков [ Вторник, 19 Июнь, 2007 12:38 ] |
Заголовок сообщения: | |
CVS стар... очень стар... и отнюдь не суперстар ![]() Лучше SVN - вполне себе ничего системка... |
Автор: | Иван Кузьмицкий [ Вторник, 19 Июнь, 2007 14:01 ] |
Заголовок сообщения: | |
Илья Ермаков писал(а): CVS стар... очень стар... и отнюдь не суперстар
![]() Лучше SVN - вполне себе ничего системка... Может, у вас и интерфейс для ББ к ней есть? Я-то под виндой сижу, поставил Tortoise, чувствую себя тупым как никогда до этого ![]() |
Автор: | Александр Ильин [ Вторник, 19 Июнь, 2007 14:07 ] |
Заголовок сообщения: | |
Иван А. Кузьмицкий писал(а): Может, у вас и интерфейс для ББ к ней есть? Я-то под виндой сижу, поставил Tortoise, чувствую себя тупым как никогда до этого
![]() ХА! Думаете, интерфейс для ББ вам поможет? Серьезно, в чем проблема-то? Я уже скоро год как пользуюсь, в том числе для проектов на ББ. Как-то никаких доводов в пользу "родного" ББ-интерфейса не вижу. Tortoise + пара скриптов отлично справляются со всеми задачами. Ну, немного доработал еще процедуру сравнения текстов, чтобы пробелы не пропускала. И все работает. |
Автор: | PGR [ Вторник, 19 Июнь, 2007 15:01 ] |
Заголовок сообщения: | |
Александр Ильин писал(а): Я уже скоро год как пользуюсь, в том числе для проектов на ББ. Как-то никаких доводов в пользу "родного" ББ-интерфейса не вижу. Tortoise + пара скриптов отлично справляются со всеми задачами. Ну, немного доработал еще процедуру сравнения текстов, чтобы пробелы не пропускала. И все работает.
Вы храните исходные тексты для ББ в текстовом формате? Если нет, то как можно просмотреть различия между версиями? |
Автор: | Александр Ильин [ Вторник, 19 Июнь, 2007 15:21 ] |
Заголовок сообщения: | |
PGR писал(а): Вы храните исходные тексты для ББ в текстовом формате? Если нет, то как можно просмотреть различия между версиями?
Сравнение файлов произвожу внутри самого BlackBox (клавиша F9). Вот мои файлы сценариев, которые я успешно использую совместно с TortoiseSVN для сравнения и слияния измененных файлов. Файл "diff-odc.js": Код: var objArgs,num,sBaseDoc,sNewDoc,objScript,shell; objArgs = WScript.Arguments; num = objArgs.length; if (num < 2) { WScript.Echo("Usage: [CScript | WScript] diff-odc.js base.odc new.odc"); WScript.Quit(1); } sBaseDoc = objArgs(0); sNewDoc = objArgs(1); objScript = new ActiveXObject("Scripting.FileSystemObject"); if ( ! objScript.FileExists(sBaseDoc)) { WScript.Echo("File " + sBaseDoc + " does not exist. Cannot compare the documents."); Wscript.Quit(1); } if ( ! objScript.FileExists(sNewDoc)) { WScript.Echo("File " + sNewDoc +" does not exist. Cannot compare the documents."); Wscript.Quit(1); } objScript = null; shell = WScript.CreateObject("WScript.Shell"); shell.Run("\""+sBaseDoc+"\""); WScript.Sleep(1000); shell.Run("\""+sNewDoc+"\""); WScript.Sleep(500); shell.AppActivate("BlackBox"); shell.SendKeys("{F9}"); shell = null; Файл "merge-odc.js": Код: var objArgs,num,sTheirDoc,sMyDoc,sBaseDoc,objScript,WSHShell,Exec; objArgs = WScript.Arguments; num = objArgs.length; if (num < 3) { WScript.Echo("Usage: [CScript | WScript] merge-odc.js theirs.odc mine.odc base.odc"); WScript.Quit(1); } sTheirDoc=objArgs(0); sMyDoc=objArgs(1); sBaseDoc=objArgs(2); objScript = new ActiveXObject("Scripting.FileSystemObject") if ( ! objScript.FileExists(sTheirDoc)) { WScript.Echo("File " + sTheirDoc +" does not exist. Cannot compare the documents."); Wscript.Quit(1); } if ( ! objScript.FileExists(sMyDoc)) { WScript.Echo("File " + sMyDoc +" does not exist. Cannot compare the documents."); Wscript.Quit(1); } if ( ! objScript.FileExists(sBaseDoc)) { WScript.Echo("File " + sBaseDoc +" does not exist. Cannot compare the documents."); Wscript.Quit(1); } objScript = null WSHShell = WScript.CreateObject("WScript.Shell"); Exec = WSHShell.Exec("cmd /c copy \""+sBaseDoc+"\" \""+sBaseDoc+".odc\""); while (Exec.Status == 0) { WScript.Sleep(100); } WSHShell.Run("\""+sBaseDoc+".odc\""); WScript.Sleep(1000); Exec = WSHShell.Exec("cmd /c copy \""+sTheirDoc+"\" \""+sTheirDoc+".odc\""); while (Exec.Status == 0) { WScript.Sleep(100); } WSHShell.Run("\""+sTheirDoc+".odc\""); WScript.Sleep(1000); Exec = WSHShell.Exec("cmd /c copy \""+sMyDoc+"\" \""+sMyDoc+".odc\""); while (Exec.Status == 0) { WScript.Sleep(100); } WSHShell.Run("\""+sMyDoc+".odc\""); WScript.Sleep(500); WSHShell.AppActivate("BlackBox"); WSHShell.SendKeys("{F9}"); WSHShell = null; Настройка TortoiseSVN для использования данных файлов. Оба файла следует поместить в каталог "TortoiseSVN\Diff-Scripts". Щелкнуть правой кнопкой по любому каталогу, выбрать в контекстном меню "TortoiseSVN - Settings". Далее перейти на страницу "Diff viewer", нажать кнопку "Advanced". Добавить к списку расширение "*.odc" со следующей командной строкой: Код: wscript.exe "d:\Program Files\DevTools\TortoiseSVN\Diff-Scripts\diff-odc.js" %base %mine //E:javascript (подставьте ваш путь к TortoiseSVN). На странице "Merge Tool" нажать кнопку "Advanced", добавить расширение "*.odc" со следующей командной строкой: Код: wscript.exe "d:\Program Files\DevTools\TortoiseSVN\Diff-Scripts\merge-odc.js" %merged %theirs %mine %base //E:javascript (подставьте ваш путь к TortoiseSVN).
Стандартная функция сравнения текстов находится в модуле DevSearch. Я модифицировал ее так, чтобы она при сравнении не пропускала пробелы, символы перевода строки и параграфа. По идее, можно доработать функцию сравнения, чтобы она сравнивала также форматирование текста (цвет, шрифт и прочее), а так же встроенные View, параметры линеек и прочее. Но для исходников этого обычно не требуется. |
Автор: | PGR [ Вторник, 19 Июнь, 2007 16:35 ] |
Заголовок сообщения: | |
Спасибо, попробую. Неплохой материал для Wiki... |
Автор: | Иван Кузьмицкий [ Вторник, 19 Июнь, 2007 16:42 ] |
Заголовок сообщения: | |
Александр Ильин писал(а): Иван А. Кузьмицкий писал(а): Может, у вас и интерфейс для ББ к ней есть? Я-то под виндой сижу, поставил Tortoise, чувствую себя тупым как никогда до этого ![]() ХА! Думаете, интерфейс для ББ вам поможет? Чтоб поумнеть - вряд ли ![]() Вот, посмотрел на Tortoise (хотя я и раньше её пользовался, да вот сейчас, так сказать, с высоты приобретённого опыта...) - милая штучка на 2 метра в установке (простите, это я "с прямым углом спутал". Конечно же, 16 метров. И это без словарей, которые идут в составе дистрибутива размером в 9 метров А наша подсистема пока не превышает 100кил. Ну, люблю я маленькие программки). Интерфейс тож ничего так, можно привыкнуть, конечно, ничего страшного. Цитата: Серьезно, в чем проблема-то? Я уже скоро год как пользуюсь, в том числе для проектов на ББ. Как-то никаких доводов в пользу "родного" ББ-интерфейса не вижу. Tortoise + пара скриптов отлично справляются со всеми задачами. Ну, немного доработал еще процедуру сравнения текстов, чтобы пробелы не пропускала. И все работает.
Вот я сейчас попробовал "с нуля" поставить SVN. Хорошо, что нашёлся рецепт "для чайников", как поставить эту штуку за 5 минут ![]() Так и не заработала, диавольское создание - не даёт коннект Тортиле и всё тут. Что-то я не так делаю. А у нас просто - поставил подсистему и пользуйся. Безо всяких плясок с бубном ![]() Хотя, конечно, SVN универсальнее будет. Насчёт сравнения версий файлов - я считаю, что поскольку модуль является и архитектурной единицей, а не только единицей разработки, то использовать механизм версионности можно только рассматривая модуль как цельную сущность. |
Автор: | Пётр Кушнир [ Пятница, 10 Август, 2007 02:17 ] |
Заголовок сообщения: | Re: Эргономика для разработчика |
Александр Ильин писал(а): Ну, вообщем много чего он написал, так много, что за раз и не осилить, если не отвлекаться по серьёзному. Не делать из средства синхронизации и контроля версий "цель". А вот Цитата: подсистему для Blackbox, на платформе ODBC+MySQL можно развернуть в несколько действий, не особенно напрягая ни мозг, ни даже палец кликающей руки ![]() Конечно, текущая версия тянет только на альфу, много всего не сделано, но кто вам мешает, скачиваете модуль, блокируете его изменения для других пользователей, прикручиваете то, что вам нужно, и отправляете обратно, а все остальные пользуются тем, что вы написали. "Соль" в том, что она написана в ББ и для ББ и это не обёртка к сторонним компонентам. |
Автор: | Иван Кузьмицкий [ Пятница, 10 Август, 2007 22:10 ] |
Заголовок сообщения: | Re: Эргономика для разработчика |
Petryxa писал(а): Александр Ильин писал(а): Ну, вообщем много чего он написал, так много, что за раз и не осилить, если не отвлекаться по серьёзному. Не делать из средства синхронизации и контроля версий "цель". А вот Цитата: подсистему для Blackbox, на платформе ODBC+MySQL можно развернуть в несколько действий, не особенно напрягая ни мозг, ни даже палец кликающей руки ![]() Конечно, текущая версия тянет только на альфу, много всего не сделано, но кто вам мешает, скачиваете модуль, блокируете его изменения для других пользователей, прикручиваете то, что вам нужно, и отправляете обратно, а все остальные пользуются тем, что вы написали. "Соль" в том, что она написана в ББ и для ББ и это не обёртка к сторонним компонентам. Ишшо в этой штуке нужны пакетная (проектная) выгрузка-загрузка, и контроль ветвления проекта. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |