PLP Spis tre┼Ťci-1 , PLP_Spis treści


Spis treści

Wstęp

Witaj czytelniku!

Dla kogo jest przeznaczona ta książka?

Tematyka książki

Czego wymagamy od czytelnika książki?

Kod źródłowy

Oznaczenia stosowane w książce

1. Projekt aplikacji

Informacje ogólne

Formułowanie założeń

Modele tworzenia kodu

Metoda szybkiego śledzenia

Wczesne i częste testy

Wypożyczalnia DVD

Założenia wstępne

Analiza wymagań klienta

Spis wymagań

Przypadki użycia

Architektura aplikacji

Projekt szczegółowy

Funkcje dostępu do danych

Funkcje klienta

Funkcje związane z tytułem filmu

Funkcje opisujące płytę DVD

Funkcje związane z wypożyczaniem

Przykładowa aplikacja

Materiały źródłowe

Podsumowanie

2. CVS

Narzędzia dla systemu Linux

Terminologia

Repozytorium

Obsługa CVS przez jedynego użytkownika

Format polecenia CVS

Zmienne środowiskowe

Import nowego projektu

Początek prac nad projektem w CVS

Porównywanie zmian z zawartością repozytorium

Aktualizacja repozytorium

Wydanie projektu

Przeglądanie zmian

Dodawanie i usuwanie plików z projektu

Rozwinięcia słów kluczowych

Korekty, znaczniki i rozgałęzienia

Korekty

Znaczniki

Rozgałęzienia projektu

CVS dla wielu użytkowników

Praca zespołowa

Praca ze śledzeniem

Dodatkowa zabawa z CVS

Pliki binarne

Poprawianie błędnych adnotacji

Sieciowy dostęp do CVS

Klienty CVS z interfejsem graficznym

Materiały źródłowe

Podsumowanie

3. Bazy danych

Wybór bazy danych

mSQL

MySQL

PostgreSQL

Jaki wybór będzie odpowiedni?

PostgreSQL

Instalacja i uruchamianie

Tworzenie użytkowników

Tworzenie baz danych

Tworzenie zapasowych kopii bazy danych

Zdalny dostęp

Podstawy teorii baz danych

Pierwsza postać normalna

Druga postać normalna

Trzecia postać normalna

De-normalizacja

Prosta baza danych

Korzystanie z psql

Polecenia dla psql

Polecenia do definicji danych

Tworzenie i usuwanie tabel

Typy danych w PostgreSQL

Polecenia do manipulacji danymi

Wstawianie danych

Pobieranie danych z pojedynczej tabeli

Kombinowane pobieranie danych z wielu tabel

Aktualizacja danych w tabeli

Usuwanie danych

Transakcje

Wskazówki dla projektu bazy danych

Materiały źródłowe

Podsumowanie

4. Interfejsy PostgreSQL

Dostęp do PostgreSQL z kodu programu

Biblioteka libpq

Funkcje do obsługi połączeń z bazą danych

Uruchamianie poleceń SQL

Uzyskiwanie wyników zapytań

Biblioteka ecpg

Jaką metodę zastosować?

Aplikacja

Podsumowanie

5. MySQL

Instalacja i zarządzanie

Pakiety skompilowane

Budowanie z plików źródłowych

Konfiguracja poinstalacyjna

Zarządzanie bazą MySQL

Polecenia

isamchk

mysql

mysqladmin

mysqlbug

mysqldump

mysqlimport

mysqlshow

Tworzenie użytkowników i nadawanie uprawnień

grant

with grant

revoke, delete

Hasła

Tworzenie bazy danych

Wspomaganie SQL w PostgreSQL i MySQL

Dostęp do danych MySQL z języka C

Funkcje połączeniowe

Obsługa błędów

Wykonywanie poleceń SQL

Polecenia SQL, które nie zwracają żadnych danych

Polecenia zwracające dane

Przetwarzanie zwróconych danych

Funkcje dodatkowe

Materiały źródłowe

Podsumowanie

6. Wykrywanie błędów

Klasy błędów

Zgłaszanie błędów

Wykrywanie błędów programowych

Rodzaje błędów programowych

Polecenia wykrywania błędów

Zakotwiczenia

Gdzie jesteśmy?

Powrót do początku

Przygotowanie do wykrywania błędów

Używanie debuggera

Proste polecenia GDB

