Публикую ответ на один из вариантов вопросов о том как развиваться, который получаю от школьников, студентов, и коллег.
Публикую ответ на один из вариантов вопросов о том как развиваться, который получаю от школьников, студентов, и коллег.
Во многих книгах пишут, что нужно избегать exception-ов в конструкторах и деструкторах. Exception в конструкторе нам как бы «подсказывает», что объект не был сконструирован до конца и следовательно, нет смысла вызывать деструктор для такого объекта. Такое поведение чревато утечками ресурсов, поскольку как правило ресурсы освобождаются в деструкторе.
В студенческие годы участвовал в международной студенческой олимпиаде по программированию. Считаю, что эти соревнования двигают IT-индустрию, в особенности, популярность языков программирования. Университеты, чтобы участвовать в таких соревнования, готовят целенаправленно студентов со знаниями языков программирования предлагаемых в регламенте соревнований. Когда Я участвовал, мы использовали Pascal/Delphi. В то время на этом языке программирования российские ребята успешно побеждали в финале чемпионатов. Однако, сейчас pascal исключён из регламента соревнований.
Логирование кода как метод отладки программного обеспечения вероятно «родилось» из отладки путём вывода значений переменных на консоль. Результат логирования, т.е. то, что выводится на консоль, в файл и т.п. называется логом.
Де-факто логирование стало настолько универсальным методов отладки, что например в embedded программировании без логирования практически невозможно отладить код, а о серверных логах наверно слышали все.
Время от времени на форумах «пролетает» вопрос: «Какие методы отладки вы использовали?». Этот пост — мой ответ.
Отладка — это комплексный процесс по выявлению и исправлению дефектов в программном обеспечении. Сами же дефекты, обычно, обнаруживается в процессе тестирования ПО.
Ниже список неявных признаков плохого кода, который в контексте данного поста стоит воспринимать как эмпирические знания автора.
Если Вы нашли один из перечисленных ниже признаков в вашем проекте — это сигнал задуматься об improvement-ах!