reklama - zainteresowany?

Czysty kod w C++17. Oprogramowanie Å‚atwe w utrzymaniu - Helion

Czysty kod w C++17. Oprogramowanie Å‚atwe w utrzymaniu
Autor: Stephan Roth
Tytuł oryginału: Clean C++: Sustainable Software Development Patterns and Best Practices with C++ 17
TÅ‚umaczenie: Tomasz Walczak
ISBN: 978-83-283-4340-5
stron: 296, Format: 170x230, okładka: miękka
Data wydania: 2018-07-20
Księgarnia: Helion

Cena książki: 59,00 zł

Dodaj do koszyka Czysty kod w C++17. Oprogramowanie Å‚atwe w utrzymaniu

Tagi: C++ - Programowanie

Wzorce i najlepsze praktyki rozwoju Å‚atwego w utrzymaniu oprogramowania w C++17

JÄ™zyk C++ jest wszechstronnym, potężnym jÄ™zykiem programowania, który ma bardzo różne zastosowania. To klasyczne, wciąż udoskonalane i unowoczeÅ›niane narzÄ™dzie. Problemem jednak jest to, że programiÅ›ci piszÄ…cy w C++ dość czÄ™sto majÄ… zÅ‚e nawyki. Nie przestrzegajÄ… zasad manifestu Software Craftsmanship, stosujÄ… okropnÄ… skÅ‚adniÄ™, caÅ‚kowicie ignorujÄ… podstawowe reguÅ‚y prawidÅ‚owego projektowania i pisania oprogramowania, a tworzony przez nich kod, choć czÄ™sto wydajny i szybki, bywa niemal niemożliwy w utrzymaniu.

JeÅ›li chcesz, aby Twój kod C++ staÅ‚ siÄ™ optymalny i zyskaÅ‚ wyższÄ… jakość, powinieneÅ› uważnie przestudiować tÄ™ książkÄ™. Pisanie dobrego kodu oznacza przyjemniejszÄ… i wydajniejszÄ… pracÄ™. Niezależnie od tego, czy dopiero zaczynasz przygodÄ™ z C++, czy jesteÅ› doÅ›wiadczonym deweloperem, znajdziesz w tej publikacji cenne i przydatne informacje dotyczÄ…ce zasad pisania kodu. Akronimy KISS, YAGNI czy DRY zyskajÄ… dla Ciebie nowe znaczenie! Otrzymasz też mnóstwo przydatnych wskazówek odnoszÄ…cych siÄ™ do pisania funkcji, prowadzenia testów, obsÅ‚ugi wyjÄ…tków i bÅ‚Ä™dów, a nawet umieszczania komentarzy w kodzie. Na licznych przykÅ‚adach pokazano, jak pisać zrozumiaÅ‚y, elastyczny, Å‚atwy w konserwacji i wydajny kod w C++.

W książce między innymi:

  • Solidne wyjaÅ›nienie zasad pisania czystego kodu w C++
  • Programowanie funkcyjne i obiektowe
  • Wskazówki dotyczÄ…ce programowania sterowanego testami (Test Driven Development)
  • Wzorce projektowe i idiomy z C++
  • Praktyczne wykorzystanie wzorców projektowych podczas programowania

Czysty kod C++17: elegancja, prostota i moc.

Dodaj do koszyka Czysty kod w C++17. Oprogramowanie Å‚atwe w utrzymaniu

Dodaj do koszyka Czysty kod w C++17. Oprogramowanie Å‚atwe w utrzymaniu

Spis treści

Czysty kod w C++17. Oprogramowanie łatwe w utrzymaniu -- spis treści

O autorze (9)

O recenzencie technicznym (11)

Podziękowania (13)

Rozdział 1. Wprowadzenie (15)

  • Entropia oprogramowania (16)
  • Czysty kod (17)
  • Dlaczego C++? (18)
  • C++11 - poczÄ…tek nowej ery (18)
  • Dla kogo przeznaczona jest ta książka? (19)
  • Konwencje stosowane w tej książce (19)
    • Ramki (20)
    • Uwagi, wskazówki i ostrzeżenia (20)
    • PrzykÅ‚adowy kod (20)
  • Witryna książki i repozytorium z kodem źródÅ‚owym (21)
  • Diagramy UML-a (21)

