[ Pobierz całość w formacie PDF ]
.Jednak nawet wówczas, gdy nie ma koniecznoœcispe³nienia okreœlonych wymagañ, warto mieæ œwiadomoœæ ograniczeñ, abyinteligentnie podejœæ do kwestii wspó³dzielenia.Pocz¹tek ramkiPodpowiedŸMacromedia ¿yczy sobie, aby wszystkie przesy³ane do witryny Exchangerozszerzenia zawiera³y w definicji funkcji informacjê o wersji Dreamweavera,dla której s¹ przeznaczone.Ta informacja powinna pojawiæ siê jako komentarzdefiniowanej funkcji, na przyk³ad tak:function resizeBrowserWindow(width,height) { //v3.0Koniec ramkiÆwiczenie 22.13.Testowanie behawioraSkorzystamy teraz z okreœlonych wczeœniej kryteriów, aby poprawiæ utworzony wtym rozdziale behawior Resize Window (jeœli nie masz pe³nej postaci Ÿród³owejtego obiektu, znajdziesz j¹ na do³¹czonym do ksi¹¿ki dysku CD).Przetestuj wstawiany kod.Wstawianym kodem jest w tym przypadku funkcjaJavaScript, która zmienia rozmiary aktualnie wyœwietlanego okna przegl¹darki.Na ile odporny jest ten kod?Zgodnie z O’Reilly JavaScript Reference (dostêp do tych informacji masz w okniepalety Reference), funkcja powinna dzia³aæ w Netscape 4+ i Internet Explorerze(patrz rysunek 22.24).Jeœli chcesz byæ dok³adny, sprawdŸ to, wypróbowuj¹c kodprzy ró¿nych konfiguracjach i kombinacjach przegl¹darka-platforma.My zak³adamyw tym æwiczeniu, ¿e informacje O’Reilly s¹ prawdziwe.Rys.22.24.Okno palety Reference programu Dreamweaver prezentuj¹ce informacje na tematfunkcji resizeTo()Dostosuj odpowiednio behawior.Nic nie poradzisz na brak obs³ugi skryptu wprzegl¹darce Netscape 3, lecz mo¿esz zastanowiæ siê, czy jego degradacja jestwystarczaj¹co elegancka.Jeœli przeprowadzisz test skryptu w Netscape 3,zobaczysz, ¿e przegl¹darka go po prostu ignoruje – bez szkód, bez problemów.Tak w³aœnie wygl¹da elegancka degradacja – nie ma wiêc potrzeby wprowadzaniazmian.Zobacz, co siê stanie, gdy behawior zostanie zastosowany z wartoœciamidomyœlnymi.W swojej obecnej postaci nie ma on zdefiniowanych wartoœcidomyœlnych szerokoœci i wysokoœci.A jeœli u¿ytkownik zastosuje go w³aœnie wten sposób? Wypróbuj sam, a zobaczysz, ¿e wstawiany kod nie jest kompletny:Click me!Najprostszym sposobem ominiêcia tego problemu jest umieszczenie wartoœcidomyœlnych w oknie dialogowym.Zrób to, zmieniaj¹c kod formularza:New width:New height:WprowadŸ zmiany i wypróbuj poprawiony behawior.Teraz w oknie dialogowympowinny pojawiaæ siê wartoœci domyœlne.Przetestuj behawior stosuj¹c nieprawid³owe dane.Zobacz co siê stanie, jeœliwprowadzisz dane nienumeryczne, zera lub pozostawisz pola tekstowe puste, takjak pokazuje rysunek 22.25.Co siê stanie? Ju¿ wiesz, ¿e pozostawienie póltekstowych pustych to niebezpieczna propozycja.Równie niebezpieczne jestwpisanie zer.Wprowadzenia danych nienumerycznych spowoduje wygenerowanie wprzegl¹darce Internet Explorer b³êdu JavaScript i jest zdecydowanie z³ympomys³em.Chyba musisz jakoœ rozwi¹zaæ ten problem.Rys.22.25.Nienumeryczne dane lub zera wprowadzone w oknie dialogowym behawiora ResizeWindow spowoduj¹ przekazanie funkcji niepoprawnych argumentówWprowadŸ w behawiorze zmiany siê uniemo¿liwiaj¹ce wprowadzanie nieprawid³owychdanych.Zmieñ definicjê funkcji applyBehavior() tak, aby przed ka¿dymwstawieniem wywo³ania funkcji, sprawdzana by³a poprawnoœæ wype³nienia pólformularza.W tym przypadku dopuszczalne s¹ jedynie dodatnie liczby ca³kowite.Mo¿esz siê te¿ zastanowiæ, czy dopuszczaæ jako poprawne bardzo du¿e liczby.Wprowadzenie niepoprawnych danych powinno byæ korygowane zast¹pieniem ichwartoœciami domyœlnymi.Procedury kontrolne mo¿esz zaimplementowaæ w kodzieŸród³owym na wiele sposobów – wszystko zale¿y od przyjêtego przez Ciebie stylutworzenia skryptów.Twój finalny kod móg³by wygl¹daæ na przyk³ad tak:function applyBehavior() {var width=document.theForm.width.value;var height=document.theForm.height.value;if (width==”” || width2000 || parseInt(width) != width){width=300;}if (height==”” || height2000 || parseInt(height) != height){height=300;}return”resizeBrowserWindow(“ + width + “,” + height + “)”;}Wypróbuj poprawiony behawior.Co siê teraz stanie, gdy wprowadzisz w okniedialogowym dziwaczne dane (lub nic)? W polach tekstowych powinny zostaæzachowane wartoœci domyœlne (w przypadku naszego æwiczenia s¹ to wartoœci 300 i300).Twój behawior jest teraz odporny – a przynajmniej bardziej odporny ni¿poprzednio.Projekt: testowanie u¿ytecznoœciChocia¿ sam mo¿esz wy³apywaæ b³êdy techniczne, do wyszukiwania b³êdówprojektowych i zwi¹zanych z zastosowaniami najlepiej nadaj¹ siê inni – aszczególnie osoby, które nie maj¹ pojêcia o procesie tworzenia i same siêtworzeniem oprogramowania nie zajmuj¹.Osoby testuj¹ce wersjê beta mog¹ znaleŸæs³abe strony Twojego rozszerzenia – a w takim przypadku czeka Ciê powrót doprocesu uodparniania.Bardziej jednak prawdopodobne, ¿e wska¿¹ wady w samym projekcie.Czy nazwaobiektu lub behawiora jest jasna w takiej postaci, w jakiej pojawia siê w menuoraz jako etykieta? Czy ikona obiektu jest sugestywna i intuicyjna? Czyinterfejs pasuje do interfejsu Dreamweavera? Czy cel rozszerzenia jestoczywisty? Czy spe³nia oczekiwania u¿ytkowników? Czy funkcjonalnoœæ jest bezzastrze¿eñ? Czy rozszerzenie jest u¿yteczne?Jeœli odpowiedŸ na którekolwiek z tych pytañ brzmi „Nie”, musisz poprawiæprojekt.Pocz¹tek ramkiPodpowiedŸNa swoich stronach internetowych Macromedia oferuje zestaw wytycznych, któremaj¹ pomóc Ci w stworzeniu intuicyjnego, funkcjonalnego interfejsu, dobrzepasuj¹cego do interfejsu programu Dreamweaver.Znajdziesz je pod adresemwww.macromedia.com/exchange/dreamweaver (wybierz po³¹czenie Extension Testing wsekcji tematycznej Site Help).W przytaczanym w tym rozdziale kodzie Ÿród³owymstaraliœmy siê stosowaæ do przedstawionych tam wytycznych.Koniec ramkiOpracowanie dokumentacjiCzy myœlisz, ¿e bêdziesz w stanie zapamiêtaæ funkcje danego rozszerzenia iprzypomnisz je sobie po pó³ roku lub po roku? Prawdopodobnie nie.A jeœli Tynie zapamiêtasz, to tym bardziej inni.Zawsze, podkreœlam – zawsze – dokumentujto, co robisz.Rób to dla w³asnego dobra i dobra innych.KomentarzeZawsze zaopatruj kod w komentarze.Macromedia rekomenduje komentowanie kodu –sam wiesz, ¿e tak nale¿y.Komentarze pomog¹ znaleŸæ b³êdy i dokonaæaktualizacji obiektu lub behawiora w przysz³oœci.U³atwi¹ innym korzystanie zTwoich doœwiadczeñ (w przyk³adach pokazanych w tym rozdziale komentarze nieby³y stosowane, abyœ móg³ lepiej zanalizowaæ kod.W rzeczywistym œwieciepojawi³oby siê w nich mnóstwo komentarzy).Pomoc elektronicznaZgodnie z wytycznymi firmy Macromedia, ka¿de rozszerzenie powinno byæzaopatrzone w jak¹œ pomoc elektroniczn¹, dostêpn¹ z poziomu okna dialogowegorozszerzenia.Dreamweaver jest tak skonfigurowany, ¿e u³atwia przygotowanieplików pomocy.Pomoc w oknie dialogowym – jeœli obiekt lub behawior s¹ na tyle proste, ¿ejedno lub dwa zdania ca³kowicie wystarcz¹ jako wyjaœnienie, umieœæ towyjaœnienie w oknie dialogowym
[ Pobierz całość w formacie PDF ]