Inne właściwości GDB

Materiały źródłowe

Podsumowanie

7. Usługi katalogowe LDAP

Czym jest usługa katalogowa?

X.500 i LDAP

Struktura serwera usług katalogowych

Nazwy elementów

Nazwy dn

Schemat nazewnictwa X.500

Schemat X.500 z nazwami domen

Schemat nazewnictwa składników domeny

Składniki obiektowe

Standardowe typy i atrybuty

Drzewo katalogu LDAP

Pliki LDIF

Instalacja i konfiguracja serwera LDAP

Etapy instalacji OpenLDAP

Konfiguracja OpenLDAP

Uruchamianie serwera

Dostęp do LDAP z języka C

Inicjacja biblioteki LDAP

Powiązania z serwerem LDAP

Obsługa błędów LDAP

Pierwszy program kliencki wykorzystujący LDAP

Wyszukiwanie

Określenie zakresu

Filtrowanie wyników

Wyszukiwanie z zastosowaniem API

Sortowanie zwróconych obiektów

Zmiana danych

Dodawanie nowego wpisu

Modyfikacja wpisu

Usuwanie wpisu

Aplikacja

Materiały źródłowe

Podsumowanie

8. Tworzenie GUI za pomocą GTK+/GNOME

Biblioteki GTK+/GNOME

glib

GTK+

GDK

lmlib

ORBit

libGnorba

glib

Typy

Makropolecenia

Śledzenie błędów w makropoleceniach

Funkcje obsługujące napisy

Przydział pamięci

Listy

GTK+

Widżety

Tworzenie widżetów

Kontenery

Sygnały

Wyświetlanie, czułość i ukrywanie

Usuwanie

gtk_init oraz gtk_main

Przykładowa aplikacja GTK+

Podstawy GNOME

gnome_init

GnomeApp

Menu i paski narzędzi

GnomeAppbar

Okna dialogowe

Wyświetlanie GnomeDialog

GnomeAbouit

GnomePropertyBox

GnomeMessageBox

Przykładowa aplikacja GNOME

Wersja źródłowa GNOME

configure.in

Makefile.am

Zachowywanie konfiguracji

Zarządzanie sesją

GnomeClient

Analiza wiersza poleceń za pomocą popt

Materiały źródłowe na temat GNOME/GTK+

Podsumowanie

9. Budowanie GUI za pomocą Glade i GTK+/GNOME

Ogólne omówienie Glade

Uwagi na temat projektowania GUI

Samouczek Glade

Okno główne

Paleta

Okno właściwości

Kod źródłowy utworzony za pomocą Glade

lookup_widget

Dopisywanie kodu

Libglade

GUI do obsługi wypożyczalni płyt DVD

Projekt

Kompilacja i uruchamianie dvdstore

Struktura

Kod

main.c

callbacks.c

member_dialog.c oraz title_dialog.c

rent_dialog.c oraz return_dialog.c

search_window.c

misc.c

Podsumowanie

10. Flex i Bison

Struktura wejściowa

Skanery i analizatory składni

Jak działają generatory?

Skanery

Prosty skaner

Specyfikacje skanera

Reguła najpełniejszego dopasowania

Wyrażenia regularne

Złożenia wyrażeń regularnych

Działania

Przekierowywanie wejścia i wyjścia skanera

Zwracanie elementów

Skanery kontekstowe

Opcje programu flex

Analizatory składni

Generacja analizatorów składni

Definicje

Reguły

Kod dodatkowy

Tworzenie testera składni

Rodzaje elementów

Działania w regułach

Opcje programu bison

Konflikty gramatyczne

Wyrażenia arytmetyczne

Materiały źródłowe

Podsumowanie

11. Narzędzia do testowania

Testowanie wymagań

Architektura aplikacji

Etapy

Testy ogólne

Testy regresyjne

Program testujący

Nagłówki i deklaracje

main()

show_result()

Interfejsy programowe (API)

Testowanie programu dvdstore

Zapis testów w skryptach

expect

Problemy z pamięcią

Pamięć statyczna

Stos

Pamięć dynamiczna

Instalacja programu mpatrol

Zastosowanie programu mpatrol

Testy pokrycia

Pokrycie instrukcji

Pokrycie rozgałęzień i danych

GCOV — narzędzie do testów pokrycia instrukcji

Testowanie wydajności

