język c++. standardy kodowania. ...

download ^ pdf ^ pobieranie ^ do ściągnięcia ^ ebook

język c++. standardy kodowania. 101 zasad, ebooki

[ Pobierz całość w formacie PDF ]
IDZ DO
PRZYK£ADOW
Jêzyk C++. Standardy kodowania.
101 zasad, wytycznych
i zalecanych praktyk
SPIS TRECI
KATALOG KSI¥¯EK
Autorzy: Herb Sutter, Andrei Alexandrescu
T³umaczenie: Przemys³aw Szeremiota
ISBN: 83-7361-849-X
Tytu³ orygina
Guidelines, and Best Practices
Format: B5, stron: 320
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Czytelny i przejrzysty kod to podstawa sprawnego tworzenia aplikacji. W przypadku
pracy zespo³owej stosowanie wspólnego standardu kodowania to koniecznoæ. Pisanie
kodu w oparciu o okrelone standardy kodowania przyspiesza powstawanie programu,
u³atwia komunikacjê pomiêdzy cz³onkami zespo³u i pozwala na szybkie wdro¿enie
nowych programistów do projektu. Oczywicie, w ka¿dej firmie lub zespole mo¿na
ustaliæ w³asny standard kodowania — wa¿ne jest jednak, aby opiera³ siê na okrelonych
regu³ach, wynikaj¹cych ze specyfiki jêzyka programowania.
Ksi¹¿ka „Jêzyk C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych
praktyk” zawiera opis wspomnianych regu³. Przedstawia zasady pisania kodu
ród³owego i standaryzowania okrelonych zapisów, operacji i sposobów wykorzystania
elementów jêzyka C++. Ka¿da z zasad jest szczegó³owo omówiona i poparta
praktycznymi przyk³adami. Ksi¹¿ka prezentuje najlepsze ze znanych praktyk — zarówno
„starych”, jak i tych, które ca³kiem niedawno uleg³y standaryzacji, oraz opisuje techniki,
o których nie s³yszeli nawet programici z wieloletnim dowiadczeniem.
• Organizacja kodu
• Styl projektowy i styl kodowania
• Skalowalnoæ kodu
• Racjonalna i efektywna obs³uga b³êdów
• Prawid³owe stosowanie elementów jêzyka
• Odpowiednie korzystanie z STL
• Bezpieczeñstwo typów
Usprawnij pracê, stosuj¹c standardy kodowania — gdy za parê miesiêcy bêdziesz
musia³ wróciæ do swoich dzisiejszych programów, przekonasz siê, ¿e by³o warto.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
 Spis treci
Wstp.........................................................................................................................7
Rozdział 1. Kwestie organizacyjne ..............................................................................13
Wytyczna 0. Nie bd małostkowy (czyli czego nie standaryzowa)..........................................14
Wytyczna 1. Dbaj o bezbł"dn kompilacj" przy najwy$szym poziomie ostrze$e% kompilatora..17
Wytyczna 2. Korzystaj z automatycznych systemów kompilacji ................................................20
Wytyczna 3. Korzystaj z systemu kontroli wersji........................................................................22
Wytyczna 4. Nie oszcz"dzaj na wzajemnej rewizji kodu.............................................................24
Rozdział 2. Styl projektowy ........................................................................................27
Wytyczna 5. Jednej jednostce jedno zadanie...............................................................................29
Wytyczna 6. Przede wszystkim poprawno2, prostota i przejrzysto2.........................................31
Wytyczna 7. Jak i kiedy kodowa z uwzgl"dnieniem skalowalno2ci...........................................33
Wytyczna 8. Wystrzegaj si" przedwczesnej optymalizacji..........................................................36
Wytyczna 9. Wystrzegaj si" przedwczesnej pesymizacji.............................................................39
Wytyczna 10. Minimalizuj ilo2 danych globalnych i współu$ytkowanych................................41
Wytyczna 11. Ukrywaj informacje..............................................................................................43
Wytyczna 12. Niepotrzebna rywalizacja to niezdrowa rywalizacja.............................................45
Wytyczna 13. Zagwarantuj opiek" nad zasobami przez obiekty.
Stosuj RAII i inteligentne wskaniki....................................................................49
Rozdział 3. Styl kodowania.........................................................................................53
Wytyczna 14. Lepsze bł"dy kompilacji i konsolidacji od bł"dów czasu wykonania...................54
Wytyczna 15. Nie bój si" stosowania const.................................................................................57
Wytyczna 16. Unikaj makrodefinicji...........................................................................................59
Wytyczna 17. Unikaj „magicznych numerków”..........................................................................62
Wytyczna 18. Zmienne deklaruj najbardziej lokalnie, jak to mo$liwe.........................................64
Wytyczna 19. Ka$da zmienna powinna zosta zainicjalizowana.................................................66
Wytyczna 20. Unikaj rozwlekłych funkcji, wystrzegaj si" gł"bokich zagnie$d$e%.....................69
Wytyczna 21. Unikaj zale$no2ci inicjalizacji w ró$nych jednostkach kompilacji.......................71
  4
