С одной стороны странно, но с другой, мне вот допустим нужно для доказательства своей невиновности привлечь экспертов в своей области. И что, экспертизу они мне бесплатно будут делать, просто потому что «независимые»?
Порадовал в свое время несказанно порядок байт на каком-то арме, для double: efghabcd.
В итоге для формата сохранения под разные архитектуры, написал что-то вроде QDataStream, только порядок байт более гибко задается.
uint8_t mask = (ORDER_LE | ORDER_LE << 1 | ORDER_BE << 2), вроде такого. и для float и int-ов отдельно. зато вычисляется такая маска один раз, и потом все довольно просто
dest[mask ^ 0] = src[0];
dest[mask ^ 1] = src[1];
dest[mask ^ 2] = src[2];
dest[mask ^ 3] = src[3];
Как раз его вчера смотрел, благодаря ссылкам на хабре, и при прочтении статьи сравнивал свои мысли с впечатлением от этого видео.
Мне довелось работать сперва в компании примерно как у автора топика, а сейчас скорее как описывал Дэн… мотивация от того что каждый знает почему он это делает.
Не могу сказать что какой-то метод более эффективный по результату, но моя текущая организация совсем не накладывает на меня напряжения.
Поддерживаю. Притянуто-притянуто. Ни коем образом не умаляя заслуг автора в создании потрясающего инструмента (смотрел пробную версию, понравилось), хочу сказать:
-Ошибки в статьях описываются однообразно и в большинстве случаев одни и те же. Нулевой указатель. Неправильные условия. Ошибки копипаста. Побитовые операции и прочие sizeof. Вот мне как С++ разработчику, хочется видеть примеры которые показывает пользу именно «С++ анализатора». А не «С анализатора» :-)
-Мне как читателю куда интереснее было бы прочитать в статье на хабре одну или две занятные, удивительные или нестандартные ошибки. А по возможности уже Ваш отчет с комментариями на Вашем же сайте (если вдруг меня интересует именно эта библиотека и я хочу возможно исправить что-то самостоятельно).
Продолжайте писать статьи, сравнивать анализаторы, но старайтесь, пожалуйста, меньше банальщины. Меньше, да резче, так сказать.
Внесу свою лепту:
Именованные единицы (после Вашего поста узнал, что они есть и в других компаниях):
— Домышевский час (возник после того как одноименная оценка в «пару часов» заняла полтора месяца); Употребление: «сколько займет?» «ну, пол домышевского часа» (значит очень много)
Долгое время висела на стене инструкция, «что делать если что-то не работает?»:
-Для того, чтобы все работало ПРАВИЛЬНО, нужно ПРАВИЛЬНО реализовать ПРАВИЛЬНЫЕ алгоритмы и ПРАВИЛЬНО подать ПРАВИЛЬНЫЕ данные.
Попахивает кэпом, но в самом деле, неоднократно спасало в трудных ситуациях =)
Родилось с подачи тестировщиков заказчика:
-«Мы создали программу тестирования N. Если программу запускать, она работает, а если тестировать — то нет» (происхождение: в автоматической системе тестирования два режима, проблема проявлялась только в одном).
с тех пор, если тестер сообщает о гейзенбаге, стандартный ответ: «Саня, программу надо запускать, а не тестировать!»
«А вот возьму и сделаю!» — произносится сурово и «назло», в ответ на очевидные рекомендации.
Происхождение: клиент жаловался на ошибки в работе нашей библиотеки, на что мы посоветовали более очевидно и без «выкрутасов» использовать АПИ (то что он позволял вообще его использовать как-то неверно — другой разговор), на что был ответ, какой-то очень раздраженный «А вот попробуем!».
«у меня локальные правки фиг знает откуда...» — «ну дак сделай revert!» — «А вот попробую!»
В итоге для формата сохранения под разные архитектуры, написал что-то вроде QDataStream, только порядок байт более гибко задается.
uint8_t mask = (ORDER_LE | ORDER_LE << 1 | ORDER_BE << 2), вроде такого. и для float и int-ов отдельно. зато вычисляется такая маска один раз, и потом все довольно просто
dest[mask ^ 0] = src[0];
dest[mask ^ 1] = src[1];
dest[mask ^ 2] = src[2];
dest[mask ^ 3] = src[3];
А по теме — не очень представляю металлический экран, если честно.
Мне довелось работать сперва в компании примерно как у автора топика, а сейчас скорее как описывал Дэн… мотивация от того что каждый знает почему он это делает.
Не могу сказать что какой-то метод более эффективный по результату, но моя текущая организация совсем не накладывает на меня напряжения.
-Ошибки в статьях описываются однообразно и в большинстве случаев одни и те же. Нулевой указатель. Неправильные условия. Ошибки копипаста. Побитовые операции и прочие sizeof. Вот мне как С++ разработчику, хочется видеть примеры которые показывает пользу именно «С++ анализатора». А не «С анализатора» :-)
-Мне как читателю куда интереснее было бы прочитать в статье на хабре одну или две занятные, удивительные или нестандартные ошибки. А по возможности уже Ваш отчет с комментариями на Вашем же сайте (если вдруг меня интересует именно эта библиотека и я хочу возможно исправить что-то самостоятельно).
Продолжайте писать статьи, сравнивать анализаторы, но старайтесь, пожалуйста, меньше банальщины. Меньше, да резче, так сказать.
Полученный робот новых роботов не складывает…
Именованные единицы (после Вашего поста узнал, что они есть и в других компаниях):
— Домышевский час (возник после того как одноименная оценка в «пару часов» заняла полтора месяца); Употребление: «сколько займет?» «ну, пол домышевского часа» (значит очень много)
Долгое время висела на стене инструкция, «что делать если что-то не работает?»:
-Для того, чтобы все работало ПРАВИЛЬНО, нужно ПРАВИЛЬНО реализовать ПРАВИЛЬНЫЕ алгоритмы и ПРАВИЛЬНО подать ПРАВИЛЬНЫЕ данные.
Попахивает кэпом, но в самом деле, неоднократно спасало в трудных ситуациях =)
Родилось с подачи тестировщиков заказчика:
-«Мы создали программу тестирования N. Если программу запускать, она работает, а если тестировать — то нет» (происхождение: в автоматической системе тестирования два режима, проблема проявлялась только в одном).
с тех пор, если тестер сообщает о гейзенбаге, стандартный ответ: «Саня, программу надо запускать, а не тестировать!»
«А вот возьму и сделаю!» — произносится сурово и «назло», в ответ на очевидные рекомендации.
Происхождение: клиент жаловался на ошибки в работе нашей библиотеки, на что мы посоветовали более очевидно и без «выкрутасов» использовать АПИ (то что он позволял вообще его использовать как-то неверно — другой разговор), на что был ответ, какой-то очень раздраженный «А вот попробуем!».
«у меня локальные правки фиг знает откуда...» — «ну дак сделай revert!» — «А вот попробую!»