Здравствуйте, CreatorCray, Вы писали:
CC>Вот у тебя есть две коробки. Ты без проблем можешь поднять любую из них, но одна из них заметно легче. CC>Понятно, нет?
Нет не понятно. В случае с коробками ты ощущаешь усилие по их подъёму, просто оно тебе по силам. А в случае с обсуждаемыми фрагментами усилия, связанные с преодолением непривычного форматирования должны быть просто НЕЗАМЕТНО МАЛЫ для тебя.
То есть в твоей аналогии в одной из коробок должно быть на маковую росинку больше.
Или ты не знаешь, какое из двух зёрен тяжелее и т. п....
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, CreatorCray, Вы писали:
CC>Т.е. то, что это пример а не промышленный код тебя не смущает? CC>Надо доколупаться и искать "ашипки" в псевдокоде, приведённом для иллюстрации?
Да нет. Надо просто приводить РЕАЛЬНЫЙ код, в качестве примера.
Я ещё раз намекаю, что AFAIK, некоторые, кажущиеся бредовыми ограничения на форматирование в некоторых известных мне местах были введены чисто из соображений корреляции.
Типа из пяти последних тяжёлых ошибок за каждой из которых гонялись по неделе, в четверых фигурировали строки длиннее 90, хотя такие длинные строки редкость -- значит надо запретить такие длинные строки и вычитать весь код, их содержащий...
Для ограничений такого типа нет смысла приводить синтетические примеры. Так как механизм корреляции нами не раскрыт.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, CreatorCray, Вы писали:
E>>А вот борьба со взрывами QSort на каких-то специфичных данных -- самое то... CC>Для этого изобрели отладчики с пошаговой отладкой и дампы.
Обычно, если взрыв стал заметен, то значит "специфичные данные" -- это довольно большой объём. Например 10 000 элементов. Или больше.
Хотя отладку по логам я тоже приветствую, как и пошаговую. Просто всё удобно на СВОЁМ месте...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, CreatorCray, Вы писали:
CC>Отладчик.
Предлагаешь оттрассировать пару мегаитераций внутреннего цикла?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Ikemefula, Вы писали:
I>>>Да, необходимость подумать никто не отменял, ты прав
AV>>Угу, вот только чтобы придумать этот набор входных данных надо не мало времени потратить на просмотр и анализ в голове кода. Так что от "умеешь" толку ноль.
I>Есть инструменты, которые облегчают просмотр и анализ кода.
Вот только не всегда от них есть польза
I>>>Я вот не пойму, чем отсутствие инструментов может быть лучше их наличия.
AV>>Никто не говорит, что отсутствие инструментов лучше. Говорят, что они не всегда могут помочь. Разницу видишь?
I>Пример приведи.
Уже привел в прошлом сообщении.
I>>>Хотелось бы увидеть качественный пример, а не булшит про сортировку.
AV>>А сортировка тоже может неудачно выстрелить.
I>Может. Не возникало сложностей с алгоритмами сложнее сортировки, что бы найти проблему
Если у тебя чего-то не возникало, то не значит, что этого не может быть.
AV>>Могу еще один случай привести. Была у нас ситуация, когда на специально подобранном наборе данных сервак обламывался. Такой набор данных в реальной жизни если и встретиться, то хорошо, если раз в пару лет. А можешь и не столкнуться. Тем не менее, тестеры смогли смоделировать ситуацию.
I>Видишь, один инструмент ты уже сам назвал
Вах, вот только это помогло узнать что проблема есть. И ничего более.
>>Из логов понятно приблизительное место где возникает проблема. Кода там не так уж и много. Сотни три строк.
I>Это уже второй инструмент.
От которого толку ноль. Я и без логов мог с достаточной точностью определить где проблема. Да, чуть больший кусок пришлось бы просмотреть, строк 400-500. Не более.
>>Но точнее узнать не получается. Поставили большую детализацию, все начало пахать идеально.
I>Что такое "детализация" ?
Больше информации (деталей) в логах.
>>Под отладчиком эта проблема вообще никогда не воспроизводилась. Искали как раз по распечаткам. По банальной причине. Удобнее. На бумаге удобнее делать пометки. Причина оказалась банальной.
I>Т.е. вы эмулировали бумагой анализатор, что можно поделать Вероятно код был в таком состоянии, что его легче читать по бумаге. На это тоже есть инструменты.
И что бы ты анализировал своим анализатором? Паша, ты в очередной раз занялся телепатией. Но как всегда телепалка твоя тебя же подвела.
>>Две подсистемы должны были работать независимо. Но так уж сложилось, что на том наборе входных данных зависимость все таки присутствовала.
I>Обычно первым делом проверяются все возможные зависимости и отрабатываются по одной. На 300 строк кода зависимостей просто не может быть очень много.
И обломился бы. Потому что проблема начиналась совсем в другом месте. И там ничего не изменить. А в проблемном месте две системы, из-за которых были проблемы, друг друга не трогают.
I>Вобщем, ты привел пример того, что инструменты нужны — ты сам назвал два штуки.
Если ты не заметил, то один из них оказался бесполезен. А другой только в состоянии просигнализировать о наличии проблемы.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[15]: Перешёл на личности -- сам знаешь, что значит ;)
Здравствуйте, Ikemefula, Вы писали:
I>Сколько тебе лет ?
Как это связано с темой разговора? Или это ты так к сливу своему постепенно привыкаешь?
I>У меня были похожие задачи, получалось решать их используя инструменты.
I>Вместо того, что бы эмулировать головой control flow, нужно проводить эксперименты, менять вход, ввододть логирование, пользоваться отладкой и тд.
Во-первых, выделенное -- глупость. Намного удобнее следить за control flow при помощи отладчика.
Головой можно же доказывать разные утверждения про код. При наличии достаточно заточенной под это головы, так быстрее и эффективнее искать некоторые сорта ошибок.
Если этот подход нов для тебя, в чём я не уверен, то советую начать с классической книжки Дейксры "Дисциплина программирования", или как-то так...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, ambel-vlad, Вы писали:
I>>Есть инструменты, которые облегчают просмотр и анализ кода. AV>Вот только не всегда от них есть польза
Когда ты читаешь чего по бумажке, попробуй сформулировать, чем бы мог помочь инструмент а потом погугли
AV>>>Могу еще один случай привести. Была у нас ситуация, когда на специально подобранном наборе данных сервак обламывался. Такой набор данных в реальной жизни если и встретиться, то хорошо, если раз в пару лет. А можешь и не столкнуться. Тем не менее, тестеры смогли смоделировать ситуацию. I>>Видишь, один инструмент ты уже сам назвал
AV>Вах, вот только это помогло узнать что проблема есть. И ничего более.
То есть тестеры моделировали наобум, просто от балды, или же сначала начл обламываться сервак а потом за это взялись тестеры ?
Тестеры смоделировали — они что, по бумажке с кодом моделировали ?
I>>Это уже второй инструмент.
AV>От которого толку ноль. Я и без логов мог с достаточной точностью определить где проблема. Да, чуть больший кусок пришлось бы просмотреть, строк 400-500. Не более.
Не чуть больший, а почти вдвое больший. Бывает одна строка выносит мозг на день
Зависимости имеют нелинейное влияние, ты в курсе ?
I>>Т.е. вы эмулировали бумагой анализатор, что можно поделать Вероятно код был в таком состоянии, что его легче читать по бумаге. На это тоже есть инструменты.
AV>И что бы ты анализировал своим анализатором? Паша, ты в очередной раз занялся телепатией. Но как всегда телепалка твоя тебя же подвела.
Код разумеется.
I>>Обычно первым делом проверяются все возможные зависимости и отрабатываются по одной. На 300 строк кода зависимостей просто не может быть очень много.
AV>И обломился бы. Потому что проблема начиналась совсем в другом месте. И там ничего не изменить. А в проблемном месте две системы, из-за которых были проблемы, друг друга не трогают.
То есть те 300 строк что вы смотрели по бумаге, вам ничем не помогли ?
Попробуй сформулировать функции инструмента, который мог бы вам помочь и погугли
I>>Вобщем, ты привел пример того, что инструменты нужны — ты сам назвал два штуки.
AV>Если ты не заметил, то один из них оказался бесполезен. А другой только в состоянии просигнализировать о наличии проблемы.
ну да, сократить окно с 500 до 300 строк — это бесполезно
Re[16]: Перешёл на личности -- сам знаешь, что значит ;)
Здравствуйте, Erop, Вы писали:
E>Во-первых, выделенное -- глупость. Намного удобнее следить за control flow при помощи отладчика.
То есть, ты уже отказываешься от своих слов про бумажку ?
E>Головой можно же доказывать разные утверждения про код. При наличии достаточно заточенной под это головы, так быстрее и эффективнее искать некоторые сорта ошибок.
Пример приведи внятный.
Re[17]: Перешёл на личности -- сам знаешь, что значит ;)
Здравствуйте, Ikemefula, Вы писали:
E>>Во-первых, выделенное -- глупость. Намного удобнее следить за control flow при помощи отладчика. I>То есть, ты уже отказываешься от своих слов про бумажку ?
Нет. Не отказался.
I>Пример приведи внятный.
Один я тебе привёл. Вот тебе другой. У тебя есть реализация формального какого-то алгоритма. Например он берёт RLE-изображение и замещает в нём каждый пиксель медианой квадрата 3Х3. И иногда он ошибается. Скажем данные, на которых ошибается, ты нашёл. Что делаешь дальше?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[18]: Перешёл на личности -- сам знаешь, что значит ;)
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, Ikemefula, Вы писали:
E>>>Во-первых, выделенное -- глупость. Намного удобнее следить за control flow при помощи отладчика. I>>То есть, ты уже отказываешься от своих слов про бумажку ? E>Нет. Не отказался.
I>>Пример приведи внятный. E>Один я тебе привёл. Вот тебе другой. У тебя есть реализация формального какого-то алгоритма. Например он берёт RLE-изображение и замещает в нём каждый пиксель медианой квадрата 3Х3. И иногда он ошибается. Скажем данные, на которых ошибается, ты нашёл. Что делаешь дальше?
Здравствуйте, Ikemefula, Вы писали:
AV>>>>Могу еще один случай привести. Была у нас ситуация, когда на специально подобранном наборе данных сервак обламывался. Такой набор данных в реальной жизни если и встретиться, то хорошо, если раз в пару лет. А можешь и не столкнуться. Тем не менее, тестеры смогли смоделировать ситуацию. I>>>Видишь, один инструмент ты уже сам назвал
AV>>Вах, вот только это помогло узнать что проблема есть. И ничего более.
I>То есть тестеры моделировали наобум, просто от балды, или же сначала начл обламываться сервак а потом за это взялись тестеры ?
Нет, никто не обламывался.
I>Тестеры смоделировали — они что, по бумажке с кодом моделировали ?
Не в прямом смысле, но по бумажке.
I>>>Это уже второй инструмент.
AV>>От которого толку ноль. Я и без логов мог с достаточной точностью определить где проблема. Да, чуть больший кусок пришлось бы просмотреть, строк 400-500. Не более.
I>Не чуть больший, а почти вдвое больший. Бывает одна строка выносит мозг на день
Нет, чуть больший. Потому что лишнее мы бы достаточно быстро отсекли бы. Потребовалось бы нам на это часа 5-6 человекочаса. По сравнению с остальным временем (под сотню человеко-часов) это не критично
I>>>Т.е. вы эмулировали бумагой анализатор, что можно поделать Вероятно код был в таком состоянии, что его легче читать по бумаге. На это тоже есть инструменты.
AV>>И что бы ты анализировал своим анализатором? Паша, ты в очередной раз занялся телепатией. Но как всегда телепалка твоя тебя же подвела.
I>Код разумеется.
И что же ты получишь в результате этих анализов?
I>>>Обычно первым делом проверяются все возможные зависимости и отрабатываются по одной. На 300 строк кода зависимостей просто не может быть очень много.
AV>>И обломился бы. Потому что проблема начиналась совсем в другом месте. И там ничего не изменить. А в проблемном месте две системы, из-за которых были проблемы, друг друга не трогают.
I>То есть те 300 строк что вы смотрели по бумаге, вам ничем не помогли ?
Как раз смотрение строк и дало.
I>Попробуй сформулировать функции инструмента, который мог бы вам помочь и погугли
Давай, вперед, приводи инструменты. А я посмеюсь. Паша, ты переносишь свои случаи на всех остальных. И считаешь, что у других иначе и быть не может.
I>>>Вобщем, ты привел пример того, что инструменты нужны — ты сам назвал два штуки.
AV>>Если ты не заметил, то один из них оказался бесполезен. А другой только в состоянии просигнализировать о наличии проблемы.
I>ну да, сократить окно с 500 до 300 строк — это бесполезно
Смотри выше.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[19]: Перешёл на личности -- сам знаешь, что значит ;)
Здравствуйте, Ikemefula, Вы писали:
I>Дальше буду добавлять эти данные к юнит-тестам
Чем это поможет? Есть у тебя компактная реализация алгоритма. Скорее всего конечного автомата. И что тебе дадут тесты?
I>Или RLE это нечто чего нельзя покрыть тестами ?
Польза-то в чём будет? Как ты найдёшь ошибку?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[20]: Перешёл на личности -- сам знаешь, что значит ;)
Здравствуйте, Erop, Вы писали:
I>>Дальше буду добавлять эти данные к юнит-тестам E>Чем это поможет? Есть у тебя компактная реализация алгоритма. Скорее всего конечного автомата. И что тебе дадут тесты?
Свалится конкретная функция.
I>>Или RLE это нечто чего нельзя покрыть тестами ? E>Польза-то в чём будет? Как ты найдёшь ошибку?
Отваливается функция, если не плодить монстров по 200К кода, а ограничиваться десятком строк, то не надо ничего распечатывать и можно пользоваться дебуггером.
Re[21]: Перешёл на личности -- сам знаешь, что значит ;)
Здравствуйте, Ikemefula, Вы писали:
I>Отваливается функция, если не плодить монстров по 200К кода, а ограничиваться десятком строк, то не надо ничего распечатывать и можно пользоваться дебуггером.
Описанное поведение кодируется небольшой одной единственной функцией...
Просто алгоритм, который она кодирует непрост.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, ambel-vlad, Вы писали:
AV>>>>>Могу еще один случай привести. Была у нас ситуация, когда на специально подобранном наборе данных сервак обламывался. Такой набор данных в реальной жизни если и встретиться, то хорошо, если раз в пару лет. А можешь и не столкнуться. Тем не менее, тестеры смогли смоделировать ситуацию. I>>>>Видишь, один инструмент ты уже сам назвал AV>>>Вах, вот только это помогло узнать что проблема есть. И ничего более. I>>То есть тестеры моделировали наобум, просто от балды, или же сначала начл обламываться сервак а потом за это взялись тестеры ? AV>Нет, никто не обламывался.
Ты бы определился, умник. Сначала пишешь, что "на специально подобранном наборе данных сервак обламывался", а щас вот пишешь что сервер не обламывался
Короче, на ходу условие меняешь
I>>Тестеры смоделировали — они что, по бумажке с кодом моделировали ? AV>Не в прямом смысле, но по бумажке.
работали ли они с распечаткой кода или нет ? Не пори чушь, только да или нет.
I>>Не чуть больший, а почти вдвое больший. Бывает одна строка выносит мозг на день
AV>Нет, чуть больший. Потому что лишнее мы бы достаточно быстро отсекли бы. Потребовалось бы нам на это часа 5-6 человекочаса. По сравнению с остальным временем (под сотню человеко-часов) это не критично
Я в такие заявления не верю, особенно если сделаны после того как все уже случилось.
I>>>>Т.е. вы эмулировали бумагой анализатор, что можно поделать Вероятно код был в таком состоянии, что его легче читать по бумаге. На это тоже есть инструменты.
I>>Код разумеется.
AV>И что же ты получишь в результате этих анализов?
Узнаю места которые надо проверить. И никаких бумажек с кодом для этого не надо.
I>>То есть те 300 строк что вы смотрели по бумаге, вам ничем не помогли ?
AV>Как раз смотрение строк и дало.
Что было в этих строчках ?
I>>Попробуй сформулировать функции инструмента, который мог бы вам помочь и погугли
AV>Давай, вперед, приводи инструменты. А я посмеюсь.
Ты сначала сформулируй, а потом можно будет поискать инструменты. Я же не знаю, что вы конкретно смотрели в том коде и что именно нашли.
Здравствуйте, Ikemefula, Вы писали:
AV>>>>>>Могу еще один случай привести. Была у нас ситуация, когда на специально подобранном наборе данных сервак обламывался. Такой набор данных в реальной жизни если и встретиться, то хорошо, если раз в пару лет. А можешь и не столкнуться. Тем не менее, тестеры смогли смоделировать ситуацию. I>>>>>Видишь, один инструмент ты уже сам назвал AV>>>>Вах, вот только это помогло узнать что проблема есть. И ничего более. I>>>То есть тестеры моделировали наобум, просто от балды, или же сначала начл обламываться сервак а потом за это взялись тестеры ? AV>>Нет, никто не обламывался.
I>Ты бы определился, умник. Сначала пишешь, что "на специально подобранном наборе данных сервак обламывался", а щас вот пишешь что сервер не обламывался
I>Короче, на ходу условие меняешь
Умник, ты бы читать научился, а не занимался придумыванием того чего нет. Там было написано:
Была у нас ситуация, когда на специально подобранном наборе данных сервак обламывался. Такой набор данных в реальной жизни если и встретиться, то хорошо, если раз в пару лет. А можешь и не столкнуться.
Дальше не вижу смысла вести разговор. Ибо нет никакого желания вести как дон Кихот. Только вместо мельниц твои фантазии.
Здравствуйте, Erop, Вы писали:
I>>Отваливается функция, если не плодить монстров по 200К кода, а ограничиваться десятком строк, то не надо ничего распечатывать и можно пользоваться дебуггером.
E>Описанное поведение кодируется небольшой одной единственной функцией... E>Просто алгоритм, который она кодирует непрост.
Здравствуйте, ambel-vlad, Вы писали:
AV>Умник, ты бы читать научился, а не занимался придумыванием того чего нет. Там было написано:
Читай сам
ambel-vlad пишет: Была у нас ситуация, когда на специально подобранном наборе данных сервак обламывался.
ambel-vlad пишет: Нет, никто не обламывался.
AV>Дальше не вижу смысла вести разговор. Ибо нет никакого желания вести как дон Кихот. Только вместо мельниц твои фантазии.
Не пори чушь и прекращай истерику. Мне лично непонятно, как сервак мог обламывался и не обламывался