Методологии программирования - Отладка
Выявление и устранение ошибок в программе или программном обеспечении называется debugging. В идеале отладка - это часть процесса тестирования, но в действительности она выполняется на каждом этапе программирования. Кодеры должны отладить самые маленькие из своих модулей, прежде чем двигаться дальше. Это уменьшает количество ошибок, возникающих на этапе тестирования, и значительно сокращает время и усилия на тестирование. Давайте посмотрим на типы ошибок, которые могут возникнуть в программе.
Ошибки синтаксиса
Syntax errorsграмматические ошибки в программе. Каждый язык имеет свой собственный набор правил, таких как создание идентификаторов, написание выражений и т. Д. Для написания программ. При нарушении этих правил ошибки называютсяsyntax errors. Многие современныеintegrated development environmentsможет идентифицировать синтаксические ошибки при вводе вашей программы. В противном случае это будет показано при компиляции программы. Возьмем пример -

В этой программе не объявлена переменная prod, которая вызывается компилятором.
Семантические ошибки
Semantic errors также называются logical errors. В заявлении нет синтаксических ошибок, поэтому он будет правильно компилироваться и работать. Однако он не даст желаемого результата, поскольку логика неверна. Возьмем пример.

Посмотрите на строку 13. Здесь программист хочет проверить, равен ли делитель 0, чтобы избежать деления на 0. Однако вместо использования оператора сравнения == был использован оператор присваивания =. Теперь каждый раз, когда «выражение if» будет оцениваться как истина, и программа выдаст вывод как «Нельзя делить на 0». Определенно не то, что было задумано !!
Логические ошибки не могут быть обнаружены ни одной программой; они должны быть идентифицированы самим программистом, когда желаемый результат не достигается.
Ошибки времени выполнения
Ошибки времени выполнения - это ошибки, возникающие при выполнении программы. Это означает, что в программе нет синтаксических ошибок. Некоторые из наиболее распространенных ошибок времени выполнения, с которыми может столкнуться ваша программа:
- Бесконечная петля
- Деление на '0'
- Пользователь ввел неверное значение (например, строка вместо целого)
Оптимизация кода
Любой метод, с помощью которого код изменяется для улучшения его качества и эффективности, называется code optimization. Code qualityопределяет продолжительность жизни кода. Если код можно использовать и поддерживать в течение длительного периода времени, переносить с продукта на продукт, его качество считается высоким и он имеет более длительный срок службы. Напротив, если фрагмент кода можно использовать и поддерживать только в течение короткого времени, скажем, до тех пор, пока версия не станет действительной, считается, что он имеет низкое качество и имеет короткий срок службы.
Надежность и скорость кода определяет code efficiency. Эффективность кода - важный фактор в обеспечении высокой производительности программного обеспечения.
Есть два подхода к оптимизации кода -
Intuition based optimization (IBO)- Здесь программист пытается оптимизировать программу, исходя из собственных навыков и опыта. Это может сработать для небольших программ, но не работает по мере роста сложности программы.
Evidence based optimization (EBO)- Здесь используются автоматизированные инструменты для выявления узких мест в производительности, а затем соответствующие части оптимизируются соответствующим образом. Каждый язык программирования имеет собственный набор инструментов для оптимизации кода. Например, PMD, FindBug и Clover используются для оптимизации кода Java.
Код оптимизирован по времени выполнения и потреблению памяти, потому что времени мало, а память дорогая. Между ними должен быть баланс. Еслиtime optimization увеличивает нагрузку на память или memory optimization делает код медленнее, цель оптимизации будет потеряна.

Оптимизация времени выполнения
Оптимизация кода по времени выполнения необходима для быстрого обслуживания пользователей. Вот несколько советов по оптимизации времени выполнения -
Используйте команды, которые имеют встроенную оптимизацию времени выполнения
Используйте переключатель вместо условия if
Минимизируйте вызовы функций внутри структур цикла
Оптимизировать структуры данных, используемые в программе
Оптимизация памяти
Как известно, данные и инструкции занимают память. Когда мы говорим «данные», это также относится к промежуточным данным, которые являются результатом выражений. Нам также необходимо отслеживать, сколько инструкций составляет программу или модуль, который мы пытаемся оптимизировать. Вот несколько советов дляmemory optimization -
Используйте команды, которые имеют встроенную оптимизацию памяти
Используйте минимум переменных, которые необходимо хранить в регистрах.
Избегайте объявления глобальных переменных внутри циклов, которые выполняются много раз.
Избегайте использования ресурсоемких функций, таких как sqrt ()