05.Rozdziaę 04.pdf

(250 KB) Pobierz
33670611 UNPDF
Rozdział 4
Konwencje
Niezwykle istotnym czynnikiem, ułatwiającym tworzenie aplikacji klient-serwer,
jest konsekwentne stosowanie standardowych konwencji nazewnictwa i metod
zapisu programu. Problematyka ta wydaje się na tyle istotna, że jej omówienie
poprzedzi właściwe informacje na temat budowania aplikacji.
Niniejszy rozdział zawiera szereg uwag na temat nazewnictwa elementów aplikacji
klient-serwer, napisanych w Delphi. Uwagi te odnosić się będą do elementów
aplikacji klienta i serwera, które omawiane będą oddzielnie.
Zawartość tego rozdziału należy traktować wyłącznie jako zbiór sugestii.
Czytelnicy powinni wybrać takie metody nazewnictwa i zapisu programu, jakie im
najbardziej odpowiadają. Znacznie istotniejsze od wyboru konkretnej konwencji
jest jej konsekwentne stosowanie.
Elementy programu w języku Object Pascal
Dyskusję na temat nazewnictwa rozpoczniemy od elementów programu w Delphi.
Do elementów tych zaliczyć można komponenty, formularze, moduły danych,
moduły kodu ( units ), zmienne, stałe, itd. Innymi słowy, za elementy programu
w Delphi uznajemy wszystkie te elementy, które nie są wprost związane
z serwerem bazy danych. Do elementów związanych z serwerem bazy danych
zaliczamy m.in. tabele, indeksy, widoki, wyzwalacze, procedury osadzone, reguły,
wartości domyślne, itd.
UWAGA:
Z uwagi na różnorodność wykorzystywanych obecnie środowisk sieciowych,
należy w miarę możliwości unikać stosowania długich nazw plików, dozwolonych
wWindows 95/NT. Wprawdzie Delphi doskonale radzi sobie znazwami
dłuższymi niż 8 znaków, jednak często zdarza się, że aplikacja musi
współpracować z sieciowym systemem operacyjnym lub działać na komputerze, na
którym nazwy takie nie są dozwolone. Jest to szczególnie prawdopodobne
w przypadku aplikacji typu klient-serwer, które często korzystają z serwerów
rezydujących na innym komputerze.
33670611.003.png
88
Część I
Można się spodziewać, że w niedalekiej przyszłości większość serwerów i sieci
będzie dopuszczać stosowanie długich nazw plików. Obecnie jednak wciąż jeszcze
wskazana jest powściągliwość w korzystaniu z tego udogodnienia.
Katalogi
Omówienie rozpoczniemy od katalogów, gdyż ich struktura bywa często równie
ważna, jak sama zawartość. Wszystkie dane, niezależnie od ich typu, dobrze jest
przechowywać na dysku w jednym, wspólnym katalogu, o nazwie DATA (DANE).
Umożliwia to wykonanie kopii bezpieczeństwa wszystkich danych poprzez proste
skopiowanie zawartości katalogu DATA i jego podkatalogów.
W obrębie katalogu DATA utworzyć można podkatalogi, odpowiadające
poszczególnym aplikacjom - jeden podkatalog dla programu Word Perfect for
Windows, drugi dla Delphi, trzeci dla Quattro Pro for Windows, itd. Ułatwi to
odszukanie pliku utworzonego przy użyciu określonej aplikacji. Taki sposób
postępowania odbiega od modnego ostatnio systemu pracy „zorientowanej na
przetwarzanie dokumentu, a nie uruchamianie aplikacji”, jest jednak dobrze
sprawdzony w praktyce.
W ramach podkatalogu każdej aplikacji umieścić można podkatalogi
odpowiadające poszczególnym projektom. Na przykład, projekt RentalMan
(„zarządzanie wynajmem”), opracowywany w części „Tutorial” niniejszej książki,
mógłby rezydować wkatalogu C:\DATA\DELPHI3\RENTMAN. Wpraktyce
bardzo rzadko stosuje się rozszerzenia nazw katalogów. Katalogi powinny mieć
nazwy łatwe do rozpoznania i zapamiętania - takie, które równie dobrze mogłyby
identyfikować segregatory stojące na półce. W istocie, katalogi „udają” przecież
segregatory zdokumentami. Zpowyższych zasad wynika, że jeśli projekt
opracowywany jest przy pomocy kilku programów, to należy utworzyć podkatalog
projektu, o identycznej nazwie, w podkatalogu każdej z aplikacji. Oczywiście - jak
już wspomniano - powyższe reguły należy traktować wyłącznie jako sugestię
autora, opartą na jego własnych doświadczeniach.
UWAGA:
Windows 95 automatycznie zakłada katalog onazwie Moje Dokumenty,
analogiczny do wspomnianego katalogu DATA. W Windows 95 podkatalogi
przyjęto nazywać folderami. Foldery tworzy się m.in. w programie Eksplorator.
33670611.004.png 33670611.005.png
Konwencje
89
Nazwy projektów
Nazwy projektów powinny być rozpoznawalne i logiczne, a jednocześnie zgodne
z konwencją nazewnictwa plików „8+3”. Nie należy zmieniać standardowego
rozszerzenia, nadawanego przez Delphi plikom projektów. W rezultacie długość
nazwy projektu zostaje ograniczona do zaledwie ośmiu znaków. Nazwa taka
powinna być identyczna z nazwą katalogu, w którym przechowywany jest projekt.
Dzięki temu możliwe będzie łatwe ustalenie, skąd pochodzi plik, przeniesiony
tymczasowo w inne miejsce albo skopiowany na dysk kolegi.
Nazwy plików
Plikom dobrze jest nadawać nazwy czytelne, logiczne i„rozszerzalne”.
„Rozszerzalność” można osiągnąć przeznaczając jedną lub dwie ostatnie cyfry
nazwy na numer kolejny wersji. Dzięki takiej numeracji możliwe jest
przechowywanie kilku wersji pliku, zzachowaniem jego głównej nazwy.
Przykładowo na dysku autora plik, zawierający niniejszy rozdział, nosi nazwę
CSD0400. Kolejne, zmodyfikowane nazwy pliku zapisywane są pod nazwami
CSD0401, CSD0402, itd. Sposób ten umożliwia szybkie rozpoznanie ostatniej
wersji pliku, bez odczytywania daty i godziny jego utworzenia. Ponadto bardzo
łatwo można przenieść, skopiować lub spakować wszystkie wersje pliku,
korzystając z wieloznacznej nazwy plików (zawierającej tzw. wildcards , np.
„CSD04??”). Opisany powyżej sposób nazywania plików przyrównać można do
prymitywnego systemu zarządzania tekstem źródłowym programów. Mimo swojej
prostoty system działa.
Inną praktyczną zasadą jest dodawanie na początku nazwy pliku przynajmniej
jednej litery, identyfikującej projekt, którego plik dotyczy. Pliki należące do
danego projektu wyglądają wówczas podobnie i łatwiej jest nimi zarządzać.
Wszystkie pliki należące na przykład do „systemu zarządzania wynajmem
i konserwacją” ( Rental Maintanance Management System ), budowanego w części
„Tutorial” niniejszej książki, noszą nazwy rozpoczynające się literą R.
Po literze, identyfikującej projekt, można wpisać od trzech do sześciu znaków
opisujących ogólne przeznaczenie pliku. Jeżeli plik nie ma poza tym żadnego
szczególnego przeznaczenia, to można je scharakteryzować przy pomocy
wszystkich sześciu znaków, pozostających do dyspozycji przed numerem kolejnym
wersji. Jeśli można wyróżnić jakieś szczególne przeznaczenie pliku, to trzy litery
należy poświęcić na symbol ogólnego zastosowania pliku, a trzy kolejne na opis
szczegółowego przeznaczenia. W systemie zarządzania wynajmem i konserwacją
( Rental Maintenance Management ) występuje na przykład plik, który zawiera
fragment programu odpowiedzialny za obsługę okna dialogowego do edycji tabeli
CALLS (zgłoszenia telefoniczne). Plik ten nosi nazwę RCALEDT0 - od „ Rental
maintenance management system ”, okno dialogowe Call Edit .
33670611.006.png
90
Część I
Nazwy modułów
Podobnie jak nazwy plików, tak i nazwy modułów ( units ) mogą być dowolnie
długie, przy czym kompilator rozróżnia nazwy wyłącznie na podstawie pierwszych
63 znaków. Jak już wspomniano, należy unikać nadawania nazw dłuższych niż
ośmioznakowe. Na podstawie nazwy modułu Delphi tworzy odpowiednią nazwę
dla pliku PAS, dlatego nadanie modułowi nazwy dłuższej niż ośmioznakowa
spowoduje utworzenie pliku o równie długiej nazwie.
Nazwy komponentów
Ponieważ nie występuje bezpośrednia relacja między nazwami plików a nazwami
komponentów, te ostatnie powinny być jak najbardziej opisowe - z zastrzeżeniem,
że zbyt długą nazwę będzie trudno wpisywać z klawiatury. Nazwy powinny być
łatwe do wymówienia i dobrane logicznie. Należy także zalecić stosowanie
wnazwach komponentów zarówno dużych, jak imałych liter. Wnazwach
komponentów nie można używać spacji, dlatego najlepszym sposobem oddzielania
słów w nazwie jest rozpoczynanie każdego z nich wielką literą. Wreszcie, zaleca
się rozpoczynanie wszystkich nazw typów w języku Pascal (w tym definicji
komponentów, które formalnie są klasami) dużą literą T. Konwencji tej używają
powszechnie autorzy biblioteki Visual Component Library, dostarczanej
w pakiecie Delphi. Dzięki niej definicje typów bardzo łatwo można wyróżnić
w tekście programu. Na przykład, komponent array table z rozdziału 3, ułatwiający
dostęp do tabel baz danych, nosi nazwę TArrayTable . Litera T wskazuje, że
jest to klasa, zdefiniowana w języku Object Pascal. Opisowa część identyfikatora -
ArrayTable - charakteryzuje przeznaczenie komponentu.
Nadając nazwy komponentom dostarczanym standardowo w pakiecie Delphi,
dobrze jest używać dwu-, trzy- lub czteroliterowego symbolu, zapisywanego
małymi literami i umieszczanego przed właściwą nazwą komponentu. Nazwy
komponentów Memo mogą zatem rozpoczynać się od symbolu me ; nazwy
kontrolek typu Edit rozpoczynałyby się w tej samej konwencji od liter ed .
Pozostała część nazwy ma wtakim wypadku charakter opisowy, np.
edIdKlienta , edCustomer Name lub meKomentarz . W tabeli 4.1 zebrano
skrócone identyfikatory typów komponentów. Stanowią one oczywiście jedynie
sugestię autora. Należy zwrócić uwagę, że na liście występują także klasy Form
(formularze) i Data Module (moduły danych) - ich nazwy również powinny
mieścić się w przyjętej konwencji.
Wszystkie komponenty, reprezentujące pola dialogowe, oznaczone są
dwuliterowym skrótem, po którym następuje znak podkreślenia (_). Tak
skonstruowane nazwy powinny wyróżniać się w tekście programu. Regułą jest
także rozpoczynanie nazw wszystkich kontrolek, związanych z bazami danych, od
litery d . Po niej następuje skrót właściwy dla odpowiedniej standardowej kontrolki,
33670611.001.png
Konwencje
91
na przykład kontrolce Edit odpowiada kontrolka DBEdit , powiązana z bazą danych.
Kontrolki Edit oznacza się symbolem ed , natomiast DBEdit - ded .
Tabela 4.1 Komponenty Delphi i zalecane skróty
Component - Komponent
Abbreviation - Skrót
Animate
an
AutoObject
ao
BitBtn
bb
BatchMove
bm
Bevel
be
BDEProvider
bp
BDEResolver
br
Button
bt
ColorDialog
co_
Calendar
ca
ComboBox
cb
DdeClientConv
cc
ClientDataSet
cd.
DecisionCube
cde
DecisionSource
cds
DecisionGraph
cgp
DecisionGrid
cgr
DecisionPivot
cpi
DecisionQuery
cqu
ColorGrid
cg
Chart
ch
DdeClientItem
ci
CheckBox
ck
Coolbar
co
ClientSocket
cs
ChartFX
cx
33670611.002.png
Zgłoś jeśli naruszono regulamin