[ Pobierz całość w formacie PDF ]
.JeÅ›li przystÄ™pujemy do prac nad projektem, w którym wszelkie zmiany budzÄ…niechęć i opór pozostaÅ‚ych czÅ‚onków zespoÅ‚u, gdzie każda modyfikacja możeuniemożliwić funkcjonowanie piÄ™ciu innych elementów, warto przypomnieć62 uð RozdziaÅ‚ 2.Postawa pragmatycznasobie koszmar sterowania helikopterem.Projekt prawdopodobnie nie zostaÅ‚ za-projektowany i nie jest kodowany zgodnie z zasadÄ… ortogonalnoÅ›ci.Najwyższy czasprzystÄ…pić do refaktoryzacji.A jeÅ›li pilotujemy Å›migÅ‚owiec, powinniÅ›my unikać nadmiernej liczby ryb&Pokrewne podrozdziaÅ‚ylð PrzekleÅ„stwo powielania w rozdziale 2.lð Kontrola kodu zródÅ‚owego w rozdziale 3.lð Projektowanie kontraktowe w rozdziale 4.lð Izolacja i prawo Demeter w rozdziale 5.lð Metaprogramowanie w rozdziale 5.lð To tylko widok w rozdziale 5.lð Refaktoryzacja w rozdziale 6.lð Kod Å‚atwy do testowania w rozdziale 6.lð ZÅ‚e kreatory w rozdziale 6.lð Pragmatyczne zespoÅ‚y w rozdziale 8.lð Pisanie przede wszystkim w rozdziale 8.Wyzwanialð Warto przestudiować różnice dzielÄ…ce wielkie narzÄ™dzia z graficznym in-terfejsem użytkownika (tworzone zwykle dla systemu Windows) i niewiel-kie, ale zÅ‚ożone narzÄ™dzia uruchamiane z poziomu wiersza poleceÅ„.Któreprogramy sÄ… bardziej ortogonalne? Dlaczego? Który rodzaj programów jestÅ‚atwiejsze w użyciu z perspektywy osoby zainteresowanej oryginalnymprzeznaczeniem tych produktów? Który zbiór programów można Å‚atwiejÅ‚Ä…czyć z innymi narzÄ™dziami z myÅ›lÄ… o nowych wyzwaniach?lð JÄ™zyk C++ obsÅ‚uguje wielokrotne dziedziczenie, natomiast Java oferujemożliwość implementowania wielu interfejsów przez jednÄ… klasÄ™.Jaki jestwpÅ‚yw tych rozwiÄ…zaÅ„ na ortogonalność kodu, w którym sÄ… stosowane?Czy wpÅ‚yw stosowania wielokrotnego dziedziczenia jest inny niż wpÅ‚ywimplementowania wielu interfejsów? Czy w tym kontekÅ›cie stosowaniedelegacji różni siÄ™ od stosowania dziedziczenia?wiczenia1.Czytelnik pisze klasÄ™ nazwanÄ… Split i odpowiedzialnÄ… za podziaÅ‚ wierszy da- Patrzodpowiedz 1.nych wejÅ›ciowych na dwa pola.Która z poniższej pary sygnatur klas Javyw dodatku B.w wiÄ™kszym stopniu speÅ‚nia warunek ortogonalnoÅ›ci?class Split1 {public Split1(InputStreamReader rdr) {.public void readNextLine() throws IOException {.public int numFields() {.Odwracalność tð 63public String getField(int fieldNo) {.}class Split2 {public Split2(String line) {.public int numFields() {.public String getField(int fieldNo) {.}2.Które okna dialogowe zapewniajÄ… wiÄ™kszÄ… ortogonalność: modalne czy nie- Patrzodpowiedz 2.modalne?w dodatku B.3.Jakie sÄ… w tym kontekÅ›cie różnice dzielÄ…ce jÄ™zyki proceduralne od jÄ™zyków Patrzodpowiedz 3.obiektowych? Które jÄ™zyki umożliwiajÄ… tworzenie bardziej ortogonalnychw dodatku B.systemów?9 OdwracalnośćNie ma niczego bardziej niebezpiecznego niż idea, jeÅ›li to wszystko, co mamy.Emil-Auguste Chartier, Propos sur la religion, 1938Inżynierowie lubujÄ… siÄ™ w prostych, pojedynczych rozwiÄ…zaniach problemów.Testy matematyczne, które umożliwiajÄ… stwierdzenie z caÅ‚Ä… pewnoÅ›ciÄ…, że x = 2,sÄ… dużo wygodniejsze i bardziej atrakcyjne od nieÅ›cisÅ‚ych, mÄ™tnych rozpraw natemat niezliczonych przyczyn rewolucji francuskiej.Menedżerowie w tej kwestiiwykazujÄ… zadziwiajÄ…cÄ… zgodność z inżynierami pojedyncze, proste odpowiedzidużo lepiej prezentujÄ… siÄ™ w arkuszach kalkulacyjnych i planach projektów.Gdyby tylko rzeczywistość zechciaÅ‚a z nami współpracować! W praktyce nie-rzadko okazuje siÄ™, że x, które dzisiaj ma wartość 2, jutro może mieć wartość 5,by za tydzieÅ„ mieć na przykÅ‚ad wartość 3.Nic nie jest wieczne jeÅ›li zbytmocno uzależniamy dziaÅ‚anie naszego systemu od jakiegoÅ› warunku, możemybyć niemal pewni, że warunek ten ulegnie zmianie.Zawsze istnieje wiÄ™cej niż jeden sposób implementacji zaplanowanych mechani-zmów.Co wiÄ™cej, przeważnie istnieje wielu producentów oferujÄ…cych gotowerozwiÄ…zania.JeÅ›li przystÄ™pujemy do prac nad projektem, który przez krótko-wzroczność lidera może być zrealizowany tylko w jeden sposób, może nas spo-tkać niemiÅ‚a niespodzianka
[ Pobierz całość w formacie PDF ]