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 ()