Niezawodność oprogramowania
Book information
Description
To właśnie programista może w znacznym stopniu przyczynić się do tego, iż wykrywanie błędów i walka z nimi staną się zadaniami łatwiejszymi i bardziej skutecznymi -- tę właśnie tezę Autor stara się udowodnić w niniejszej książce, ilustrując swe wywody konkretnymi przykładami. Niektóre ze wskazówek i zaleceń zawartych w treści niniejszej książki sprzeciwiają się wielu powszechnie przyjętym praktykom programowania i jako takie prowokować mogą do stwierdzeń w rodzaju "nikt tak nie pisze" lub "wszyscy łamią tę regułę". Warto wówczas zastanowić się nad przyczyną -- jeżeli "nikt tak nie pisze", to dlaczego? Czy przypadkiem stare nawyki nie okazują się silniejsze od racjonalności? Odpowiedź na te i inne pytania Czytelnik znajdzie w tej książce. Przedmowa do wydania polskiego (9) Wstęp (15) Dwa najważniejsze pytania (16) Nazewnictwo (17) Rozdział 1. Hipotetyczny kompilator (21) Poznaj swój język programowania (23) Pożyteczne Narzędzie - Lint (27) To tylko kosmetyczne zmiany (27) Nigdy więcej błędów (28) Rozdział 2. Sprawdzaj samego siebie (31) Przypowieść o dwóch wersjach (32) Asercje (33) "Niezdefiniowane" oznacza "nieprzewidywalne" (36) Zagadkowe asercje (37) Kompatybilność kontrolowana (39) Gdy niemożliwe staje się możliwe (43) Nic o nas bez nas (45) Co dwa algorytmy, to nie jeden (48) Usuwaj błędy jak najwcześniej (52) Rozdział 3. Ufortyfikuj swoje podsystemy (59) Jest błąd, nie ma błędu (60) Zutylizuj swoje śmieci (62) Jestem już gdzie indziej (66) Kontroluj wykorzystanie pamięci (69) Spójrz na to, czego nie widać (72) Wybieraj rozsądnie (76) Szybki czy bezbłędny (77) Teraz lub później (77) Rozdział 4. Jak wykonuje się Twój kod (81) Uwiarygodnij swój kod (82) Przetestuj wszystkie rozgałęzienia (83) Żywotne znaczenie przepływu danych (85) Czy czegoś nie przeoczyłeś (87) Spróbuj, a polubisz (88) Rozdział 5. Niekomunikatywne interfejsy (91) getchar() zwraca liczbę, nie znak (92) realloc() a gospodarka pamięcią (94) Uniwersalny menedżer pamięci (96) Nieprecyzyjne parametry (98) Fałszywy alarm (101) Czytanie pomiędzy wierszami (103) Ostrzegaj przed niebezpieczeństwem (105) Diabeł tkwi w szczegółach (108) Rozdział 6. Ryzykowny biznes (111) int intowi nierówny (112) Nadmiar i niedomiar (116) "Projekt" czy "prawie projekt" (118) Po prostu robią, co do nich należy (120) Przecież to to samo (124) ?: to także if (125) Precz z redundancją (128) Wysokie ryzyko, bez odwrotu (129) Przeklęta niespójność (133) Nie przypisuj zmiennym informacji diagnostycznych (135) Nie warto ryzykować (137) Rozdział 7. Dramaturgia rzemiosła (141) Szybkość, szybkość (142) Złodziej otwierający zamek kluczem nie przestaje być złodziejem (144) Każdemu według potrzeb (146) Nie uzewnętrzniaj prywatnych informacji (148) Funkcje-pasożyty (150) Programistyczne śrubokręty (153) Syndrom APL (155) Bez udziwnień, proszę (156) Na śmietnik z tymi wszystkimi trikami (158) Rozdział 8. Reszta jest kwestią nawyków (163) Hokus-pokus, nie ma błędu (163) Zrób dziś, co masz zrobić jutro (165) Doktora!!! (166) Jeśli działa, nie poprawiaj (167) Funkcja z wozu, koniom lżej (169) Elastyczność rodzi błędy (169) Spróbuj (171) Święty Harmonogram (172) "Tester" - nazwa w sam raz dla testera (173) Programista zawinił, testera powiesili (175) Zdefiniuj swe priorytety (176) Epilog (181) Dodatek A Lista kontrolna kodowania (183) Dodatek B Podprogramy zarządzania pamięcią (189) Dodatek C Odpowiedzi (197) Skorowidz (225)
Similar books
编程精粹: Microsoft编写优质无错C程序秘诀
1993 · PDF
The SAGE Handbook of Complexity and Management
2011 · PDF
Constructing Identity in and around Organizations
2012 · PDF
Writing Solid Code: Microsoft's Techniques for Developing Bug-Free C Programs
1993 · PDF
Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams
1994 · PDF
Kwantechizm - elementarz doktrynalny mechaniki kwantowej
Kwintesencja wszystkiego. Dwanaście eksperymentów, które zmieniły nasz świat
2024 · PDF
Pieśń komórek. Nowa epoka medycyny
2024 · PDF