X


[ Pobierz całość w formacie PDF ]
.l� Nie należy kodować po omacku.Próba budowy aplikacji, której do końcanie rozumiemy, lub użycia technologii, której dobrze nie znamy, jest jakzaproszenie do nieporozumień wynikających z przypadkowych zbiegówokoliczności.l� Należy postępować według planu niezależnie od tego, czy jest to planw naszej głowie, zapisany na serwetce, czy wielki wydruk uzyskany zapomocą narzędzia CASE.l� Należy opierać się na tym, co niezawodne.Nie powinniśmy uzależniaćnaszych rozwiązań od przypadków ani założeń.Jeśli nie potrafimy roz-strzygnąć jakichś kwestii, powinniśmy zakładać najgorszy scenariusz.l� Należy dokumentować założenia.Propozycje zawarte w podrozdziale Projektowanie kontraktowe w rozdziale 4.mogą nam ułatwić zarównoprecyzyjne opisywanie założeń rodzących się w naszych umysłach, jaki komunikowanie tych założeń innym.l� Samo testowanie kodu nie wystarczy  należy jeszcze testować przyj-mowane założenia.Nie powinniśmy zgadywać, tylko sprawdzać.Należyzapisywać asercje niezbędne do testowania naszych założeń (patrz pod-rozdział  Programowanie asertywne w rozdziale 4.).Jeśli stosowaneasercje będą prawidłowe, będziemy dodatkowo dysponowali lepszą do-kumentacją swojego kodu.Jeśli w ten sposób odkryjemy, że jakieś zało-żenie było błędne, możemy mówić o dużym szczęściu. 192 u� Rozdział 6.Kiedy kodujemy&l� Należy nadawać priorytety swoim wysiłkom.Warto poświęcić swój czasna najważniejsze aspekty, które najczęściej stanowią najtrudniejsze ele-menty tworzonego systemu.Jeśli fundamenty lub infrastruktura naszegoprojektu nie są prawidłowe, nawet najlepsze dodatki i dekoracje okażąsię zupełnie nieistotne.l� Nie możemy być niewolnikami historii.Nie możemy pozwolić, aby istnie-jący kod dyktował nam, jak tworzyć kod w przyszłości.Cały dotychcza-sowy kod można zastąpić, jeśli przestał spełniać nasze oczekiwania.Na-wet w ramach jednego programu nie powinniśmy dopuszczać do sytuacji,w której dotychczasowe rozwiązania wymuszają kierunki dalszych działań musimy być gotowi na refaktoryzację (patrz podrozdział  Refaktory-zacja w dalszej części tego rozdziału).Ta decyzja może mieć istotnywpływ na harmonogram prac nad projektem.Zakładamy jednak, że jejnegatywny wpływ na czas realizacji projektu będzie mniejszy niż kosztzaniechania zmian1.Kiedy więc następnym razem coś będzie sprawiało wrażenie prawidłowego, alenie będziemy wiedzieli dlaczego, koniecznie powinniśmy upewnić się, że niemamy do czynienia z koincydencją.Pokrewne podrozdziałyl�  Zupa z kamieni i gotowane żaby w rozdziale 1.l�  Diagnozowanie w rozdziale 3.l�  Projektowanie kontraktowe w rozdziale 4.l�  Programowanie asertywne w rozdziale 4.l�  Związki czasowe w rozdziale 5.l�  Refaktoryzacja w rozdziale 6.l�  Pisanie przede wszystkim w rozdziale 8.wiczenia31.Czy potrafisz wskazać jakieś koincydencje w poniższym fragmencie kodu Patrzodpowiedz 31.języka C? Przyjmij, że przytoczony fragment jest głęboko ukryty w funkcjiw dodatku B.jednej z bibliotek.fprintf(stderr,"Błąd, kontynuować?");gets(buf);32.Ten fragment kodu języka C może działać przez pewien czas na niektórych Patrzodpowiedz 32.komputerach.Niedługo potem może być bezużyteczny.Gdzie popełnionow dodatku B.błąd?1W tej sprawie można też zabrnąć za daleko.Znaliśmy kiedyś programistę, który zde-cydował się przepisać cały przekazany mu kod zródłowy, ponieważ był niezgodny z jegokonwencjami nazewniczymi. Szybkość algorytmu t� 193/* Obcina łańcuch do jego ostatnich maxlen znaków.*/void string_tail(char *string, int maxlen) {int len = strlen(string);if (len > maxlen) {strcpy(string, string + (len - maxlen));}}33.Ten kod zaczerpnięto z uniwersalnego pakietu śledzenia programów Javy.Patrzodpowiedz 33.Poniższa funkcja zapisuje łańcuch w pliku dziennika.Funkcja przechodziw dodatku B.co prawda test jednostkowy, ale nie działa prawidłowo, kiedy jest wywoły-wana przez pewnego programistę aplikacji internetowych.Na jakiej koincy-dencji oparli się twórcy tej funkcji?public static void debug(String s) throws IOException {FileWriter fw = new FileWriter("debug.log", true);fw.write(s);fw.flush();fw.close();}32 Szybkość algorytmuW podrozdziale  Szacowanie w rozdziale 2 [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • higrostat.htw.pl
  •