Rozdział 2. Tworzenie siatki bezpieczeństwa (23)

  • Konieczność przeprowadzania testów (23)
  • Wprowadzenie do testów (25)
  • Testy jednostkowe (26)
  • A co z kontrolÄ… jakoÅ›ci? (28)
  • ReguÅ‚y tworzenia dobrych testów jednostkowych (29)
    • Jakość kodu testów (29)
    • Nazwy testów jednostkowych (29)
    • Niezależność testów jednostkowych (31)
    • Jedna asercja na test (31)
    • Niezależne inicjowanie Å›rodowisk testów jednostkowych (32)
    • Pomijanie testów getterów i setterów (32)
    • Pomijanie testów kodu innych programistów (32)
    • Pomijanie testów zewnÄ™trznych systemów (33)
    • A co zrobić z bazÄ… danych? (33)
    • Nie Å‚Ä…cz kodu testów z kodem produkcyjnym (33)
    • Testy muszÄ… dziaÅ‚ać szybko (36)
    • ZaÅ›lepki (36)

Rozdział 3. Postępuj zgodnie z zasadami (39)

  • Czym sÄ… zasady? (39)
  • Zachowaj prostotÄ™, gÅ‚upku (KISS) (40)
  • Nie bÄ™dziesz tego potrzebować (YAGNI) (40)
  • Nie powtarzaj siÄ™ (DRY) (41)
  • Ukrywanie informacji (41)
  • Wysoka spójność (44)
  • Luźne powiÄ…zanie (46)
  • Nie przesadzaj z optymalizacjÄ… (49)
  • Zasada minimalizowania zaskoczenia (50)
  • ReguÅ‚a harcerza (50)

Rozdział 4. Podstawy czystego C++ (53)

  • Dobre nazwy (54)
    • Nazwy powinny być oczywiste (55)
    • Stosuj nazwy z dziedziny (56)
    • Dobieraj nazwy na odpowiednim poziomie abstrakcji (57)
    • Unikaj nadmiarowoÅ›ci, gdy wymyÅ›lasz nazwÄ™ (58)
    • Unikaj zagadkowych skrótów (58)
    • Unikaj notacji wÄ™gierskiej i przedrostków (59)
    • Unikaj używania tej samej nazwy do różnych celów (60)
  • Komentarze (60)
    • Niech kod opowiada historiÄ™ (60)
    • Nie komentuj oczywistych rzeczy (61)
    • Nie dezaktywuj kodu za pomocÄ… komentarzy (61)
    • Nie pisz komentarzy blokowych (62)
    • Rzadkie scenariusze, w których komentarze sÄ… przydatne (64)
  • Funkcje (67)
    • Jedna rzecz - nie wiÄ™cej! (70)
    • Twórz maÅ‚e funkcje (70)
    • Nazwy funkcji (71)
    • Stosuj nazwy opisujÄ…ce intencje (72)
    • Argumenty i zwracane wartoÅ›ci (72)
    • Liczba argumentów (73)
  • Projekty C++ w dawnym stylu specyficznym dla C (82)
    • PrzedkÅ‚adaj Å‚aÅ„cuchy znaków i strumienie z C++ nad dawne Å‚aÅ„cuchy char* w stylu jÄ™zyka C (82)
    • Unikaj instrukcji printf(), sprintf(), gets() itd. (84)
    • PrzedkÅ‚adaj kontenery z biblioteki standardowej nad proste tablice w stylu jÄ™zyka C (87)
    • Używanie rzutowania z jÄ™zyka C++ zamiast dawnego rzutowania w stylu jÄ™zyka C (89)
    • Unikaj makr (90)

