[ 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 ]