Дядя Дима (ddima) wrote,
Дядя Дима
ddima

Category:

Особенности кодирования

Занимаясь разработкой своего пета, наконец-то смог четко выделить две особенности, которые (как мне кажется) отличают мой стиль программирования.

Первое. Частый compile/run. Для компактного приложения (например, для юнит-теста) я стараюсь пользовать функцию компиляции проекта и его запуска максимально часто (примерно раз в минуту). При этом запуску подвергается любой успешно собираемый вариант - пусть даже он имеет одни только заглушки и его исполнение гарантированно обрушит программу - я хочу видеть КАК ИМЕННО оно его обрушит? Получу ли я нужную диагностику в протокол, совпадет ли вывод в лог и поведение программы с тем, что я ожидаю. Например, недавно получил pure function call, который бы 98% не случился, если бы я написал чуть больше кода, а не бросил реализацию функции на полпути.

Второе. Перевод ошибок в компайл-тайм. Отлаживал ошибку с порчей хипа, оказалось, что в нужном месте не нажался амперсанд и класс, который не имеет права пользовать copy ctor, вернулся из функции не по ссылке, а по значению. Наверное, большинство программистов заменят MyClass get() на MyClass& get() и успокоятся (ошибка исправлена). Я вместо этого поступаю иначе. Сначала меняю реализацию MyClass - добавляю приватный copy ctor и на всякий случай в него пихаю hard assert с диагностикой "this call is not allowed" (чтобы потом не облажаться еще и во внутренних методах). Потом компилирую программу и получаю желаемую ошибку в compile time. И только после этого исправляю MyClass& get().

А используются ли такие особенности кодирования у вас?
Tags: prog
Subscribe

  • list vs vector и немного про синтетические примеры

    Недавно в ICQ развершулась довольно жаркая дискуссия про сравнение производительности и удобства списков и векторов для выполнения разных операций.…

  • Pulsar

    Про нанокри писать особенно нечего, думаю, что пара десятков фоток, которые легко можно найти в инете, дадут полное представление о…

  • Многопоточность (поток сознания)

    Что-то я много стал писать про тренд, надо бы достать из закромов заготовки, сделанные раньше. Вот например, пост, драфт которого был написан по…

  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 30 comments

  • list vs vector и немного про синтетические примеры

    Недавно в ICQ развершулась довольно жаркая дискуссия про сравнение производительности и удобства списков и векторов для выполнения разных операций.…

  • Pulsar

    Про нанокри писать особенно нечего, думаю, что пара десятков фоток, которые легко можно найти в инете, дадут полное представление о…

  • Многопоточность (поток сознания)

    Что-то я много стал писать про тренд, надо бы достать из закромов заготовки, сделанные раньше. Вот например, пост, драфт которого был написан по…