Jak pisac przenosny kod Wstep do programowania wieloplatformowego.pdf

(315 KB) Pobierz
Jak pisać przenośny kod. Wstęp do programowania wieloplatformowego
IDZ DO
PRZYK£ADOW Y ROZDZIA£
Jak pisaæ przenoœny kod.
Wstêp do programowania
wieloplatformowego
SPIS TREœCI
KATALOG KSI¥¯EK
KATALOG ONLINE
Autor: Brian Hook
T³umaczenie: Maciej Jezierski
ISBN: 83-246-0625-4
Format: B5, stron: 272
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Przenieœ swoje programy na inne platformy systemowe
Poznaj techniki przenoszenia kodu
Stwórz uniwersalne interfejsy u¿ytkownika
Uwzglêdnij ró¿nice pomiêdzy systemami operacyjnymi
W bran¿y informatycznej ogromny nacisk k³adzie siê na jak najszybsze ukoñczenie
produktu dla konkretnej platformy. Jednak gdy produkt staje siê popularny,
a u¿ytkownicy innych systemów operacyjnych oczekuj¹ od producenta wersji mo¿liwej
do uruchomienia na swoim sprzêcie, wiele firm staje przed powa¿nym problemem. Kod
Ÿród³owy tworzony z myœl¹ o okreœlonym systemie operacyjnym lub procesorze zawiera
elementy bardzo trudne do „prze³o¿enia” na inn¹ platformê. Istniej¹ jednak techniki
programowania, których zastosowanie zdecydowanie u³atwia póŸniejsz¹ konwersjê,
a odpowiednie wykorzystanie nie przed³u¿a czasu przygotowania innej wersji aplikacji.
Czytaj¹c ksi¹¿kê „Jak pisaæ przenoœny kod. Wstêp do programowania
wieloplatformowego”, poznasz te techniki. Znajdziesz tu uniwersalne zasady tworzenia
przenoœnego oprogramowania. Dowiesz siê, jak zaplanowaæ nowy projekt tak, aby jego
przeniesienie na inn¹ platformê nie stanowi³o problemu. Nauczysz siê przerabiaæ
istniej¹cy kod i dostosowywaæ go do specyfiki innych platform. Poznasz sposoby
unikania b³êdów wynikaj¹cych z ró¿nic pomiêdzy platformami. Znajdziesz w tej ksi¹¿ce
tak¿e przyk³ady i wzorce, dziêki którym bêdziesz w stanie tak pisaæ kod, aby
przeniesienie go na inn¹ platformê odbywa³o siê szybko i bez k³opotów.
Planowanie procesu przenoszenia kodu
Techniki wykorzystywane podczas przenoszenia kodu
Systemy kontroli plików Ÿród³owych
Ró¿nice pomiêdzy procesorami
Preprocesory i kompilatory
Tworzenie interfejsów u¿ytkownika
Implementacja operacji sieciowych
Korzystanie z bibliotek dynamicznych
Operacje na systemie plików
Lokalizacja aplikacji
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ONOWOœCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Stwórz uniwersalne programy
400253214.001.png 400253214.002.png 400253214.003.png 400253214.004.png
Spis treści
PRZEDMOWA ........................................................................................... 11
PODZIĘKOWANIA .................................................................................... 15
WPROWADZENIE
SZTUKA TWORZENIA PRZENOŚNEGO OPROGRAMOWANIA ................. 17
Korzyści z przenośności .........................................................................................................18
Części składowe platformy ....................................................................................................20
Problem z założeniami ...........................................................................................................20
Standardy kodowania .............................................................................................................21
Szkielet dla przenośnego programowania ..............................................................................21
1
KONCEPCJE PRZENOŚNOŚCI ................................................................... 23
Przenośność jest stanem umysłu, nie sposobem programowania .........................................24
Rozwijaj dobre przenośne nawyki .........................................................................................24
Dobre nawyki są lepsze od szczegółowej znajomości błędów i standardów ........................25
Planuj przenośność dla nowego projektu ...............................................................................28
Przenoś stary kod ...................................................................................................................33
2
ANSI C I C++ ............................................................................................ 37
Dlaczego nie inny język? .........................................................................................................37
Dialekty C i C++ ..................................................................................................................39
Przenośność C i C++ ...........................................................................................................40
3
TECHNIKI STOSOWANE PODCZAS PRZENOSZENIA ............................... 43
Unikaj nowych funkcjonalności języka ...................................................................................44
Radź sobie ze zmienną dostępnością funkcjonalności ............................................................44
Używaj bezpiecznej serializacji i deserializacji danych ...........................................................48
Dołączaj testowanie .............................................................................................................. 50
Używaj opcji kompilacji ......................................................................................................... 52
Oddziel pliki zależne od platformy od plików przenośnych .................................................. 55
Pisz prosty kod ...................................................................................................................... 55
Używaj unikalnych nazw ........................................................................................................ 56
Implementuj abstrakcje .........................................................................................................58
Programowanie niskopoziomowe ......................................................................................... 74
4
EDYCJA I KONTROLA PLIKÓW ŹRÓDŁOWYCH ........................................81
Różnice w znacznikach końca linii plików tekstowych .......................................................... 82
Przenośne nazwy plików ....................................................................................................... 83
Kontrola plików źródłowych ................................................................................................. 84
Narzędzia do budowania ....................................................................................................... 89
Edytory .................................................................................................................................. 95
Podsumowanie ...................................................................................................................... 95
5
RÓŻNICE POMIĘDZY PROCESORAMI .......................................................97
Wyrównanie .......................................................................................................................... 98
Uporządkowanie bajtów ..................................................................................................... 101
Reprezentacja liczb całkowitych ze znakiem ....................................................................... 108
Rozmiar typów macierzystych ............................................................................................. 108
Przestrzeń adresowa ........................................................................................................... 111
Podsumowanie .................................................................................................................... 112
6
OPERACJE ZMIENNOPRZECINKOWE ......................................................113
Historia liczb zmiennoprzecinkowych ................................................................................. 113
Standardowa obsługa liczb zmiennoprzecinkowych w C i C++ ....................................... 114
Problemy z liczbami zmiennoprzecinkowymi ..................................................................... 115
Obliczenia na liczbach stałoprzecinkowych ......................................................................... 119
Przedstawianie bitowej reprezentacji liczby zmiennoprzecinkowej jako liczby całkowitej 120
Odpytywanie implementacji ................................................................................................ 124
Wyniki powodujące wyjątki ................................................................................................. 126
Formaty przechowywania ................................................................................................... 129
Podsumowanie .................................................................................................................... 130
7
PREPROCESOR ........................................................................................131
Symbole predefiniowane ..................................................................................................... 132
Pliki nagłówkowe ................................................................................................................. 133
Makropolecenia konfiguracyjne ........................................................................................... 136
Kompilacja warunkowa ....................................................................................................... 137
Instrukcja pragma ................................................................................................................ 138
Podsumowanie .................................................................................................................... 139
6
Spis treści
8
KOMPILATORY ....................................................................................... 141
Rozmiar struktury, upakowanie i wyrównanie .....................................................................142
Niespójności w zarządzaniu pamięcią ..................................................................................145
Stos .......................................................................................................................................146
Funkcja printf .......................................................................................................................148
Rozmiary i zachowanie typów .............................................................................................149
Konwencje wywołań ............................................................................................................156
Zwracanie struktur ...............................................................................................................160
Pola bitowe ..........................................................................................................................161
Komentarze ..........................................................................................................................162
Podsumowanie .....................................................................................................................163
9
INTERFEJS UŻYTKOWNIKA ................................................................... 165
Rozwój interfejsów użytkownika .........................................................................................166
Macierzysty interfejs GUI czy interfejs aplikacji? ..................................................................168
Grafika niskopoziomowa ......................................................................................................168
Obsługa dźwięku ..................................................................................................................169
Urządzenia wejściowe .........................................................................................................170
Narzędzia międzyplatformowe ............................................................................................171
Podsumowanie .....................................................................................................................171
10
OBSŁUGA SIECI ....................................................................................... 173
Rozwój protokołów sieciowych ...........................................................................................173
Interfejsy programistyczne ...................................................................................................174
Podsumowanie .....................................................................................................................178
11
SYSTEMY OPERACYJNE .......................................................................... 179
Rozwój systemów operacyjnych ..........................................................................................179
Środowiska goszczące i wolno stojące .................................................................................180
Paradoks przenośności systemu operacyjnego ....................................................................181
Pamięć ..................................................................................................................................182
Procesy i wątki .....................................................................................................................184
Zmienne środowiskowe ......................................................................................................190
Obsługa wyjątków ................................................................................................................192
Przechowywanie danych użytkownika .................................................................................193
Bezpieczeństwo i uprawnienia .............................................................................................196
Podsumowanie .....................................................................................................................198
Spis treści
7
12
BIBLIOTEKI DYNAMICZNE .....................................................................199
Dynamiczne konsolidowanie ............................................................................................... 200
Ładowanie dynamiczne ....................................................................................................... 200
Problemy z bibliotekami współużytkowanymi .................................................................... 201
Gnu LGPL ............................................................................................................................ 203
Biblioteki DLL w Windows .................................................................................................. 204
Obiekty współużytkowane w Linuksie ................................................................................ 207
Szkielety, wtyczki i pakiety w systemie Mac OS X .............................................................. 209
Podsumowanie .................................................................................................................... 212
13
SYSTEMY PLIKÓW ...................................................................................213
Dowiązania symboliczne, skróty i synonimy ....................................................................... 214
Specyfikacja ścieżki .............................................................................................................. 215
Bezpieczeństwo i prawa dostępu ........................................................................................ 217
Osobliwości w Macintoshu .................................................................................................. 219
Atrybuty plików ................................................................................................................... 220
Katalogi specjalne ................................................................................................................ 220
Obróbka tekstu ................................................................................................................... 220
Biblioteka uruchomieniowa C i przenośny dostęp do plików ............................................. 221
Podsumowanie .................................................................................................................... 222
14
SKALOWALNOŚĆ .....................................................................................223
Lepsze algorytmy to większa skalowalność ......................................................................... 223
Skalowalność ma swoje granice ........................................................................................... 225
Podsumowanie .................................................................................................................... 226
15
PRZENOŚNOŚĆ I DANE ...........................................................................227
Dane aplikacji i pliki zasobów .............................................................................................. 227
Tworzenie przenośnej grafiki .............................................................................................. 231
Tworzenie przenośnego dźwięku ....................................................................................... 232
Podsumowanie .................................................................................................................... 232
16
INTERNACJONALIZACJA I LOKALIZACJA ..............................................233
Łańcuchy i Unicode ............................................................................................................. 234
Waluta ................................................................................................................................. 235
Data i Czas .......................................................................................................................... 236
Elementy interfejsu .............................................................................................................. 237
Klawiatury ............................................................................................................................ 237
Podsumowanie .................................................................................................................... 237
8
Spis treści
Zgłoś jeśli naruszono regulamin