Как стать автором
Обновить
7
0
Юрий Худобин @0x3f00

Пользователь

Отправить сообщение
Да, статья скорее хороша этим комментарием.
Ждем ебилдов.
В свое время пользовался Тест-комплитом, но потом перешел на самостоятельное написание Perl-скриптов с модулем Win32:GUI. Они отлично эмулировали действия пользователя. А для удобства запускал их на виртуальных машинах.
Стедикам в помощь.
Шикарнейшая статья, спасибо!
Да, писали. Хотя я заведомо знаю, что никто меня не брутфорсил и уязвимостями для взлома не пользовался.
Ионы это хорошо, но разве в батарейках не деградируют электроды? На сколько лет работы вживленных электродов хватит?
Применение RAII в моей практике вовсе не затруднительно. Однако опыт показывает, что между «тяжелым» конструктором (RAII) и «легким» (с отложенной инициализацией) лучше выбрать второй.
1. Это означает, что я не смогу показать очень красивый, элегантный и полностью безопасный по отношению к исключениям код, стабильность которого, тем не менее, будет зависеть от фазы луны и случайного содержимого стека.

Обычно это происходит так. Приходит багрепорт: «У половины наших клиентов с вин2003 программа крэшится». Я лично с удовольствием бы писал много нового кода на С++11, однако приходится браться за эту ошибку. Просто потому что у меня больше опыта в отладке подобных проблем. Я вообще три вещи делаю очень хорошо: пишу код на С++, отлаживаю код на С++ и пишу очень красивые configure.ac. Если кто не верит, может зайти в профиль и посчитать мой возраст.

И поскольку я не собираюсь менять род деятельности и кровно заинтересован в экономии своего времени, то настаиваю на своей мысли: RAII не следует использовать для fopen() и подобного.
И действительно, кто такой этот богомерзкий Майкрософт и какое отношение он имеет к языкам программирования и инструментам разработки.
Проблема, видимо, в том, что я трачу свое время на отладку чужого кода.
RAII неплохая идиома, но у нее весьма конкретная сфера применения, и за приведенный код я бы отрывал ноги.
Во-первых, этот код не компилируется в VC2012.
Во-вторых, использование fopen() deprecated.
В-третьих, если я, например, буду искать в этом коде трудноуловимый баг, то я хочу, чтобы каждая функция стояла на отдельной строчке, чтобы я мог поставить брейкпоинт — то есть вместо file_(fopen()) я хочу всегда видеть { file_ = fopen();… }
В-четвертых, пусть код немного другой, исключение происходит после некоторого первого конструктора, но перед инициализацией переменной file_. В деструкторе вызывается fclose(0xCCCCCCCC); и имеем повторное исключение в обработчике.
Комментарий не с целью критики статьи, просто хочу пресечь злоупотребления идиомой.
RAII неплохая идиома, но у нее весьма конкретная сфера применения, и за приведенный код я бы отрывал ноги.
Помню в билд-скрипте для Apache Ant в одном из наших проектов обновление версии в нужных файлах делалось в одну строчку. Точнее в две. Первая строчка работала с точками, вторая с запятыми.
А слово «Keccak» какого происхождения?
И хром, как я мог забыть про хром!

Информация

В рейтинге
Не участвует
Откуда
Катманду, Непал, Непал
Дата рождения
Зарегистрирован
Активность