Здравствуйте eXXXplosivo, Вы писали:
XXX>Привет! Буду краток: одна из частей моей магистрской работы состоит в том, чтобы путём опроса людей, занимающихся непосредственно программированием (то есть кодингом) на одном из более-менее процедуральных языков (скажем, на C/C++, Pascal/ObjectPascal или Java), выяснить, какого типа ошибки чаще всего ими допускаются. Понятное дело, вряд ли кто-то ведёт точную статистику, но вот просто попробуйте с ходу определить, к какой категории принадлежат ваши собственные любимые ошибки. Итак, список категорий:
XXX>1) Некорректные операции с указателями и ошибки выделения/освобождения памяти. XXX>2) Некорректные операции с массивами (выход за границы оного, например). XXX>3) Неверные условия выхода из цикла (приводящие к зацикливанию, но не обязательно только к нему). XXX>4) Некорректная организация синхронизации (deadlocks, livelocks и нарушения доступа как результат). XXX>5) Передача неверных параметров (НЕ своим функциям, а куда-то в другие компоненты системы; пример — вызов WinAPI). XXX>6) Отсутствие начальной инициализации переменных/памяти. XXX>7) Неверная реализация специфичного алгоритма (фактически, всё, что не подпадает под категории с 1-й по 6-ю).
XXX>Всем, кто не поленится принять участие в этом опросе, выносится моя глубокая благодарность Спасибо!
Опишу самы часто встречающиеся ошибки программистов Microsoft
Чисто мое ИМХО
1. 0%
2. 25%
3. 50%
4. 20%
5. гы не знаю, гадать не буду
6. 0%
7. 5%
Все гениальное — просто
Re[2]: Самые часто встречающиеся ошибки програмистов
Здравствуйте eXXXplosivo, Вы писали:
XXX>Здравствуйте Рек, Вы писали:
Рек>>Удачи в магистерской работе!
XXX>Спасибо за ответ и, особенно, за пожелание удачи! Этого добра много не бывает
Пусть этого добра будет много
Присоединяюсь к Реку
Перекуём баги на фичи!
Re[2]: Самые часто встречающиеся ошибки програмистов
[skip] P>У меня однозначео рулит #6, особенно в функциях типа sprintf. (помниться убил целый день из-за глупого %d вместо %f Сейчас ими пользуюсь с
^^^sorry, конечно #5
[skip]
Почетный кавалер ордена Совка.
Re[2]: Самые часто встречающиеся ошибки програмистов
Здравствуйте The Lex, Вы писали:
TL>2) ~0% (массивы практически не использую, а где использую почему-то всегда попадаю)
Намедни потратил три часа на трассировку. Вот везде работает, а в одном месте просто проваливается и даже не могу понять где. Ларчик открывался просто: в качестве буфера был задан массив (автоматический, в стеке) размером 1КБ. В одном месте описание превысило этот размер. Все посыпалось.
Здравствуйте eXXXplosivo, Вы писали:
XXX>Привет! Буду краток: одна из частей моей магистрской работы состоит в том, чтобы путём опроса людей, занимающихся непосредственно программированием (то есть кодингом) на одном из более-менее процедуральных языков (скажем, на C/C++, Pascal/ObjectPascal или Java)<...>
Кстати, Java -- чисто объектно-ориентированный язык;
ObjectPascal, С++ -- гибридные (процедурность+ООП);
Pascal, C -- процедурные.
XXX>1) Некорректные операции с указателями и ошибки выделения/освобождения памяти. XXX>2) Некорректные операции с массивами (выход за границы оного, например). XXX>3) Неверные условия выхода из цикла (приводящие к зацикливанию, но не обязательно только к нему). XXX>4) Некорректная организация синхронизации (deadlocks, livelocks и нарушения доступа как результат). XXX>5) Передача неверных параметров (НЕ своим функциям, а куда-то в другие компоненты системы; пример — вызов WinAPI). XXX>6) Отсутствие начальной инициализации переменных/памяти. XXX>7) Неверная реализация специфичного алгоритма (фактически, всё, что не подпадает под категории с 1-й по 6-ю).
Для Java имеет место быть так:
1) =0%
2) =0%
3) ~0%
4) ~0%
5) =0%
6) =0%
7) >=0%
XXX>Всем, кто не поленится принять участие в этом опросе, выносится моя глубокая благодарность Спасибо!
XXX>1) Некорректные операции с указателями и ошибки выделения/освобождения памяти. XXX>2) Некорректные операции с массивами (выход за границы оного, например). XXX>3) Неверные условия выхода из цикла (приводящие к зацикливанию, но не обязательно только к нему). XXX>4) Некорректная организация синхронизации (deadlocks, livelocks и нарушения доступа как результат). XXX>5) Передача неверных параметров (НЕ своим функциям, а куда-то в другие компоненты системы; пример — вызов WinAPI). XXX>6) Отсутствие начальной инициализации переменных/памяти. XXX>7) Неверная реализация специфичного алгоритма (фактически, всё, что не подпадает под категории с 1-й по 6-ю).
Вообщем, это все интересные ошибки.
Но еще очень "забавные" — связанные с коллективной разработкой, когда один что-то меняет, не посоветовавшись с другим.
Это я пишу в процессе отходняка от аналогичной беды — поменяли COM интерфейс (забыв что это делать нельзя) — а мне не сказали .
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте eXXXplosivo, Вы писали:
XXX>1) Некорректные операции с указателями и ошибки выделения/освобождения памяти. XXX>2) Некорректные операции с массивами (выход за границы оного, например). XXX>3) Неверные условия выхода из цикла (приводящие к зацикливанию, но не обязательно только к нему). XXX>4) Некорректная организация синхронизации (deadlocks, livelocks и нарушения доступа как результат). XXX>5) Передача неверных параметров (НЕ своим функциям, а куда-то в другие компоненты системы; пример — вызов WinAPI). XXX>6) Отсутствие начальной инициализации переменных/памяти. XXX>7) Неверная реализация специфичного алгоритма (фактически, всё, что не подпадает под категории с 1-й по 6-ю).