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