Spis tre!ci
Wytyczna 22. Redukuj zale$no2ci definicyjne i unikaj zale$no2ci cyklicznych..........................73
Wytyczna 23. Niech pliki nagłówkowe b"d samowystarczalne.................................................75
Wytyczna 24. Pami"taj o wewn"trznych barierach plików nagłówkowych,
unikaj barier zewn"trznych...................................................................................77
Rozdział 4. Funkcje i operatory...................................................................................79
Wytyczna 25. Parametry przyjmowa odpowiednio — przez warto2,
(inteligentne) wskaniki albo referencje...............................................................80
Wytyczna 26. Zachowuj naturaln semantyk" przeci$anych operatorów..................................82
Wytyczna 27. Preferuj kanoniczne postaci operatorów arytmetycznych i przypisania................84
Wytyczna 28. Preferuj kanoniczne postaci operatorów ++ i -- oraz ich wersje przedrostkowe...86
Wytyczna 29. Przeci$anie w miejsce niejawnej konwersji typów..............................................88
Wytyczna 30. Unikaj przeci$ania operatorów &&, || i operatora , (przecinka)..........................90
Wytyczna 31. Nie uzale$niaj poprawno2ci kodu od kolejno2ci ewaluacji
argumentów wywołania funkcji............................................................................93
Rozdział 5. Projektowanie klas i dziedziczenie.............................................................95
Wytyczna 32. Ustal rodzaj definiowanej klasy............................................................................96
Wytyczna 33. Lepsze klasy minimalistyczne ni$ monolityczne..................................................98
Wytyczna 34. Lepsza kompozycja od dziedziczenia.................................................................100
Wytyczna 35. Nie dziedzicz po klasach, które nie zostały przewidziane jako bazowe..............103
Wytyczna 36. O wy$szo2ci interfejsów abstrakcyjnych............................................................106
Wytyczna 37. Dziedziczenie publiczne daje wymienialno2.....................................................109
Wytyczna 38. Uprawiaj bezpieczne przesłanianie.....................................................................111
Wytyczna 39. Niech metody wirtualne b"d niepublicznymi, a publiczne — niewirtualnymi..114
Wytyczna 40. Unikaj udost"pniania konwersji niejawnych.......................................................117
Wytyczna 41. Składowe klas, z wyjtkiem klas prostych agregatów, powinny by prywatne..120
Wytyczna 42. Nie trwoni tego, co własne................................................................................123
Wytyczna 43. Zachowaj umiar w implementacjach prywatnych...............................................126
Wytyczna 44. Warto polubi zwykłe funkcje — nieskładowe i niezaprzyjanione...................129
Wytyczna 45. Zawsze udost"pniaj komplet: new razem z delete...............................................131
Wytyczna 46. Je2li przeci$a new dla klasy, to porzdnie — z wszystkimi standardowymi
formami operatora...............................................................................................133
Rozdział 6. Konstrukcja, destrukcja i kopiowanie.......................................................135
Wytyczna 47. Porzdek inicjalizacji składowych danych powinien by zgodny
z porzdkiem ich deklaracji................................................................................136
Wytyczna 48. W konstruktorze lepsza inicjalizacja od przypisania...........................................138
Wytyczna 49. Unikaj wywoła% metod wirtualnych w konstruktorach i destruktorach..............140
Wytyczna 50. Destruktory klasy powinny by albo publiczne i wirtualne,
albo niewirtualne i zabezpieczone......................................................................143
Wytyczna 51. Operacje destrukcji, dealokacji i podmiany nigdy nie zawodz..........................146
Wytyczna 52. Usuwaj, co skopiujesz.........................................................................................149
Wytyczna 53. Jawnie udost"pniaj i blokuj kopiowanie.............................................................151
Spis tre!ci
5
Wytyczna 54. Unikaj skrawania obiektów — rozwa$ zastosowanie duplikacji
w miejsce kopiowania w klasach bazowych.......................................................153
Wytyczna 55. Przyzwyczaj si" do kanonicznych implementacji przypisania............................156
Wytyczna 56. Tam, gdzie to zasadne, udost"pniaj bezpieczn (niezgłaszajc wyjtków)
operacj" podmiany..............................................................................................158
Rozdział 7. Moduły i przestrzenie nazw......................................................................161
Wytyczna 57. Typ i nieskładowe funkcje jego interfejsu powinny rezydowa
w tej samej przestrzeni nazw ..............................................................................162
Wytyczna 58. Typy i funkcje, je2li nie s przeznaczone do kooperacji, powinny by
rozmieszczone w oddzielnych przestrzeniach nazw...........................................165
Wytyczna 59. Wystrzegaj si" deklaracji i dyrektyw using w plikach nagłówkowych
i plikach kodu ródłowego przed dyrektyw #include........................................167
Wytyczna 60. Pami" powinna by przydzielana i zwalniana w tym samym module...............171
Wytyczna 61. Nie definiuj w plikach nagłówkowych jednostek podlegajcych
łczeniu zewn"trznemu.......................................................................................173
Wytyczna 62. Nie pozwalaj na propagacj" wyjtków pomi"dzy modułami..............................176
Wytyczna 63. Interfejs modułu powinien korzysta z dostatecznie przeno2nych typów...........179
Rozdział 8. Szablony i programowanie uogólnione......................................................183
Wytyczna 64. Łcz zalety polimorfizmu dynamicznego i statycznego......................................184
Wytyczna 65. Je2li umo$liwia dostosowywanie, to celowo i jawnie.......................................187
Wytyczna 66. Wystrzegaj si" specjalizacji szablonów funkcji..................................................192
Wytyczna 67. Unikaj przypadkowych uszczegółowie% kodu w zamierzeniu uniwersalnego....195
Rozdział 9. Wyj-tki i obsługa błdów ........................................................................197
Wytyczna 68. Asercje 2wietnie dokumentuj wewn"trzne zało$enia i niezmienniki kodu........198
Wytyczna 69. Ustal racjonalne zasady obsługi bł"dów i 2ci2le ich przestrzegaj........................201
Wytyczna 70. Odró$niaj bł"dy od stanów nimi nie b"dcych....................................................204
Wytyczna 71. Projektuj i pisz kod wolny od bł"dów.................................................................208
Wytyczna 72. Bł"dy najlepiej zgłasza za pomoc wyjtków...................................................212
Wytyczna 73. Zgłaszaj warto2ci, przechwytuj referencje..........................................................217
Wytyczna 74. Bł"dy trzeba wła2ciwie sygnalizowa, obsługiwa i tłumaczy..........................219
Wytyczna 75. Unikaj specyfikacji wyjtków.............................................................................221
Rozdział 10. Kontenery STL......................................................................................225
Wytyczna 76. Domy2lnie stosuj kontener vector. Inne dobieraj odpowiednio do potrzeb.........226
Wytyczna 77. Stosuj vector w miejsce tablic.............................................................................229
Wytyczna 78. W wymianie danych z interfejsami spoza C++ stosuj vector (i string::c_str).....231
Wytyczna 79. W kontenerach najlepiej przechowywa albo warto2ci,
albo inteligentne wskaniki do nich....................................................................233
Wytyczna 80. Sekwencj" najlepiej rozwija metod push_back...............................................235
Wytyczna 81. Od operacji na pojedynczych elementach lepsze s operacje na sekwencjach....237
Wytyczna 82. Do faktycznego przycinania kontenerów i faktycznego usuwania elementów
najlepiej stosowa sprawdzone idiomy...............................................................239
6
Spis tre!ci
Rozdział 11. Algorytmy STL......................................................................................241
Wytyczna 83. Korzystaj z udogodnie% kontrolnych implementacji STL...................................242
Wytyczna 84. Algorytmy s lepsze od p"tli...............................................................................245
Wytyczna 85. Wybieraj z STL wła2ciwe algorytmy wyszukiwania..........................................249
Wytyczna 86. Wybieraj z STL odpowiednie algorytmy sortowania..........................................251
Wytyczna 87. Predykaty powinny by funkcjami czystymi......................................................254
Wytyczna 88. W wywołaniach algorytmów miejsce funkcji powinny zajmowa
obiekty funkcyjne...............................................................................................256
Wytyczna 89. Zadbaj o poprawno2 obiektów funkcyjnych......................................................258
Rozdział 12. Bezpiecze3stwo typów..........................................................................261
Wytyczna 90. Zamiast przełczania pomi"dzy typami stosuj polimorfizm...............................262
Wytyczna 91. Polegaj na typach, nie na reprezentacjach...........................................................265
Wytyczna 92. Unikaj rzutowania reinterpret_cast.....................................................................267
Wytyczna 93. Unikaj rzutowania static_cast na wskanikach...................................................269
Wytyczna 94. Zachowuj const przy rzutowaniu........................................................................271
Wytyczna 95. Nie korzystaj z rzutowania znanego z C.............................................................273
Wytyczna 96. Nie wolno brutalnie kopiowa obiektów typów innych ni$ proste POD.............276
Wytyczna 97. Unie nie słu$ do reinterpretacji reprezentacji....................................................278
Wytyczna 98. Nie stosuj zmiennych list argumentów (trzykropków)........................................280
Wytyczna 99. Nie korzystaj z niepoprawnych obiektów i niebezpiecznych funkcji..................282
Wytyczna 100. Nie wykorzystuj tablic polimorficznie..............................................................284
Dodatek A Bibliografia.............................................................................................287
Dodatek B Podsumowanie .......................................................................................295
Skorowidz...............................................................................................................313
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • sportingbet.opx.pl
  • Cytat

    A jeśli komu droga otwarta do nieba, Tym co służą ojczyźnie. Jan Kochanowski (1530-1584)

    Meta