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