RozdziaÅ‚ 5. Zaawansowane aspekty wspóÅ‚czesnego C++ (93)

  • ZarzÄ…dzanie zasobami (93)
    • Idiom RAII (95)
    • Inteligentne wskaźniki (95)
    • Unikanie bezpoÅ›rednich wywoÅ‚aÅ„ new i delete (100)
    • ZarzÄ…dzanie niezależnymi zasobami (101)
  • Warto siÄ™ czasem gdzieÅ› przenieść (102)
    • Czym jest semantyka przenoszenia? (102)
    • Czym sÄ… l-wartoÅ›ci i r-wartoÅ›ci? (103)
    • Referencje do r-wartoÅ›ci (104)
    • Nie wymuszaj wszÄ™dzie semantyki przenoszenia (106)
    • ReguÅ‚a zera (106)
  • Kompilator to Twój wspóÅ‚pracownik (110)
    • Automatyczna dedukcja typów (110)
    • Obliczenia na etapie kompilacji (113)
    • Szablony zmiennych (115)
  • Nie dopuszczaj do niezdefiniowanych skutków (116)
  • Programowanie z użyciem typów semantycznych (117)
  • Poznaj używane biblioteki (123)
    • Korzystaj z pliku nagÅ‚ówkowego (123)
    • Korzystaj z biblioteki Boost (128)
    • Inne biblioteki, które powinieneÅ› znać (129)
  • PrawidÅ‚owa obsÅ‚uga wyjÄ…tków i bÅ‚Ä™dów (130)
    • Lepiej zapobiegać niż leczyć (130)
    • WyjÄ…tek jest wyjÄ…tkiem - dosÅ‚ownie (134)
    • JeÅ›li nie możesz przywrócić stanu, szybko zamknij program (135)
    • Definiuj specyficzne typy wyjÄ…tków (135)
    • ZgÅ‚aszanie przez wartość i przechwytywanie za pomocÄ… staÅ‚ej referencji (137)
    • Zwracaj uwagÄ™ na wÅ‚aÅ›ciwÄ… kolejność klauzul catch (137)

Rozdział 6. Podejście obiektowe (139)

  • MyÅ›lenie obiektowe (140)
  • Abstrakcja - klucz do opanowania zÅ‚ożonoÅ›ci (141)
  • Zasady poprawnego projektowania klas (141)
    • Twórz niewielkie klasy (141)
    • Zasada jednej odpowiedzialnoÅ›ci (142)
    • Zasada otwarte - zamkniÄ™te (143)
    • Zasada podstawiania Liskov (144)
    • Zasada podziaÅ‚u interfejsu (154)
    • Zasada zależnoÅ›ci acyklicznych (156)
    • Zasada odwracania zależnoÅ›ci (158)
    • Nie rozmawiaj z nieznajomymi (prawo Demeter) (162)
    • Unikaj "anemicznych" klas (166)
    • Mów zamiast pytać (167)
    • Unikaj statycznych skÅ‚adowych klasy (169)

Rozdział 7. Programowanie funkcyjne (171)

  • Czym jest programowanie funkcyjne? (172)
    • Czym jest funkcja? (173)
    • Funkcje czyste i "nieczyste" (174)
  • Programowanie funkcyjne w nowoczesnym C++ (175)
    • Programowanie funkcyjne z użyciem szablonów jÄ™zyka C++ (175)
    • Obiekty podobne do funkcji (funktory) (177)
    • Mechanizm wiÄ…zania i nakÅ‚adki na funkcje (183)
    • Wyrażenia lambda (185)
    • Generyczne wyrażenia lambda (C++14) (187)
  • Funkcje wyższego poziomu (187)
    • Mapowanie, filtrowanie i redukcja (189)
  • Czysty kod w programowaniu funkcyjnym (192)

Rozdział 8. Programowanie sterowane testami (195)

  • Wady zwykÅ‚ych dawnych testów jednostkowych (196)
  • PodejÅ›cie TDD jako rewolucja (197)
    • Proces pracy w TDD (197)
    • TDD na przykÅ‚adzie - kata dotyczÄ…ce liczb rzymskich (200)
  • Zalety TDD (216)
  • Kiedy nie stosować TDD? (217)

Rozdział 9. Wzorce projektowe i idiomy (219)

  • Zasady projektowe a wzorce projektowe (220)
  • Wybrane wzorce i sytuacje, w których warto je stosować (220)
    • Wstrzykiwanie zależnoÅ›ci (221)
    • Adapter (231)
    • Strategia (233)
    • Polecenie (237)
    • Procesor poleceÅ„ (240)
    • Kompozyt (242)
    • Obserwator (245)
    • Fabryka (250)
    • Fasada (252)
    • Klasa Money (253)
    • Obiekt reprezentujÄ…cy specjalny przypadek (obiekt NULL) (256)
  • Czym jest idiom? (260)
    • Przydatne idiomy jÄ™zyka C++ (260)

Dodatek A. Krótki przewodnik po UML-u (271)

  • Diagramy klas (271)
    • Klasa (271)
    • Interfejs (273)
    • Asocjacja (275)
    • Generalizacja (277)
    • Zależność (278)
  • Komponenty (279)
  • Stereotypy (279)

Bibliografia (281)

Skorowidz (285)

Dodaj do koszyka Czysty kod w C++17. Oprogramowanie Å‚atwe w utrzymaniu

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.