158660
Book
In basket
Proces budowy oprogramowania (35) Budowa oprogramowania (37) Czym jest budowa oprogramowania (37) Znaczenie procesu budowy oprogramowania (40) Jak korzystać z tej książki (41) Metafory procesu programowania (43) Znaczenie metafor (43) Jak korzystać z metafor w programowaniu (46) Popularne metafory programowania (47) Przed programowaniem - przygotowania (57) Przygotowania i ich znaczenie (58) Określanie rodzaju budowanego oprogramowania (65) Definicja problemu (70) Określenie wymagań (72) Architektura (77) Ilość czasu poświęcanego na przygotowania (89) Kluczowe decyzje konstrukcyjne (95) Wybór języka programowania (95) Konwencje programowania (100) Twoje położenie na fali technologii (101) Wybór podstawowych praktyk programowania (103) Pisanie dobrego kodu (107) Projektowanie (109) Podstawowe problemy projektowania (110) Podstawowe pojęcia projektowania (113) Heurystyki - narzędzia projektanta (122) Techniki projektowania (146) Uwagi o popularnych metodykach pracy (155) Klasy z klasą (161) Abstrakcyjne typy danych (162) Dobry interfejs klasy (169) Problemy projektowania i implementacji (179) Przesłanki dla utworzenia klasy (188) Specyfika języka (192) Pakiety klas (192) Procedury wysokiej jakości (197) Przesłanki utworzenia procedury (200) Projektowanie na poziomie procedur (204) Dobra nazwa procedury (207) Jak długa może być procedura? (209) Jak używać parametrów procedur (211) Używanie funkcji (217) Makra i procedury inline (218) Programowanie defensywne (223) Zabezpieczanie programu przed niewłaściwymi danymi wejściowymi (224) Asercje (225) Mechanizmy obsługi błędów (230) Wyjątki (234) Ograniczanie zasięgu szkód powodowanych przez błędy (239) Kod wspomagający debugowanie (241) Ilość kodu defensywnego w wersji finalnej (245) Defensywne podejście do programowania defensywnego (246) Proces Programowania w Pseudokodzie (251) Budowanie klas i procedur krok po kroku (251) Pseudokod dla zaawansowanych (253) Budowanie procedur metodą PPP (256) Alternatywy dla pseudokodu (269) Zmienne (273) Zmienne w programie (275) Podstawowa wiedza o danych (276) Deklarowanie zmiennych (277) Inicjalizowanie zmiennych (278) Zakres (282) Trwałość (289) Czas wiązania (290) Związek między typami danych i strukturami sterowania (292) Jedno przeznaczenie każdej zmiennej (293) Potęga nazwy zmiennej (297) Wybieranie dobrej nazwy (297) Nazwy a rodzaje danych (303) Potęga konwencji nazw (308) Nieformalne konwencje nazw (310) Standardowe prefiksy (317) Nazwy krótkie a czytelne (319) Nazwy, których należy unikać (322) Podstawowe typy danych (327) Liczby (327) Liczby całkowite (329) Liczby zmiennoprzecinkowe (331) Znaki i ciągi znakowe (333) Zmienne logiczne (336) Typy wyliczeniowe (338) Stałe nazwane (343) Tablice (345) Tworzenie własnych typów (aliasy) (346) Inne typy danych (355) Struktury (355) Wskaźniki (359) Dane globalne (371) Instrukcje (383) Struktura kodu liniowego (385) Instrukcje, które wymagają określonej kolejności (385) Instrukcje, których kolejność nie ma znaczenia (388) Instrukcje warunkowe (393) Instrukcje if (393) Instrukcje case (398) Pętle (405) Wybieranie rodzaju pętli (405) Sterowanie pętlą (410) Łatwe tworzenie pętli - od wewnątrz (422) Pętle i tablice (424) Nietypowe struktury sterowania (427) Wiele wyjść z procedury (427) Rekurencja (429) Instrukcja goto (434) Nietypowe struktury sterowania z perspektywy (444) Metody oparte na tabelach (449) Metody oparte na tabelach - wprowadzenie (449) Tabele o dostępie bezpośrednim (451) Tabele o dostępie indeksowym (462) Tabele o dostępie schodkowym (464) Inne metody wyszukiwania w tabelach (467) Ogólne problemy sterowania (469) Wyrażenia logiczne (469) Instrukcje złożone (bloki) (480) Instrukcje puste (481) Praca z głębokimi zagnieżdżeniami (482) Programowanie strukturalne (490) Struktury sterujące i złożoność (493) Sprawna praca z kodem (497) Jakość oprogramowania (499) Składowe jakości (499) Metody podwyższania jakości (502) Skuteczność metod podwyższania jakości (505) Kiedy przeprowadzać kontrolę jakości (509) Ogólna Zasada Jakości Oprogramowania (509) Programowanie zespołowe (513) Przegląd metod programowania zespołowego (514) Programowanie w parach (517) Formalne inspekcje (519) Inne metody programowania zespołowego (526) Testowanie (533) Rola testów programisty (534) Zalecane podejście do testów programisty (537) Praktyczne techniki testowania (539) Typowe błędy (550) Narzędzia wspomagające testowanie (556) Usprawnianie testów (561) Gromadzenie informacji o testach (563) Debugowanie (569) Wprowadzenie (569) Wyszukiwanie defektu (574) Usuwanie defektu (585) Debugowanie a psychologia (588) Narzędzia debugowania - oczywiste i mniej oczywiste (591) Refaktoryzacja (597) Ewolucja oprogramowania i jej odmiany (598) Refaktoryzacje - wprowadzenie (599) Wybrane refaktoryzacje (605) Bezpieczne przekształcanie kodu (613) Strategie refaktoryzacji (615) Strategie optymalizacji kodu (621) Wydajność kodu (622) Optymalizowanie kodu (625) Rodzaje otyłości i lenistwa (632) Pomiary (637) Iterowanie (639) Strategie optymalizacji kodu - podsumowanie (640) Metody optymalizacji kodu (645) Struktury logiczne (646) Pętle (651) Przekształcenia danych (660) Wyrażenia (665) Procedury (674) Reimplementacja w języku niskiego poziomu (675) Im bardziej świat się zmienia, tym więcej zostaje bez zmian (677) Środowisko programowania (681) Jak rozmiar programu wpływa na jego budowę (683) Wielkość projektu a komunikacja (684) Skala rozmiarów projektów (684) Wpływ wielkości projektu na liczbę błędów (685) Wpływ wielkości projektu na efektywność pracy (687) Wpływ wielkości projektu na wykonywaną pracę (687) Zarządzanie w programowaniu (695) Zachęcanie do budowy dobrego kodu (696) Zarządzanie konfiguracją (698) Budowanie harmonogramu (705) Pomiary (712) Ludzkie traktowanie programistów (715) Współpraca z przełożonymi (721) Integracja (725) Znaczenie metod integracji (725) Częstość integracji - końcowa czy przyrostowa? (727) Przyrostowe strategie integracji (730) Codzienna kompilacja i test dymowy (738) Narzędzia programowania (747) Narzędzia do projektowania (748) Narzędzia do pracy z kodem źródłowym (748) Narzędzia do pracy z kodem wykonywalnym (754) Środowiska narzędzi programowania (758) Budowanie własnych narzędzi (759) Narzędzia przyszłości (761) Rzemiosło programisty (765) Układ i styl (767) Techniki formatowania (774) Style formatowania (776) Formatowanie struktur sterujących (782) Formatowanie instrukcji (789) Formatowanie komentarzy (800) Formatowanie procedur (802) Formatowanie klas (804) Kod, który opisuje się sam (813) Zewnętrzna dokumentacja programu (813) Styl programowania jako dokumentacja (814) Komentować czy nie komentować (817) Zasady pisania dobrych komentarzy (821) Metody pisania komentarzy (828) Normy IEEE (849) Cechy charakteru (855) Czy osobowość jest bez znaczenia? (856) Inteligencja i skromność (857) Ciekawość (858) Uczciwość intelektualna (862) Komunikacja i współpraca (865) Kreatywność i dyscyplina (865) Lenistwo (866) Cechy, które znaczą mniej, niż myślisz (867) Nawyki (869) Powracające wątki - przegląd (873) Walka ze złożonością (873) Wybierz swój proces (875) Pisz programy dla ludzi, nie tylko dla komputerów (877) Programuj do języka, a nie w nim (879) Konwencje jako pomoc w koncentracji uwagi (880) Programowanie w kategoriach dziedziny problemu (881) Uwaga, spadające odłamki! (884) Iteruj, iteruj i jeszcze raz iteruj (886) Nie będziesz łączył religii z programowaniem (887) Gdzie znaleźć więcej informacji (891) Programowanie (892) Szersze spojrzenie na budowę oprogramowania (893) Periodyki (895) Plan czytelniczy programisty (896) Stowarzyszenia zawodowe (898)
Sygnatura czytelni BWEAiI: XII J 70
Media files:
Availability:
Biblioteka WEAiI
Copies are only available in the library: sygn. 144821 N (1 egz.)
Notes:
Tytuł oryginału: Code complete, 2004
General note
Wydanie 2. odnosi się do oryginału. Na grzbiecie: Dobre praktyki.
Bibliography, etc. note
Bibliografia, netografia na stronach 899-917. Indeks.
The item has been added to the basket. If you don't know what the basket is for, click here for details.
Do not show it again

Deklaracja dostępności