X


[ Pobierz całość w formacie PDF ]
.Jeśli to nie będzie dostatecznie łatwe, nikt nie będzietego robił.A jeśli istniejące rozwiązania nie są ponownie używane, ryzykujemypowielanie wiedzy.Pokrewne podrozdziałyl�  Ortogonalność w rozdziale 2.l�  Operowanie na tekście w rozdziale 3.l�  Generatory kodu w rozdziale 3.l�  Refaktoryzacja w rozdziale 6.l�  Pragmatyczne zespoły w rozdziale 8.l�  Wszechobecna automatyzacja w rozdziale 8.l�  Pisanie przede wszystkim w rozdziale 8.8 OrtogonalnośćOrtogonalność jest podstawową koncepcją dla każdego programisty zaintere-sowanego tworzeniem systemów łatwych do zaprojektowania, skonstruowania,przetestowania i rozwijania.Okazuje się jednak, że idea ortogonalności rzadkojest bezpośrednio proponowana studentom.Ortogonalność nierzadko ma postaćniejawnej, ukrytej cechy rozmaitych metod i technik, które poznajemy w trakciestudiów.To błąd.Kiedy programista opanuje sztukę bezpośredniego stosowaniazasady ortogonalności, od razu zauważy poprawę jakości tworzonych przez sie-bie systemów.Czym jest ortogonalność?Ortogonalność to pojęcie zaczerpnięte z geometrii.Dwieproste są ortogonalne, jeśli przecinają się pod kątemprostym (tak jest na przykład w przypadku osi ukła-du współrzędnych).W przypadku wektorów mówi sięo liniowej niezależności.Ruch wzdłuż jednej prostejnie zmienia naszego położenia względem drugiej. 54 u� Rozdział 2.Postawa pragmatycznaW świecie komputerów interesujący nas termin oznacza rodzaj niezależnościlub izolacji.Mówimy, że co najmniej dwa elementy są ortogonalne, jeśli zmianajednego z nich nie wpływa na pozostałe.W dobrze zaprojektowanym systemiekod bazy danych jest ortogonalny względem interfejsu użytkownika  oznaczato, że możemy zmienić ten interfejs bez wpływu na bazę danych oraz wymienićsystem bazy danych na inny bez wpływu na interfejs.Zanim przeanalizujemy korzyści wynikające ze stosowania systemu ortogonal-nego, przeanalizujemy system, który nie jest ortogonalny.System nieortogonalnyOdbywamy turystyczny lot helikopterem w Wielkim Kanionie, gdy nagle pilot,który nierozważnie przejadł się rybą podczas lunchu, blednie i traci przytomność.Na szczęście, w ostatnim odruchu udało mu się ustabilizować maszynę kilka-dziesiąt metrów nad ziemią.Dochodzimy do wniosku, że dzwignia skoku2 sterujewysokością, zatem jej delikatne obniżenie powoduje powolne zbliżanie się doziemi.Kiedy jednak sami spróbowaliśmy, szybko odkryliśmy, że życie jest bardziejskomplikowane.Nos helikoptera pochylił się, a cała maszyna zaczęła coraz szyb-ciej obracać się w lewo.Nagle odkrywamy, że w systemie sterowania śmigłowcemkażdy ruch przyrządem prowadzi do jakichś skutków ubocznych.Obniżenie dzwi-gni trzymanej lewą ręką wymaga korekty położenia drążka trzymanego w prawejdłoni i lekkiego dociśnięcia prawego pedału.Co więcej, każda z tych zmian ponow-nie wpływa na wszystkie pozostałe przyrządy.%7łonglujemy więc niewiarygodniezłożonym systemem, w którym każda, nawet najdrobniejsza modyfikacja wpływana wszystkie pozostałe elementy.Obciążenie, jakiemu jesteśmy poddawani, jestwprost niewiarygodne  nasze dłonie i stopy stale zmieniają położenie przyrzą-dów, próbując reagować na te wszystkie wzajemnie oddziałujące siły.Sterowanie helikopterem z pewnością nie jest systemem ortogonalnym.Zalety ortogonalnościJak pokazuje przykład helikoptera, systemy nieortogonalne są z natury rzeczybardziej wymagające zarówno w kontekście zmian, jak i zwykłego sterowania.Kiedy komponenty systemu są powiązane silnymi, wzajemnymi zależnościami,nie może być mowy o takich rozwiązaniach jak lokalne poprawki.2Do sterowania helikopterem służą cztery podstawowe przyrządy.W prawej dłoni pilottrzyma drążek sterowy (do tzw.sterowania okresowego).Zmiana położenia tego drążkapowoduje ruch helikoptera w odpowiednim kierunku.W lewej ręce pilot trzyma dzwignięskoku.Pociągnięcie tej dzwigni do góry powoduje zwiększenie kąta natarcia wszystkichłopat wirnika i  tym samym  wygenerowanie większej siły nośnej.Na końcu dzwigniskoku znajduje się przyrząd do sterowania obrotami silnika.I wreszcie, pilot dysponujedwoma pedałami sterującymi kątem natarcia wirnika ogonowego i ułatwiającymi obrótśmigłowca wokół osi pionowej. Ortogonalność t� 55WSKAZ�WKA NR 13Należy eliminować wzajemny wpływ niepowiązanych elementów.Chcemy projektować autonomiczne komponenty, czyli niezależne byty tworzonez myślą o jednym, precyzyjnie zdefiniowanym celu (Yourdon i Constantineokreślają tę cechę mianem spójności [YC86]).Jeśli poszczególne komponentysą od siebie odizolowane, możemy być pewni, że zmiana jednego z nich nie będziewymagała troski o pozostałe.Dopóki nie zmieniamy interfejsów zewnętrznychnaszych komponentów, możemy być pewni, że wprowadzane modyfikacje niespowodują problemów ujawniających się w różnych częściach systemu.Pisanie ortogonalnych systemów ma dwie podstawowe zalety: poprawia pro-duktywność i ogranicza ryzyko.Wyższa produktywnośćl� Zmiany są ściśle związane z konkretnymi miejscami, zatem czas wytwa-rzania i testowania można znacznie skrócić.Pisanie stosunkowo nie-wielkich, autonomicznych komponentów jest nieporównanie prostszeod tworzenia jednego wielkiego bloku kodu.Proste komponenty po za-projektowaniu, zakodowaniu i poddaniu testom jednostkowym można poprostu zapomnieć  nie ma potrzeby ustawicznego modyfikowania ist-niejącego kodu przy okazji dodawania nowych elementów.l� Model ortogonalny dodatkowo zwiększa możliwości wielokrotnego stoso-wania tych samych rozwiązań.Jeśli komponenty mają przypisane kon-kretne, precyzyjnie zdefiniowane obszary odpowiedzialności, można jez powodzeniem łączyć z nowymi komponentami, stosując techniki, o któ-rych twórcy oryginału nawet nie pomyśleli.Im luzniejsze będą związkiw naszych systemach, tym prostsze będzie ich ponowne konfigurowaniei rekonstruowanie [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • necian.htw.pl
  • Drogi użytkowniku!

    W trosce o komfort korzystania z naszego serwisu chcemy dostarczać Ci coraz lepsze usługi. By móc to robić prosimy, abyś wyraził zgodę na dopasowanie treści marketingowych do Twoich zachowań w serwisie. Zgoda ta pozwoli nam częściowo finansować rozwój świadczonych usług.

    Pamiętaj, że dbamy o Twoją prywatność. Nie zwiększamy zakresu naszych uprawnień bez Twojej zgody. Zadbamy również o bezpieczeństwo Twoich danych. Wyrażoną zgodę możesz cofnąć w każdej chwili.

     Tak, zgadzam siÄ™ na nadanie mi "cookie" i korzystanie z danych przez Administratora Serwisu i jego partnerów w celu dopasowania treÅ›ci do moich potrzeb. PrzeczytaÅ‚em(am) PolitykÄ™ prywatnoÅ›ci. Rozumiem jÄ… i akceptujÄ™.

     Tak, zgadzam siÄ™ na przetwarzanie moich danych osobowych przez Administratora Serwisu i jego partnerów w celu personalizowania wyÅ›wietlanych mi reklam i dostosowania do mnie prezentowanych treÅ›ci marketingowych. PrzeczytaÅ‚em(am) PolitykÄ™ prywatnoÅ›ci. Rozumiem jÄ… i akceptujÄ™.

    Wyrażenie powyższych zgód jest dobrowolne i możesz je w dowolnym momencie wycofać poprzez opcję: "Twoje zgody", dostępnej w prawym, dolnym rogu strony lub poprzez usunięcie "cookies" w swojej przeglądarce dla powyżej strony, z tym, że wycofanie zgody nie będzie miało wpływu na zgodność z prawem przetwarzania na podstawie zgody, przed jej wycofaniem.