Неизвестный C++: exceptions

Во многих книгах пишут, что нужно избегать exception-ов в конструкторах и деструкторах. Exception в конструкторе нам как бы «подсказывает», что объект не был сконструирован до конца и следовательно, нет смысла вызывать деструктор для такого объекта. Такое поведение чревато утечками ресурсов, поскольку как правило ресурсы освобождаются в деструкторе.

Читать далее →

Судьба Pascal-я на ACM

В студенческие годы участвовал в международной студенческой олимпиаде по программированию. Считаю, что эти соревнования двигают IT-индустрию, в особенности, популярность языков программирования. Университеты, чтобы участвовать в таких соревнования, готовят целенаправленно студентов со знаниями языков программирования предлагаемых в регламенте соревнований. Когда Я участвовал, мы использовали Pascal/Delphi. В то время на этом языке программирования российские ребята успешно побеждали в финале чемпионатов. Однако, сейчас pascal исключён из регламента соревнований.

Читать далее →

Логирование как метод отладки программного обеспечения. Часть первая (основы)

Логирование кода как метод отладки программного обеспечения вероятно «родилось» из отладки путём вывода значений переменных на консоль. Результат логирования, т.е. то, что выводится на консоль, в файл и т.п. называется логом.

Де-факто логирование стало настолько универсальным методов отладки, что например в embedded программировании без логирования практически невозможно отладить код, а о серверных логах наверно слышали все.

Читать далее →

Обзор методов отладки программного обеспечения

Время от времени на форумах «пролетает» вопрос: «Какие методы отладки вы использовали?». Этот пост — мой ответ.

Отладка — это комплексный процесс по выявлению и исправлению дефектов в программном обеспечении.  Сами же дефекты, обычно, обнаруживается в процессе тестирования ПО.

Читать далее →

Неявные признаки плохого кода

Ниже список неявных признаков плохого кода, который в контексте данного поста стоит воспринимать как эмпирические знания автора.

Если Вы нашли один из перечисленных ниже признаков в вашем проекте — это сигнал задуматься об improvement-ах!

Читать далее →