Metodyka programowania - debugowanie

Nazywa się identyfikowanie i usuwanie błędów z programu lub oprogramowania debugging. Idealnie debugowanie jest częścią procesu testowania, ale w rzeczywistości odbywa się na każdym etapie programowania. Koderzy powinni debugować najmniejsze ze swoich modułów, zanim przejdą dalej. Zmniejsza to liczbę błędów zgłaszanych podczas fazy testowania i znacznie skraca czas testowania i nakład pracy. Przyjrzyjmy się typom błędów, które mogą pojawić się w programie.

Błędy składniowe

Syntax errorsto błędy gramatyczne w programie. Każdy język ma swój własny zestaw reguł, takich jak tworzenie identyfikatorów, pisanie wyrażeń itp. Do pisania programów. W przypadku naruszenia tych zasad wywoływane są błędysyntax errors. Wiele nowoczesnychintegrated development environmentsmoże zidentyfikować błędy składniowe podczas pisania programu. W przeciwnym razie zostanie wyświetlony podczas kompilacji programu. Weźmy przykład -

W tym programie nie została zadeklarowana zmienna prod, która jest generowana przez kompilator.

Błędy semantyczne

Semantic errors są również nazywane logical errors. Instrukcja nie zawiera błędów składniowych, więc będzie się kompilować i działać poprawnie. Jednak nie da to pożądanego wyniku, ponieważ logika jest nieprawidłowa. Weźmy przykład.

Spójrz na wiersz 13. Tutaj programista chce sprawdzić, czy dzielnik jest równy 0, aby uniknąć dzielenia przez 0. Jednak zamiast używać operatora porównania ==, został użyty operator przypisania =. Teraz za każdym razem, gdy wyrażenie „if” zwróci wartość „prawda”, a na wyjściu program wyświetli „Nie można podzielić przez 0”. Zdecydowanie nie to, co było zamierzone !!

Żaden program nie może wykryć błędów logicznych; muszą one zostać zidentyfikowane przez samego programistę, gdy pożądany wynik nie zostanie osiągnięty.

Błędy w czasie wykonywania

Błędy uruchomieniowe to błędy występujące podczas wykonywania programu. Oznacza to, że program nie zawiera błędów składniowych. Niektóre z najczęstszych błędów czasu wykonywania, które może napotkać Twój program, to:

  • Nieskończona pętla
  • Dzielenie przez „0”
  • Błędna wartość wprowadzona przez użytkownika (powiedzmy ciąg znaków zamiast liczby całkowitej)

Optymalizacja kodu

Wywoływana jest każda metoda modyfikacji kodu w celu poprawy jego jakości i wydajności code optimization. Code qualityokreśla żywotność kodu. Jeśli kod może być używany i utrzymywany przez długi czas, przenoszony z produktu na produkt, jego jakość jest uważana za wysoką i ma dłuższą żywotność. Wręcz przeciwnie, jeśli fragment kodu może być używany i utrzymywany tylko przez krótkie okresy, powiedzmy do czasu, gdy wersja jest ważna, uważa się, że jest on niskiej jakości i ma krótki okres trwałości.

Decyduje o niezawodności i szybkości kodu code efficiency. Wydajność kodu jest ważnym czynnikiem zapewniającym wysoką wydajność oprogramowania.

Istnieją dwa podejścia do optymalizacji kodu -

  • Intuition based optimization (IBO)- Tutaj programista próbuje zoptymalizować program w oparciu o własne umiejętności i doświadczenie. Może to działać w przypadku małych programów, ale kończy się niepowodzeniem w miarę wzrostu złożoności programu.

  • Evidence based optimization (EBO)- W tym przypadku używane są zautomatyzowane narzędzia, aby znaleźć wąskie gardła wydajności, a następnie odpowiednie fragmenty zostały odpowiednio zoptymalizowane. Każdy język programowania ma własny zestaw narzędzi do optymalizacji kodu. Na przykład PMD, FindBug i Clover służą do optymalizacji kodu Java.

Kod jest zoptymalizowany pod kątem czasu wykonywania i zużycia pamięci, ponieważ czas jest ograniczony, a pamięć kosztowna. Musi istnieć równowaga między nimi. Gdybytime optimization zwiększa obciążenie pamięci lub memory optimization spowalnia kod, cel optymalizacji zostanie utracony.

Optymalizacja czasu wykonywania

Optymalizacja kodu pod kątem czasu wykonania jest niezbędna do zapewnienia szybkiej obsługi użytkownikom. Oto kilka wskazówek dotyczących optymalizacji czasu wykonywania -

  • Użyj poleceń, które mają wbudowaną optymalizację czasu wykonywania

  • Użyj przełącznika zamiast warunku if

  • Zminimalizuj wywołania funkcji w strukturach pętli

  • Zoptymalizuj struktury danych używane w programie

Optymalizacja pamięci

Jak wiesz, dane i instrukcje zajmują pamięć. Kiedy mówimy o danych, odnosi się to również do danych tymczasowych, które są wynikiem wyrażeń. Musimy również śledzić, ile instrukcji składa się na program lub moduł, który próbujemy zoptymalizować. Oto kilka wskazówek dotyczącychmemory optimization -

  • Użyj poleceń, które mają wbudowaną optymalizację pamięci

  • Zachowaj minimalne użycie zmiennych, które muszą być przechowywane w rejestrach

  • Unikaj deklarowania zmiennych globalnych wewnątrz pętli, które są wykonywane wielokrotnie

  • Unikaj używania funkcji intensywnie wykorzystujących procesor, takich jak sqrt ()