Каково приблизительное соотношение времени, которое обычно вы тратите на отладку на высоком уровне по сравнению с ошибками низкого уровня?Отладка: ошибки высокого уровня и низкого уровня
Для целей этой дискуссии ошибки высокого уровня такие, как неправильные алгоритмы, плохие предположения о входных данных и/или операционной среде, случаи, которые были упущены при первоначальной реализации чего-либо, забывая иметь дело с граничными условиями/крайние случаи и т. д. Для обсуждения они также могут включать в себя плохие дизайнерские решения, которые вводят ограничения в код и не требуют тривиального изменения, хотя это растягивает определение ошибки. Другими словами, ошибки на высоком уровне - это ошибки, вызванные тем, что вы не имели в виду.
Ошибки низкого уровня - это такие проблемы, как проблемы с управлением памятью и коррупцией, разрывы нулевых указателей, которые не вызваны ошибками высокого уровня, тонкими синтаксическими ошибками, которые выходят за пределы компилятора, массивы и т. д. Другими словами, это ошибки, вызванные не кодированием того, что вы имели в виду.
Кроме того, для сравнения, на каких языках вы в первую очередь используете и какого типа программирования вы в первую очередь делаете?
Мои извинения. Но это скоро может быть закрыто под «Субъективным и аргументированным» –
@ Ravi - Nah. Не аргументирован. –
Ваши примеры для низкоуровневых и высокоуровневых ошибок кажутся мне противоречивыми. Например, вы упоминаете не обработанный крайный случай как ошибку высокого уровня, но и исключение нулевого указателя и ошибку «один за другим» в цикле как ошибки низкого уровня. Я считаю, что все три являются краевыми случаями алгоритма, которые часто не упоминаются в спецификации, или то, что вы бы назвали ошибками высокого уровня. Все они обычно вызваны неспособностью правильно протестировать разработчика. – gooli