|
|
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
rstudio, документ "Research Studio .NET", страница 4 Во-первых, добавление логирующего кода, должно было быть полностью автоматизировано и скрыто за обычным процессом компиляции. Во-вторых, отладочный код должен был быть невидим. Программист только видит основной рабочий код. В-третьих, логироваться должно абсолютно все. В-четвертых, информация в логах должна быть представлена максимально интуитивно понятно для программиста. В конечном итоге было решено, используя полную информацию из логов, эмулировать работу приложения и его отладку. Что-то здесь не то. Общие принципы логгирования акцентируют внимание только на значимом коде. Попытка логгировать всё - это моделирование вселенной в состояниях. Это забавный предмет для философской дискуссии. Но в рамках отладки или профилирования кода программист довольствуется логгированием критически важных секций обработки ошибок. Это не просто признак хоршего тона. Это рационально с точки зрения ресурсов. Если вы попытаетесь логировать "всё" то для хорошего выч-метода получите "простыню" ненужной информации (несколько гигабайт или терабайт) которую непонятно ГДЕ хранить и КАК и самое главное ЗАЧЕМ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2010, 23:04 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
кто-то заснул похоже после первого абзаца в каталагизаторе я тоже получил гигабайты, терабайты информации залогировав весь граф его работы ? Пока вы думаете ответ: 94кб в xml. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2010, 13:32 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
Я еще не качал и не ставил твой софт. А можно взглянуть только на этот 94-килобайтный xml ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2010, 13:48 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
Ччёрт... что-же это ты indent не включил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2010, 13:51 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
А как ты будешь логировать мультипоточный код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2010, 17:27 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
я нигде не декларировал что собираюсь логировать мультипоточный код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2010, 18:03 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
Тоесть твоя система идеологически не приемлет отладку мультипоточного кода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2010, 18:06 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
rstudioя нигде не декларировал что собираюсь логировать мультипоточный код вах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2010, 18:12 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
maytonТоесть твоя система идеологически не приемлет отладку мультипоточного кода? приемлет, но я еще не реализовывал. И пока даже не впланах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2010, 18:12 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
кстате чисто технически это совсем не сложно, куда сложнее продумать интерфейс. В обычной студии когда брекпоинты прыгают с одного потока в другой это вообще паршиво выглядит. Нету хорошей иллюстрации паралельной обработки в МС студии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2010, 18:34 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
файлик прочитал. идея интересная по поводу 100% "воспроизводимости" бага имеются сомнения следующего характера. 1) Приложение работает с БД. Вызывает хранимую процедуру, параметры вызова которой RS успешно залогировал. Но внутри процедуры происходят различные SELECT или DML операции с данными. На базе тестировщика данные одни, на базе девелопера - другие. Вы никак не сможете гарантировать 100% идентичность. Даже с одной базой. 2) авторПреимущества взаимодействий на отчетах также снимает проблему версионности. Отчет будет всегда содержать только актуальные исходные коды программы, только те исходные коды, на основе которых было скомпилировано приложения. А как вы будете восстанавливать исходные коды хранимых объектов СУБД? Динамически патч накатывать? При этом надо запомнить текущее состояние схемы и после прогонки отчёта восстановить его. Это очень не тривиальная задача. Не говоря уже о том, что после такой накатки на схеме могут быть битые объекты...разработка идёт вперёд, а тестеры тестят чуть с опозданием. От фазы к фазе разработчики БД инкрементно накатывают патчи на схему тестеров, чтобы они могли тестить последние разработки. Т.е. 100% воспроизводимость мне видится только в свете копии клиентского кода. Но никак не работы с БД. з.ы. и орфографию всё таки прогоните в ворде по F7. При виде таких ошибок вся "солидность" сразу испаряется. И отношение формируется соответствующее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2010, 02:42 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
rstudio, документ "Research Studio .NET"...Сегодня Research Studio .NET – это свободный проект с открытым исходным кодом на этапе прототипа, который разрабатывается как альтернатива существующим средам разработки в формате «Разработчики для разработчиков» отечественными программистами. Если Вы знакомы с Microsoft Visual Studio то для вас знакомство с новой средой разработки будет наиболее простым.... Мне кажется сегодня нет смысла разрабатывать альтернативу MSVS.Net. Её создаёт корпорация и о конкурентоспособных возможностях говорить безсмысленно. Вы будете заведомо в проигрыше. А вот создать плагин или модуль для MSVS или Eclipse или NetBeans который-бы воплощал функционал отладки - вполне вам по силам. rstudio, документ "Research Studio .NET"....Основным новшеством является технология Late Debugging, которая принципиально отличается от классической отладки. Суть ее заключается в том, что отладка программы не происходит во время ее выполнения. Во время выполнения только записывается подробный отчет о работе программы. Этот отчет является по сути новым форматом документа с расширением rsr и позволяет мгновенно восстановить отладку без запущенного приложения на любом компьютере где установлена Research Studio .NET... Если гуглить по всемирному индексу документов то поиск Late+Debugging не даёт ничего релевантного. Ниже вы пытаетесь в двух словах объяснить что это такое. Этого недостаточно. Нельзя анонсировать целую технологию и при этом упомянуть о ней "всколзь". Это пренебрежение к читателю. Складывается впечатление будто вы говорите о вещах общеизвестных а на самом деле это совсем не так. Вы должны как минимум отдельную статью посвятить теоретическому описанию. Вы должны описать условия, предпосылки, необходимость, процесс поисков, найденные варианты, выбор лучшего варианта, теоретическое доказательство того что это работает, серию экспериментов и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2010, 11:34 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
Tolkaфайлик прочитал. идея интересная по поводу 100% "воспроизводимости" бага имеются сомнения следующего характера. 1) Приложение работает с БД. Вызывает хранимую процедуру, параметры вызова которой RS успешно залогировал. Но внутри процедуры происходят различные SELECT или DML операции с данными. На базе тестировщика данные одни, на базе девелопера - другие. Вы никак не сможете гарантировать 100% идентичность. Даже с одной базой. Да именно так и есть. Отчет не содержит данные из таблиц и любые другие обьекты Базы Данных. Он "запоминает" только а) текст хранимых процедур которые принимали участие в выполнении б) Цепочку выполненных строк в хранимых процедурах в) Значение переменных которые проскакивали при выполнении. Ну и если запрос "вытягивает" какие-то данные на клиент, это можно просмотреть уже в Дот Нет коде в SqlDataReader. Tolka авторПреимущества взаимодействий на отчетах также снимает проблему версионности. Отчет будет всегда содержать только актуальные исходные коды программы, только те исходные коды, на основе которых было скомпилировано приложения. А как вы будете восстанавливать исходные коды хранимых объектов СУБД? Динамически патч накатывать? Отчет содержит только тот рантайм граф программы который принимал участие в выполнении/воспроизвидении бага. Он не содержит все исходники программы, все тексты хранимых процедур тригеров и так далее. Только то, что выполнялось. Tolka При этом надо запомнить текущее состояние схемы и после прогонки отчёта восстановить его. Он не восстанавливает, он всего лишь эмулирует работу на машине тестера. Плюс здесь в том, что чтобы открыть отчет и восстановить работу программы с багом не нужно ничего настраивать. Тоесть для дебага хранимых процедур ( опять же в рамках выполнения ) не нужно усстанавливать сервер бд, разворачивать базу и так далее. Минус, здесь в том, что некоторые баги могут быть "вне". Тоесть чтобы их выявить нужно проссматривать не те обьекты, строчки кода, переменные которые были затронуты при выполнении, а другие обьекты, которые не были залогированы. Tolka з.ы. и орфографию всё таки прогоните в ворде по F7. При виде таких ошибок вся "солидность" сразу испаряется. И отношение формируется соответствующее по ворду прогонял. В остальном я ведь программист, а не журналист и не писатель. К томуже русский для меня не родной язык. Нужно чтобы кто-то свежим взглядом глянул и подредактировал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 12:01 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
mayton Мне кажется сегодня нет смысла разрабатывать альтернативу MSVS.Net. Её создаёт корпорация и о конкурентоспособных возможностях говорить безсмысленно. Вы будете заведомо в проигрыше. А вот создать плагин или модуль для MSVS или Eclipse или NetBeans который-бы воплощал функционал отладки - вполне вам по силам. rstudioSiemarglrstudio, Пока не читал манифесты, но один главный вопрос есть. Зачем пытаться дублировать возможности студии (до которых как до неба), если можно было написать к ней полноценный плагин со своими возможностями? rstudio общую идею немного зацепили, и даже разобрались в некоторых недостатках обычной отладки. Про это собственно написали прямо на центральной странице. Но не реализовали цельную среду разработки. Не сделали формат отчетов. Не сделали такой же наглядной отладку как при обычном рант тайм. Не сделали интеграцию с базами данных Ну и очень много чего не сделали из того как продумано и сделано у меня. Возможно одна из основных ошибок - попытка интегрироваться в существующую ИДЕ, хотя сама по себе фича заслуживает полной переработки студии. Переработки всего, деревьев, панелей, тулбаров и прочьего. Поэтому на входе год назад у меня была возможно похожая идея, но я ее значительно дальше развил . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 12:02 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
maytonЕсли гуглить по всемирному индексу документов то поиск Late+Debugging не даёт ничего релевантного. Ниже вы пытаетесь в двух словах объяснить что это такое. Этого недостаточно. Нельзя анонсировать целую технологию и при этом упомянуть о ней "всколзь". Это пренебрежение к читателю. Складывается впечатление будто вы говорите о вещах общеизвестных а на самом деле это совсем не так. Вы должны как минимум отдельную статью посвятить теоретическому описанию. Вы должны описать условия, предпосылки, необходимость, процесс поисков, найденные варианты, выбор лучшего варианта, теоретическое доказательство того что это работает, серию экспериментов и т.д. да согласен, нужно будет подредактировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 12:18 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
rstudio Отчет не содержит данные из таблиц и любые другие обьекты Базы Данных. Он "запоминает" только б) Цепочку выполненных строк в хранимых процедурах в) Значение переменных которые проскакивали при выполнении. интересно, как это вы для Oracle реализуете? :) Насколько я знаю, вызов хранимок на клиенте выглядит как ExecuteQuery(p_stmt) или ExecuteProcedure(p_stmt) и нет никакого другого способа извне их дебажить. Только встроенными средствами базы, а это отдельная тема. rstudio Он не восстанавливает, он всего лишь эмулирует работу на машине тестера. Плюс здесь в том, что чтобы открыть отчет и восстановить работу программы с багом не нужно ничего настраивать. Тоесть для дебага хранимых процедур ( опять же в рамках выполнения ) не нужно усстанавливать сервер бд, разворачивать базу и так далее. Минус, здесь в том, что некоторые баги могут быть "вне". Тоесть чтобы их выявить нужно проссматривать не те обьекты, строчки кода, переменные которые были затронуты при выполнении, а другие обьекты, которые не были залогированы. Для обычного процесса тестирования/отладки также не надо устанавливать сервер и бд. Оно всё и так поднято. В том то и суть, что, в случае Oracle, проверить серверную логику не удастся никак. Аналогично, думаю, с MSSQL и многими другими СУБД. Учитывая, что все большие проекты - это обязательно работа с СУБД, то ваша идея - это воспроизведение работы клиента , поэтому заявлять от 100% воспроизводимости бага можно только в маркетинговых целях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 14:47 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
Tolka Для обычного процесса тестирования/отладки также не надо устанавливать сервер и бд. Оно всё и так поднято. В том то и суть, что, в случае Oracle, проверить серверную логику не удастся никак. Аналогично, думаю, с MSSQL и многими другими СУБД. Учитывая, что все большие проекты - это обязательно работа с СУБД, то ваша идея - это воспроизведение работы клиента , поэтому заявлять от 100% воспроизводимости бага можно только в маркетинговых целях. Я давно озадачивался вопросом о практической неприменимости систем модульного тестирования (JUnit) в окружении storage procedures. Это весьма специфичная предметная область где результат воспроизведения ошибки - недетерминирован. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 15:12 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
Tolkarstudio Отчет не содержит данные из таблиц и любые другие обьекты Базы Данных. Он "запоминает" только б) Цепочку выполненных строк в хранимых процедурах в) Значение переменных которые проскакивали при выполнении. интересно, как это вы для Oracle реализуете? :) Насколько я знаю, вызов хранимок на клиенте выглядит как ExecuteQuery(p_stmt) или ExecuteProcedure(p_stmt) и нет никакого другого способа извне их дебажить. Только встроенными средствами базы, а это отдельная тема. Для MS SQL тоже нету никакого другого способа. Но я же както реализовал :) вот например есть http://www.youtube.com/watch?v=LIphJEhvGqM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 15:41 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
maytonTolka Для обычного процесса тестирования/отладки также не надо устанавливать сервер и бд. Оно всё и так поднято. В том то и суть, что, в случае Oracle, проверить серверную логику не удастся никак. Аналогично, думаю, с MSSQL и многими другими СУБД. Учитывая, что все большие проекты - это обязательно работа с СУБД, то ваша идея - это воспроизведение работы клиента , поэтому заявлять от 100% воспроизводимости бага можно только в маркетинговых целях. Я давно озадачивался вопросом о практической неприменимости систем модульного тестирования (JUnit) в окружении storage procedures. Это весьма специфичная предметная область где результат воспроизведения ошибки - недетерминирован. для базы данных не хватает нормальной отладки, нормального эксплорера по обьектам ( как дурачок сидишь и целыми днями набираешь за смену сотни простеньких селектов с джоинами чтобы выделить нужные сущности из базы ) много еще чего не хватает ... но этого просто некому занятся, Майкрософт это не сделает, а остальным влом. Я вот кое что начал рыть и делать но мои ресурсы конечно ограничены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 15:46 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
rstudio Весь дебаг идет по отчету, тоесть без физически выполняющегося приложения и базы данных на целевой машине. Только используя записанный отчет ( лог ). т.е. ты, вытянув сырцы хранимки, идёшь по ней, подставляя значения входных параметров (как при этом ходит по всяким IF, используя объявленные и вычисленные внутри процедуры параметры, я не представляю). Ничего при этом не вычисляя заново, а просто отображая на каждом шаге значения залогированных параметров. Потом на N шаге произошла ошибка - ты её отображаешь (как при этом определить точный шаг, где произошла ошибка - также не понятно). Ну что ж - сплошной "дебаг" с вхождением внутрь хранимых процедур СУБД - это конечно круто. Довести IDE до Enterprise уровня...задача феерическая. Тебе потребуется терпение явно не на один год. удачи в этом нелёгком деле :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 19:01 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
Tolkarstudio Весь дебаг идет по отчету, тоесть без физически выполняющегося приложения и базы данных на целевой машине. Только используя записанный отчет ( лог ). т.е. ты, вытянув сырцы хранимки, идёшь по ней, подставляя значения входных параметров (как при этом ходит по всяким IF, используя объявленные и вычисленные внутри процедуры параметры, я не представляю). Ничего при этом не вычисляя заново, а просто отображая на каждом шаге значения залогированных параметров. Да, именно так. Для поиска бага этого обычно достаточно. Tolka Потом на N шаге произошла ошибка - ты её отображаешь (как при этом определить точный шаг, где произошла ошибка - также не понятно). Как обычно, разработчик пошагово отлаживает цепочку выполнившихся функций, смотрит промежуточные значения переменных в дебаге. Использует такие новые штуки как план выполнения, встроенные профайлеры, реверс шаги с откатом переменных, поиск переменных которые когда либо проскочили в памяти ... Tolka Ну что ж - сплошной "дебаг" с вхождением внутрь хранимых процедур СУБД - это конечно круто. Довести IDE до Enterprise уровня...задача феерическая. Тебе потребуется терпение явно не на один год. удачи в этом нелёгком деле :) сейчас я особо времени не трачу на проект, к сожалению интерес невелик, в среде опен сорц в том числе. Людям кажется что этот проект нереально сложен, хотя многие фичи вполне себе реализуемы и уже работают на протототипе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 19:44 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
rstudio для базы данных не хватает нормальной отладки, нормального эксплорера по обьектам ( как дурачок сидишь и целыми днями набираешь за смену сотни Всего для базы данных хватает, не свисти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 20:39 |
|
||
|
Research Studio .NET
|
|||
|---|---|---|---|
|
#18+
rstudioTolkarstudio Весь дебаг идет по отчету, тоесть без физически выполняющегося приложения и базы данных на целевой машине. Только используя записанный отчет ( лог ). т.е. ты, вытянув сырцы хранимки, идёшь по ней, подставляя значения входных параметров (как при этом ходит по всяким IF, используя объявленные и вычисленные внутри процедуры параметры, я не представляю). Ничего при этом не вычисляя заново, а просто отображая на каждом шаге значения залогированных параметров. Да, именно так. Для поиска бага этого обычно достаточно.особенно, когда в хранимке есть нечто типа такого: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2010, 21:50 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36868218&tid=1343429]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
241ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 580ms |

| 0 / 0 |
