Login lub e-mail Hasło   

Delphi - Jak schludnie pisać?

Odnośnik do oryginalnej publikacji: http://www.lukas-home-page.ovh.org/artyk(...)sac.php
Każdy programista wie co to znaczy zasiąść ponownie do kodu, którego nie widziało się na oczy już ładnych kilka miesięcy. Co robić aby nie było to "spotkanie z nieznanym"?
Wyświetlenia: 1.701 Zamieszczono 22/01/2010

Jeśli udostępniasz źródło swojego programu (np. OpenSource), mile widziany jest przejrzysty kod. Długie procedury zacznij dzielić na kawałki odpowiadające poszczególnym, mniejszym zadaniom. Kod źródłowy formatuj używając wcięć typu:

procedure TMainForm.Liczby(zmienna: byte);
begin
  If zmienna = 3 Then
    ShowMessage('3');
  If zmienna = 4 Then
  Begin
    If CheckBox1.Checked Then
      zmienna := zmienna + 3;
    ShowMessage('4');
  end;
end; 


Takie ułożenie linii jest bardzo mile widziane. Jak pewnie zauważyłeś w ten sposób napisane instrukcje wyraźnie podkreślają operacje podrzędne (tak je nazwałem), np. spełniane dopiero wtedy gdy spełniony zostanie warunek. Można to uściślić - im więcej spacji przed instrukcją, z tym bardziej podrzędnym działaniem mamy do czynienia. Dzięki temu, nie pogubisz się w przyszłości w swoim programie. A wierz lub nie, ale wystarczy jedynie kilka tygodni odejścia od projektu aby pozapominać niektóre rzeczy. Drugim ważnym co do przejrzystości kodu elementem jest mus stosowania tzw. komentarzy. Komentarze to część kodu, która nie jest brana pod uwagę przez program kompilujący tzw. kompilator. W komentarzach, programiści umieszczają swoje uwagi, notatki, bądź w przypadku programów powstających na zasadach licencji "otwartej" swoje sugestie co do przyszłej poprawy wycinka kodu. Nie chodzi tu o prowadzenie forum na łamach kodu źródłowego, ale dodawanie swoich pomysłów, które nie bardzo wiemy jak przelać do kompilatora, a starannie obmyśliliśmy i zaplanowaliśmy ich działanie. W moim przypadku w komentarzach umieszczam wskazówki co do przyszłego, szybszego czytania kodu. Rozwiązanie to jest używane przez większość programistów. Komentarze mogą posłużyć nam jako nośniki starego, sprawdzonego kodu, przy testowaniu nowego. Zaznaczamy w nich również procedury co do których działania mamy pewne wątpliwości (bądź w ogóle nie spełniają one swojego zadania). Poniżej przedstawię przykłady zastosowania komentarzy:

procedure TMainForm.Button2Click(Sender: TObject);
var
  LosowaLiczba: byte; // zawiera wylosowaną liczbę  
  PoprzedniaLiczba: integer; // przechowuje poprzednio wylosowaną liczbę label skok; // etykieta skok;
begin
  Randomize; { Tutaj następują czynnosci wykonywane po wywołaniu etykiety skok: }
  skok:
  LosowaLiczba := Random(7); // Losowanie liczby z zakresu od 0 do 6
  If LosowaLiczba = 0 Then { Jesli wylosowana została liczba 0 to... wylosuj jeszcze raz }
    Goto skok;

  Try // spróbuj (w wypadku gdy nie ma nic w kontrolce Memo2 zgłaszany jest błąd)
    { Przypisywanie do zmiennej 'PoprzedniaLiczba' poprzedniej liczby ;) }  
    PoprzedniaLiczba := StrToInt(Memo2.Lines[Memo2.Lines.Count - 1]);
  Except
    { Jesli kotrolka Memo2 jest pusta... ...to ... }
    PoprzedniaLiczba := 0;
  end;
  { Następuje dodanie do zmiennej 'PoprzedniaLiczba' liczby wylosowanej }
  Memo2.Lines.Add(IntToStr(PoprzedniaLiczba + LosowaLiczba));
  { Jesli zmienna 'PoprzedniaLiczba' przekroczy wartosc 100...}
  If PoprzedniaLiczba > 100 Then
    {.. wyswietl komunikat z napisem 'Wygrał gracz po prawej' }  
    ShowMessage('Wygrał gracz po prawej');
