metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-04-12 03:47 pm

Обезличенный псения пост

Два широко известных в узких кругах блоггера полностью игнорируют обработку кодов ошибок WinAPI и вообще обработку ошибок и прочих краевых случаев. Не говоря уже о флагах FPU и тому подобных неприятных вещах.
Из-за чего работа с их продуктами иногда принимает весьма занимательные формы.

[identity profile] dr-hyder.livejournal.com 2012-04-12 12:49 pm (UTC)(link)
Die young! Fail fast!

[identity profile] aamonster.livejournal.com 2012-04-12 12:50 pm (UTC)(link)
Они совершенны. Я, как и все, игнорирую только 90% проверок.

[identity profile] dizel-by.livejournal.com 2012-04-12 12:50 pm (UTC)(link)
Ещё много где слово состояния процессора на экран не выводится

[identity profile] falcrum.livejournal.com 2012-04-12 12:55 pm (UTC)(link)
Э-э, один из них - не "отладчик не нужен"™? :)

[identity profile] eternal-leave.livejournal.com 2012-04-12 12:57 pm (UTC)(link)
Винапи на руби? Мсье знает толк в извращениях.

[identity profile] falcrum.livejournal.com 2012-04-12 12:57 pm (UTC)(link)
Чё, уже и спросить нельзя? :)

[identity profile] nivanych.livejournal.com 2012-04-12 01:46 pm (UTC)(link)
Ну почему же!
В руби уже давно можно транслировать из Agda2!
И делать на нём WinAPI!
И контролировать типами ВСЁ!!
ТОЛЬКО ХАРДКОР!!

[identity profile] metaclass.livejournal.com 2012-04-12 01:03 pm (UTC)(link)
Отладчик, в общем случае, "нежелателен". При разработке.
А вот потом, при работе с вышеозначенными продуктами иногда без windbg не разберешся.

[identity profile] falcrum.livejournal.com 2012-04-12 01:31 pm (UTC)(link)
Блин. Любой инструмент имеет свою сферу применения. Никто не говорит, что надо лезть с кувалдой туда, где достаточно ювелирного молоточка. Но заявлять на этом основании о ненужности кувалды в принципе - несколько мощно. :)

[identity profile] dr-hyder.livejournal.com 2012-04-12 01:35 pm (UTC)(link)
Мне нравится ваша аналогия с кувалдами и молотками. Но в индустрии как и в жизни - если у тебя есть достаточно большая кувалда, то все эти молоточки уже не нужны!

[identity profile] falcrum.livejournal.com 2012-04-12 01:40 pm (UTC)(link)
Да-да, а потом, собирая самолёт, получаем паровоз и "доработать напильником"? :)

[identity profile] dr-hyder.livejournal.com 2012-04-12 01:41 pm (UTC)(link)
Нет. КУВАЛДОЙ! Что тут смешного, оно так и работает.

[identity profile] nivanych.livejournal.com 2012-04-12 01:43 pm (UTC)(link)
Отладчик не нужен.
Область применения отладки довольно узкая.
То есть, бывает нужно, но крайне редко его использование эффективно.
Но какое это имеет отношение к данному посту?

[identity profile] falcrum.livejournal.com 2012-04-12 01:44 pm (UTC)(link)
Музыкой навеяло! (с) :)

[identity profile] jakobz.livejournal.com 2012-04-12 02:55 pm (UTC)(link)
Только не когда у тебя 100 мегабайт индокода с XML-конфигурируемыми фабриками, цепочками наследования из 10-ти уровней и событийная модель ASP.NET WebForms.

Такое только в замедленной съемке можно раскурить.

[identity profile] metaclass.livejournal.com 2012-04-12 03:03 pm (UTC)(link)
Хм, по моему, как раз такое иначе как логами понять нельзя.

[identity profile] sleepy-drago.livejournal.com 2012-04-12 05:43 pm (UTC)(link)
вот как раз логами и нельзя. там обычно в релизе лог резанули так как в дебаге туда какието индусы срали гигабайтами на тестовых данных из 3х сосен. при виде леса у лога случится инфаркт и вы его не дождетесь.

[identity profile] jakobz.livejournal.com 2012-04-12 06:23 pm (UTC)(link)
Ну да, там два уровня логирования обычно:
1. писать только если совсем упало
2. засирать винт со скоростью, равной скорости записи на оный

[identity profile] jakobz.livejournal.com 2012-04-12 06:01 pm (UTC)(link)
Хехе. Стектрейс с null pointer чем тебе поможет? И свое логгирование ты куда будешь вставлять - методом половинного деления по 100мб кода искать?

Не. Ставишь бряху, смотришь откуда пришли и куда пойдем дальше. И вот так - вперед-взад по цепочкам вызовов. Только так.

Break on exception даже бесполезен, т.к. оно срет внутри и ловит, и ловит и срет.

[identity profile] nivanych.livejournal.com 2012-04-12 01:41 pm (UTC)(link)
> весьма занимательные формы

И позы!

[identity profile] guamoka.livejournal.com 2012-04-12 02:03 pm (UTC)(link)
Отложенная обработка ошибок.

[identity profile] blackyblack.livejournal.com 2012-04-12 05:30 pm (UTC)(link)
Флаги FPU? Чё за ересь? У вас винапи живёт на процессорах без поддержки вычислений с плавающей точкой?

[identity profile] metaclass.livejournal.com 2012-04-12 05:33 pm (UTC)(link)
Флаги FPU - это такой изврат, который например, глобально для процесса переключает точность вычислений, наличие округлений и исключения при переполнения. И если за этим не следить, можно поиметь шоу :)

[identity profile] blackyblack.livejournal.com 2012-04-12 05:49 pm (UTC)(link)
Реквестирую пост с примерами. Никогда не слышал про такую фигню и в инете плоховато гуглится.

[identity profile] vaddimka.livejournal.com 2012-04-12 10:40 pm (UTC)(link)
ну вот например напиши опердень с кучей FP вычислений
затем заебошь в нее графику на Direct 3D и удивись что результаты вычислений поменялись :)
wizzard: (Default)

[personal profile] wizzard 2012-04-13 07:12 am (UTC)(link)
+1000

или, что еще приятнее - слинковаться с либой которая аппаратно ускоряет чего-нибудь у себя там в потрохах в параллельных тредах.

http://blogs.unity3d.com/2008/01/22/holy-fpu-precision-batman/ вот например

[identity profile] molnij.livejournal.com 2012-04-13 02:53 am (UTC)(link)
Ну столкнулся я один раз с ошибкой выставление флага округления в сторонней библиотеке. Но не могу сказать, что это смертельно и что теперь я в каждую программу встраиваю слежение за ним.
За компанию могу вспомнить, как другая библиотека переопределяла процедуру отлова исключений на свою, а потом мило выгружалась из памяти. Аналогично: занимательно, но не больше.

[identity profile] bydl0coder.livejournal.com 2012-04-13 03:25 pm (UTC)(link)
Опердень на float?

[identity profile] metaclass.livejournal.com 2012-04-14 05:49 pm (UTC)(link)
Это не денежная опердень была :)