Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

Najczęściej popełniane błędy początkujących programistów

Błędy logiczne

Błędy projektowania (lub jego brak)

Wielu programistów, gdy mają napisać program siadają i piszą go. Bez żadnego planu. Tymczasem proces projektowania aplikacji powinien wyglądać następująco:

  • Zaprojektowanie na sucho całej funkcjonalności i interakcji aplikacji oraz tabel bazy danych. Należy przewidzieć wszystkie możliwości działania programu, oraz rozwiązać wszystkie problemy. Przydają się tutaj schematy blokowe. Przy większych projektach warto zainteresować się OOP oraz wzorcami projektowymi (np. MVC)
  • Zamienianie opisu aplikacji na kod php. W tym miejscu nie powinniśmy już zmieniać projektu - wydłuży to i skomplikuje proces pisania.
  • Testowanie - po napisania wersji alfa, oddajemy program testerom, którzy zgłaszają wszelkie błędy i uwagi. W najgorszym wypadku można samemu testować program :)
  • Wydanie wersji beta dla szerokiego grona odbiorców, którzy także mogą zgłosić błędy i uwagi. W przypadku programów na zlecenie punkt raczej nie wchodzi w grę.
  • Wydanie wersji ostatecznej.

Warunkiem dobrego programu jest dobry projekt. Musimy uwzględnić prostotę i łatwość w rozbudowie kodu (np. pluginy), łatwość w obsłudze oraz funkcjonalność.

Niewłaściwa metoda rozumowania

Zdarza się, że pisząc program mimo, że nie ma żadnych błędów składniowych, to nie jest on wykonywany zgodnie z oczekiwaniami autora. Mamy wtedy błąd logiczny. W takim wypadku należy podzielić program na fragmenty i sprawdzić każdą z nich. Musimy pamiętać, że taki błąd trudno znaleźć, dlatego trzeba testować kod fragmentami. Przykładowym błędem logicznym jest stosowanie operatora AND zamiast OR, lub przypadkowe nadpisanie zmiennej.

Poziom raportowania błędów

W stadium pisania programu powinniśmy pracować z ustawionym error_reporting na E_ALL, i usuwać wszystkie błędy i ostrzeżenia (nawet notice). Przykładowo pokażę, jak usunąć często występujące ostrzeżenie niezdefiniowanej zmiennej. Mamy taki kod:

<?php
       
 for( $i = 0, $count = count( $array ); $i < $count; $i++ )
 {
     if( ( $liczba % 2 ) == 0 )
     {
         $strOutput1 .= $array[$i];
     }
     else
     {
         $strOutput2 .= $array[$i];
     }
 }
       
 ?>

Parser, przy ustawionym error_reporting na E_ALL zwróci następujący komunikat:

Stało się tak, ponieważ nie zainicjowaliśmy zmiennej przed wykonaniem na niej operacji łączenia (operatorem kropki). Poprawiony kod wygląda tak:

<?php
       
 for( $i = 0, $count = count( $array ), $strOutput1 = '', $strOutput2 = ''; $i < $count; $i++ )
       
 {
     if( ( $liczba % 2 ) == 0 )
     {
         $strOutput1 .= $array[$i];
     }
     else
     {
         $strOutput2 .= $array[$i];
     }
 }
       
 ?>
Zakończenie

I tak oto zbliżyliśmy się do końca lektury. Mam nadzieję, że tekst pomoże Wam w poprawieniu swoich błędów. Wszelkie uwagi i sugestie na temat artykułu proszę kierować do odpowiedniego tematu na forum lub prosto do mnie.

Bibliografia
Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (0)
Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2022 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System