end;

Jak widać może uprościć to nieco późniejsze czytanie kodu. Powracając do spraw 'organizacyjnych' dodam iż Delphi przyjmuje aż trzy sposoby na umieszczanie komentarzy: umieszczane pomiędzy nawiasy klamrowe { } Moim zdaniem jest to stosowany częściej od poniższego sposób umieszczania formularzy. Jest to komentarz wieloliniowy i należy go zamknąć za pomocą }, tak jak w poniższym przykładzie.  { to jest komentarz } umieszczane pomiędzy nawias i gwiazdkę (* *) Niewygodny - ale dla chcącego nic trudnego. Chodzi o to, że przy wstawianiu tego typu komentarza napracujecie się najbardziej ;) To także jest komentarz wieloliniowy i należy go zamknąć za pomocą *), tak jak w poniższym przykładzie.

(* to również jest
komentarz *)

pisane po dwóch slash'ach Chyba najbardziej rozpowszechniony typ komentarza. Bardzo szybki i wygodny w użyciu. Nie trzeba go zamykać, ponieważ jest to typ jednoliniowy.

// a to jest komentarz jednoliniowy

Kolejna wartą omówienia sprawą przy pisaniu programu jest fakt iż przypisując zmiennym wartości należy korzystać z poniższego schematu:

procedure TMainForm.JakasProcedura;
var
  MojaZmienna : String;  
begin
  MojaZmienna := 'Jakiś tam tekst';
end;

Zwróćcie uwagę na odległości pomiędzy zmienną, a wartością do niej przypisywaną. Znak przypisania ma być od obu oddzielony spacją. To samo dotyczy znaków:

  • porównania
  • =
  • >
  • <
  • <>
  • >=
  • <=
  • znaku dwukropka

Następnym "punktem", którego należy się trzymać jest czytelne nazewnictwo zmiennych oraz zasada "Wielbłąda". Przy nadawaniu nazw zmiennym także należy trzymać się obowiązujących zasad. Nadajemy im nazwę nawiązującą do jej zadania w kodzie. Przy klasach, rekordach itp. stosujemy różne przedrostki mające później umożliwić nam ich rozpoznanie. Pewnie zastanawiacie się teraz na czym polega styl "Wielbłąda" - nic prostszego. Popatrz:

trudnojestprzeczytactekstpisanybezspacji

 

a teraz...

TrudnoJestPrzeczytacTekstPisanyBezSpacji

 

ten tekst przeczytać jest łatwiej :) Prawda, że banalne ?

Czego jeszcze należy się trzymać ?

To już chyba wszystko co najważniejsze. W zasadzie przy nazewnictwie komponentów przydałaby się jakaś rewolucja. Przyjemnie jest patrzeć na komponenty, które w swojej nazwie ukrywają przeznaczenie np. zamiast 'Button1' pisz: 'btnZamknij'. Formę główną zawsze należy nazywać po imieniu - 'MainForm'. To wszystko!
Dzięki wszystkim za uwagę i do zobaczenia!

 

Łukasz "Lukas" Wyporek
lukas.home.page@gmail.com
http://lukashp.pl/Artykul/Programowanie/Delphi/delphi-jak_pisac 

Podobne artykuły


18
komentarze: 28 | wyświetlenia: 13603
11
komentarze: 8 | wyświetlenia: 5033
12
komentarze: 22 | wyświetlenia: 31424
9
komentarze: 5 | wyświetlenia: 1393
16
komentarze: 5 | wyświetlenia: 9012
9
komentarze: 0 | wyświetlenia: 2788
49
komentarze: 18 | wyświetlenia: 65024
37
komentarze: 9 | wyświetlenia: 28565
10
komentarze: 5 | wyświetlenia: 20425
13
komentarze: 3 | wyświetlenia: 49090
17
komentarze: 4 | wyświetlenia: 14330
 
Autor
Artykuł




Brak wiadomości


Dodaj swoją opinię
W trosce o jakość komentarzy wymagamy od użytkowników, aby zalogowali się przed dodaniem komentarza. Jeżeli nie posiadasz jeszcze swojego konta, zarejestruj się. To tylko chwila, a uzyskasz dostęp do dodatkowych możliwości!
 

© 2005-2018 grupa EIOBA. Wrocław, Polska