Podsumowanie

12. Bezpieczne programowanie

Czym jest bezpieczne programowanie?

Dlaczego trudno jest bezpiecznie programować?

Błędy ukryte

Zaleta paranoi

Bezpieczeństwo systemu plików

Standardowe uprawnienia

Bit sticky

Atrybuty setuid i setgid

Bezpieczne używanie setuid i setgid

Potwierdzanie tożsamości użytkowników

Tradycyjne metody potwierdzania tożsamości w systemie UNIX

PAM — Pluggable Authentication Modules

Rejestracja wywołań zwrotnych

Zarządzanie uprawnieniami

Strategie zarządzania przywilejami

Bezpieczne korzystanie z szyfrowania

Niektóre powszechnie stosowane metody

Generacja liczb losowych w systemie LINUX

Zarządzanie kluczami

Bezpieczne programowanie sieciowe

Protokoły zapisu

Stosowanie standardów tam, gdzie jest to możliwe

Przyjazność zapory ogniowej

Bezpieczeństwo aplikacji WWW

Zagadnienia związane z zarządzaniem sesją

Standardowe sieciowe narzędzia szyfrujące

Ogólne sztuczki i metody zabezpieczeń

Problemy ze środowiskiem

Specjalne zmienne środowiskowe

IFS

Zagadnienia związane z językiem

Sprawdzanie błędów i wyjątków

Perl

Skrypty Perl Setuid/Setgid

Python

PHP

Podsumowanie

13. Programowanie GUI za pomocą KDE/Qt

Wprowadzenie

Informacje o Qt

Informacje o KDE

Instalowanie Qt

Instalowanie KDE

Biblioteki

Programowanie aplikacji używających Qt

Na początek: Hello world

Ułatwienie zarządzania plikiem Makefile za pomocą tmake

Sygnały i szczeliny

„Hello world” ponownie

Wykorzystanie klas podstawowych

Widżety

Wygląd

Programowanie aplikacji używających KDE

Prosty edytor tekstowy

Materiały źródłowe

Podsumowanie

14. Program obsługi wypożyczalni płyt DVD wykorzystujący KDE/Qt

Projekt aplikacji

Główne okno

Pozycje menu

Pasek narzędzi

Główny widżet

Log transakcji

Okno dialogowe klienta wypożyczalni

Okno dialogowe wypożyczeń

Lista wypożyczeń

Okno dialogowe raportu wypożyczeń

Okno wyszukiwania

Strona wyszukiwania płyt DVD

Strona wyszukiwania klientów

Strona wyszukiwania płyt

SettingsManager

Dopasowanie kodu do KDE

KConfig i SettingsManager

Materiały źródłowe

Podsumowanie

15. Python

Wprowadzenie

Właściwości

Język bardzo wysokiego poziomu (VHLL)

Język interpretowany

Czytelna, prosta i wydajna składnia

Obiektowość

Dynamiczne pisanie programu

Obszerna biblioteka standardowa

Wieloplatformowość

Wielorakie zastosowania

Skalowalność

Otwarty kod źródłowy

Dużo radości!

Python: odpowiednie narzędzie do pracy

...Lecz nie do każdej pracy!

Instalacja języka Python

Praca z pakietem Python

Interaktywny interpreter

Argument poleceniowy

Argument skryptowy

Program „autonomiczny”

Szczegóły

Interpreter i kompilacja bajtowa

Składnia komentarza

Wpływ wielkości liter

Wbudowane typy danych i operatory

Nieokreślone (none)

Integer

Long integer

Liczby zmiennoprzecinkowe

Liczby zespolone

Listy

Napisy

Krotki

Słowniki

Zmienne

Składnia struktury blokowej

Składnia instrukcji

Deklaracja wyrażenia

Przypisanie

Instrukcje proste

Instrukcje złożone

Funkcje

Funkcje wbudowane

Obszary robocze nazw

Moduły i pakiety

Niektóre moduły ze standardowej dystrybucji

Klasy i obiekty

Metody

Self (własna)

Dziedziczenie

Metody specjalne

Rozszerzenia języka Python

Prosty program: rzut monetą

Zasoby w sieci

Podsumowanie

2 Część I Podstawy obsługi systemu WhizBang (Nagłówek strony)

2 D:\1-dokumenty\Word\PLP_Spis treści.doc



Wyszukiwarka