RailsSpace. Tworzenie społecznościowych serwisów internetowych w Ruby on Rails - Helion
Tytuł oryginału: RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series)
Tłumaczenie: Marcin Rogóż
ISBN: 978-83-246-1633-6
stron: 552, Format: 172x245, okładka: twarda
Data wydania: 2008-09-15
Księgarnia: Helion
Cena książki: 79,00 zł
Poznaj Ruby on Rails i stwórz atrakcyjną witrynę społecznościową
- Jak konfigurować sesje bazodanowe?
- Na czym polega trasowanie komentarzy?
- W jaki sposób przygotować stronę przesyłania awatarów?
Serwisy społecznościowe, które gromadzą ludzi o podobnych zainteresowaniach i umożliwiają komunikację między znajomymi, cieszą się ogromną i wciąż rosnącą popularnością. Dzięki temu, że pozwalają na wymianę opinii i ułatwiają podtrzymywanie globalnych kontaktów, stają się elementami strategii biznesowych i marketingowych wielu firm. Do budowania takich serwisów doskonale nadaje się Rails, który oferuje klientom witryny w pełni dopasowane do potrzeb ich użytkowników. Rails został napisany w dynamicznym obiektowym języku Ruby z użyciem architektury MVC. Ten framework wyróżniają przede wszystkim dwie reguły: reguła DRY, polegająca na unikaniu wykonywania tej samej pracy w różnych miejscach, oraz reguła CoC., która pozwala na zminimalizowanie niezbędnej konfiguracji przez zastępowanie jej gotowymi, domyślnymi, zalecanymi wzorcami. Rails umożliwia także użycie wtyczek, rozszerzających aplikacje o rozmaite funkcjonalności np. logowanie, wrzucanie i skalowanie obrazków czy tagowanie.
Książka "RailsSpace. Tworzenie społecznościowych serwisów internetowych w Ruby on Rails" stanowi praktyczny kurs tworzenia interaktywnego serwisu społecznościowego. Za pomocą tego podręcznika nauczysz się budować taką witrynę, zaczynając od statycznej strony głównej, przez utworzenie mechanizmu rejestracji i uwierzytelnienia użytkowników, a kończąc na dynamicznej stronie WWW, z możliwością przesyłania obrazów i prowadzenia blogów, oraz systemie dodawania znajomych. Jeśli więc pragniesz stworzyć atrakcyjny i funkcjonalny serwis społecznościowy, przyciągający rzesze użytkowników ? książka z pewnością Ci w tym pomoże!
- Konfigurowanie środowiska programistycznego
- Modelowanie i rejestrowanie użytkowników
- Testowanie
- Ochrona stron
- Zaawansowane logowanie
- Aktualizacja informacji użytkownika
- Tworzenie sieci społecznej
- Awatary
- Model znajomości
- Blogi w technologii REST
- Komentarze do blogu w technologii AJAX
Samodzielnie zbuduj funkcjonalny serwis społecznościowy!!!
Osoby które kupowały "RailsSpace. Tworzenie społecznościowych serwisów internetowych w Ruby on Rails ", wybierały także:
- Ruby on Rails. Ćwiczenia 18,75 zł, (3,00 zł -84%)
- Programowanie w języku Ruby. Mikrousługi i konteneryzacja 58,98 zł, (29,49 zł -50%)
- Rails. Sztuka programowania 58,98 zł, (29,49 zł -50%)
- Ruby on Rails. Od podstaw 49,00 zł, (24,50 zł -50%)
- Rails. Receptury 67,00 zł, (33,50 zł -50%)
Spis treści
RailsSpace. Tworzenie społecznościowych serwisów internetowych w Ruby on Rails -- spis treści
Spis rysunków (13)
Podziękowania (17)
Rozdział 1. Wprowadzenie (19)
- 1.1. Dlaczego Rails? (19)
- 1.1.1. Produktywność chce być wolna (20)
- 1.1.2. Ta produktywność nie jest wolna (20)
- 1.2. Dlaczego ta książka? (21)
- 1.3. Kto powinien przeczytać tę książkę? (22)
- 1.3.1. Jak czytać tę książkę? (22)
- 1.3.2. Jak oglądać tę książkę? (23)
- 1.4. Kilka historii związanych z Rails (23)
- 1.4.1. Aure (23)
- 1.4.2. Michael (25)
Część I: Podstawy (29)
Rozdział 2. Zaczynamy (31)
- 2.1. Przygotowania (31)
- 2.1.1. Konfigurowanie środowiska programistycznego (33)
- 2.1.2. Praca z rails (33)
- 2.1.3. Serwer deweloperski (35)
- 2.2. Nasze pierwsze strony (37)
- 2.2.1. Generowanie kontrolera (38)
- 2.2.2. Kontroler Site (41)
- 2.2.3. URL w Rails (42)
- 2.2.4. Zmienianie trasy (44)
- 2.3. Widoki w Rails (44)
- 2.3.1. Osadzony Ruby (ERb) (45)
- 2.4. Układy (47)
- 2.4.1. ERb, akcje i zmienne egzemplarza (48)
- 2.4.2. Powtórka: podział strony (50)
- 2.4.3. Dodawanie nawigacji (50)
- 2.4.4. Tablice asocjacyjne (51)
- 2.4.5. Symbole (52)
- 2.4.6. Dopracowywanie link_to (53)
- 2.4.7. Kwestia stylu (54)
- 2.4.8. Dopracowywanie nawigacji (55)
- 2.4.9. Znajdź coś dla siebie (55)
- 2.5. Programowanie ze stylem (56)
Rozdział 3. Modelowanie użytkowników (61)
- 3.1. Tworzenie modelu User (61)
- 3.1.1. Konfigurowanie bazy danych (61)
- 3.1.2. Migracje i model User (64)
- 3.1.3. Pierwsza migracja użytkownika (65)
- 3.1.4. Rake migracji (66)
- 3.2. Walidacja modelu użytkownika (69)
- 3.2.1. Konsola (70)
- 3.2.2. Prosta walidacja (71)
- 3.2.3. Walidacje w akcji (75)
- 3.2.4. Poprawianie walidacji (75)
- 3.2.5. Porządne walidacje (77)
- 3.2.6. Magiczne kolumny (80)
- 3.3. Dalsze kroki w celu zapewnienia integralności danych (?) (82)
Rozdział 4. Rejestrowanie użytkowników (85)
- 4.1. Kontroler User (85)
- 4.2. Rejestracja użytkownika - widok (86)
- 4.2.1. Widok rejestracji - wygląd (87)
- 4.2.2. Omówienie widoku rejestracji (91)
- 4.2.3. Poprawianie formularza rejestracji (93)
- 4.2.4. Zabawa z formularzami i funkcją debug (95)
- 4.3. Rejestracja użytkownika - akcja (97)
- 4.3.1. Komunikaty o błędach formularza (103)
- 4.3.2. Flash (108)
- 4.3.3. Ukończona funkcja register (110)
- 4.3.4. Zarys głównej strony użytkownika (111)
- 4.4. Dołączanie rejestracji (113)
- 4.4.1. Pliki pomocnicze (115)
- 4.5. Przykładowy użytkownik (118)
Rozdział 5. Rozpoczynamy testowanie (119)
- 5.1. Nasza filozofia testowania (120)
- 5.2. Konfiguracja testowej bazy danych (120)
- 5.3. Testowanie kontrolera Site (121)
- 5.3.1. Niebanalny test (122)
- 5.3.2. Nadmiar testów? (125)
- 5.4. Testowanie rejestracji (126)
- 5.4.1. Uruchamianie testów funkcjonalnych (126)
- 5.4.2. Podstawowe testy rejestracji (126)
- 5.4.3. Testowanie rejestracji zakończonej powodzeniem (129)
- 5.4.4. Testowanie rejestracji zakończonej niepowodzeniem (130)
- 5.4.5. Uruchamianie testów (133)
- 5.4.6. Więcej testów rejestracji? (133)
- 5.5. Podstawowe testy modelu User (133)
- 5.5.1. Podstawowe testy walidacji (135)
- 5.6. Szczegółowe testy modelu User (137)
- 5.6.1. Testowanie niepowtarzalności (138)
- 5.6.2. Testowanie długości pseudonimu (139)
- 5.6.3. Skorzystaj z konsoli (140)
- 5.6.4. Testowanie długości hasła (142)
- 5.6.5. Testowanie wyrażeń regularnych (144)
- 5.6.6. Uruchamianie wszystkich testów (151)
Rozdział 6. Logowanie i wylogowywanie (153)
- 6.1. Utrzymywanie stanu za pomocą sesji (154)
- 6.1.1. Konfigurowanie sesji bazodanowych (154)
- 6.2. Logowanie (156)
- 6.2.1. Rejestrowanie stanu zalogowania (156)
- 6.2.2. Logowanie po zarejestrowaniu (156)
- 6.2.3. Debugowanie ze zmienną sesji (157)
- 6.2.4. Widok i akcja logowania (162)
- 6.2.5. Testowanie poprawnego logowania (165)
- 6.2.6. Testowanie nieprawidłowego logowania (167)
- 6.3. Wylogowanie (168)
- 6.3.1. Testowanie wylogowania (169)
- 6.3.2. Testowanie nawigacji (170)
- 6.4. Ochrona stron (173)
- 6.4.1. Chronienie stron w głupi sposób (173)
- 6.4.2. Chronienie stron w mądry sposób (173)
- 6.4.3. Testowanie chronienia (176)
- 6.5. Przyjazne przekazywanie URL (178)
- 6.5.1. Zmienna request (178)
- 6.5.2. Przyjazne przekierowywanie po zalogowaniu (181)
- 6.5.3. Przyjazne przekierowywanie po rejestracji (183)
- 6.5.4. Przyjazne testowanie (184)
- 6.6. Refaktoryzacja podstawowego logowania (185)
- 6.6.1. Zalogowany? (186)
- 6.6.2. Zaloguj! (190)
- 6.6.3. Wyloguj! (193)
- 6.6.4. Wyczyść hasło! (194)
- 6.6.5. Obsługa formularza bez powtórzeń (197)
- 6.6.6. Przyjazne przekierowania bez powtórzeń (198)
- 6.6.7. Sprawdzamy poprawność (200)
Rozdział 7. Zaawansowane logowanie (201)
- 7.1. A więc chcesz być zapamiętany? (201)
- 7.1.1. Pole opcji "zapamiętaj mnie" (202)
- 7.1.2. Atrybut "pamiętaj mnie" (205)
- 7.1.3. Cookie "pamiętaj mnie" (206)
- 7.2. Faktyczne zapamiętywanie użytkownika (213)
- 7.2.1. Cookie uwierzytelniające (214)
- 7.2.2. Pamiętanie, że zapamiętaliśmy (216)
- 7.2.3. Aktualizacja logout (218)
- 7.2.4. Bardziej bezpieczny plik cookie (220)
- 7.2.5. Ukończone (?) funkcje (222)
- 7.3. Testy zapamiętywania użytkowników (224)
- 7.3.1. Poprawione testy logowania (224)
- 7.3.2. Poprawiona funkcja wylogowania (230)
- 7.4. Testy zaawansowane - testowanie integracji (230)
- 7.4.1. Testowanie pamiętania cookie - pierwsze cięcie (231)
- 7.4.2. Testowanie testu - opowieść ku przestrodze (233)
- 7.4.3. Kilka refleksji dotyczących testowania w Rails (235)
- 7.5. Ponowna refaktoryzacja (235)
- 7.5.1. Refaktoryzacja remember (236)
- 7.5.2. Refaktoryzacja forget (239)
- 7.5.3. Jeszcze dwie poprawki (240)
- 7.5.4. W pełni zrefaktoryzowana funkcja login (241)
- 7.5.5. Kilka końcowych przemyśleń (244)
Rozdział 8. Aktualizacja informacji użytkownika (245)
- 8.1. Sensowniejsza strona centrum użytkownika (246)
- 8.2. Aktualizacja adresu e-mail (246)
- 8.3. Aktualizacja hasła (248)
- 8.3.1. Obsługa przesyłania haseł (253)
- 8.4. Testowanie edycji informacji o użytkownikach (257)
- 8.4.1. Funkcje pomocnicze dla testów (259)
- 8.4.2. Testowanie strony edycji (262)
- 8.4.3. Zaawansowany test (263)
- 8.5. Części (266)
- 8.5.1. Dwie proste części (266)
- 8.5.2. Bardziej zaawansowany plik części (267)
- 8.5.3. Problem, a później koniec (270)
- 8.5.4. Aktualizacja akcji login i register (271)
Część II: Tworzenie sieci społecznościowej (275)
Rozdział 9. Profile osobiste (277)
- 9.1. Zaczątek profilu użytkownika (277)
- 9.1.1. Adresy URL profilów (278)
- 9.1.2. Kontroler i akcje profilu (280)
- 9.2. Specyfikacja użytkownika (282)
- 9.2.1. Generowanie modelu Spec (282)
- 9.2.2. Model Spec (284)
- 9.2.3. Łączenie modeli (286)
- 9.3. Edycja specyfikacji użytkownika (288)
- 9.3.1. Kontroler Spec (288)
- 9.3.2. Narzędzie dla HTML (290)
- 9.3.3. Widok edycji specyfikacji (292)
- 9.3.4. Ochrona specyfikacji (293)
- 9.3.5. Testowanie specyfikacji (295)
- 9.4. Aktualizacja centrum użytkownika (299)
- 9.4.1. Nowy widok centrum użytkownika (300)
- 9.4.2. Pole specyfikacji (303)
- 9.4.3. Trasy nazwane i adres URL profilu (305)
- 9.4.4. Główna zawartość centrum użytkownika (307)
- 9.5. Osobisty FAQ - zainteresowania i osobowość (310)
- 9.5.1. Model FAQ (311)
- 9.5.2. Kontroler FAQ (314)
- 9.5.3. Edycja FAQ (315)
- 9.5.4. Dodawanie FAQ do centrum użytkownika (317)
- 9.5.5. Testy FAQ (320)
- 9.6. Upublicznianie profilu (322)
Rozdział 10. Społeczność (325)
- 10.1. Tworzenie społeczności (kontroler) (325)
- 10.2. Wprowadzanie przykładowych użytkowników (326)
- 10.2.1. Zbieranie danych (327)
- 10.2.2. Ładowanie danych (328)
- 10.3. Spis członków społeczności (330)
- 10.3.1. Nowy trik funkcji find (331)
- 10.3.2. Akcja index (334)
- 10.3.3. Spis alfabetyczny (336)
- 10.3.4. Wyświetlanie wyników indeksu (338)
- 10.4. Dopracowywanie wyników (343)
- 10.4.1. Dodawanie paginacji (343)
- 10.4.2. Podsumowanie wyników (347)
Rozdział 11. Wyszukiwanie i przeglądanie (349)
- 11.1. Wyszukiwanie (349)
- 11.1.1. Widoki wyszukiwania (350)
- 11.1.2. Ferret (353)
- 11.1.3. Wyszukiwanie za pomocą funkcji find_by_contents (355)
- 11.1.4. Dodawanie paginacji do wyszukiwania (357)
- 11.1.5. Wyjątek od reguły (361)
- 11.2. Testowanie wyszukiwania (363)
- 11.3. Rozpoczynamy przeglądanie (366)
- 11.3.1. Strona przeglądania (366)
- 11.3.2. Wyszukiwanie według wieku, płci i miejsca pobytu (na razie bez tego ostatniego) (368)
- 11.4. Miejsce pobytu (372)
- 11.4.1. Lokalna baza danych informacji geograficznych (373)
- 11.4.2. Używanie GeoData do wyszukiwania według miejsca pobytu (375)
- 11.4.3. Nazwy lokalizacji (378)
- 11.4.4. Dodawanie walidacji przeglądarki (381)
- 11.4.5. Ukończona strona główna społeczności (386)
Rozdział 12. Awatary (389)
- 12.1. Przygotowania do przesłania awataru (389)
- 12.1.1. Dostosowywanie modelu (390)
- 12.1.2. Strona przesyłania awatarów (392)
- 12.1.3. Plik części awataru (396)
- 12.2. Operowanie na awatarach (397)
- 12.2.1. ImageMagick i convert (398)
- 12.2.2. Metoda save (401)
- 12.2.3. Dodawanie walidacji (402)
- 12.2.4. Usuwanie awatarów (406)
- 12.2.5. Testowanie awatarów (409)
Rozdział 13. E-mail (413)
- 13.1. Action Mailer (413)
- 13.1.1. Konfiguracja (414)
- 13.1.2. Przypominanie hasła (415)
- 13.1.3. Tworzenie odnośnika i dostarczanie przypomnienia (416)
- 13.1.4. Testowanie przypominania (420)
- 13.2. Podwójnie ślepy system e-mail (423)
- 13.2.1. Odnośnik e-mail (424)
- 13.2.2. Akcja correspond i formularz e-mail (425)
- 13.2.3. Wiadomość e-mail (427)
- 13.2.4. Testowanie podwójnie ślepego systemu poczty elektronicznej (430)
Rozdział 14. Znajomości (435)
- 14.1. Tworzenie modelu znajomości (435)
- 14.1.1. Znajomości w abstrakcji (436)
- 14.1.2. Model znajomości (437)
- 14.1.3. Tworzenie oczekujących znajomości (439)
- 14.1.4. Propozycja zawarcia znajomości (440)
- 14.1.5. Kończenie modelu Friendship (441)
- 14.1.6. Testowanie modelu Friendship (443)
- 14.2. Propozycje znajomości (444)
- 14.2.1. Odnośnik do propozycji znajomości (444)
- 14.2.2. Sterowanie propozycją (446)
- 14.3. Zarządzanie znajomościami (449)
- 14.3.1. has_many :through (449)
- 14.3.2. Centrum znajomości (452)
- 14.3.3. Akcje dla znajomości (455)
- 14.3.4. Testowanie propozycji znajomości (458)
Rozdział 15. Blogi w technologii REST (461)
- 15.1. Zasługujemy na REST (462)
- 15.1.1. REST i CRUD (463)
- 15.1.2. Modyfikatory URL (465)
- 15.1.3. Słoń;w pokoju (466)
- 15.1.4. Odpowiadanie na formaty i darmowe API (468)
- 15.2. Rusztowania dla blogów zgodnych z REST (469)
- 15.2.1. Pierwszy zasób REST (469)
- 15.2.2. Wpisy do blogu (471)
- 15.2.3. Kontroler Post (474)
- 15.3. Tworzenie prawdziwego blogu (478)
- 15.3.1. Łączenie modeli (478)
- 15.3.2. Trasowanie blogu i wpisu (479)
- 15.3.3. Kontroler Posts (480)
- 15.3.4. Zarządzanie blogiem (483)
- 15.3.5. Tworzenie wpisów (485)
- 15.3.6. Wyświetlanie wpisów (487)
- 15.3.7. Edycja wpisów (490)
- 15.3.8. Publikowanie wpisów (493)
- 15.3.9. Ostatni, denerwujący szczegół (495)
- 15.4. Testy REST (498)
- 15.4.1. Domyślne testy funkcjonalne REST (498)
- 15.4.2. Dwa niestandardowe testy (501)
Rozdział 16. Komentarze do blogu w technologii Ajax (503)
- 16.1. Komentarze zgodne z REST (503)
- 16.1.1. Zasób Comments (504)
- 16.1.2. Model i powiązania komentarza (505)
- 16.1.3. Kontroler Comments i zapobiegawczy widok części (507)
- 16.1.4. Trasowanie komentarzy (508)
- 16.2. Wprowadzamy Ajaksa (509)
- 16.2.1. Nowe komentarze (510)
- 16.2.2. Tworzenie komentarzy (514)
- 16.2.3. Niszczenie komentarzy (517)
- 16.3. Efekty wizualne (519)
- 16.3.1. Pliki RJS i pierwszy efekt (520)
- 13.3.2. Kolejne dwa efekty (521)
- 16.3.3. Przycisk anuluj (523)
- 16.3.4. Zgrabna degradacja (524)
- 16.4. Debugowanie i testowanie (526)
- 16.4.1. Inne spojrzenie na new (526)
- 16.4.2. Testowanie Ajax za pomocą xhr (527)
Rozdział 17. Co dalej? (529)
- 17.1. Co należy wziąć pod uwagę? (529)
- 17.1.1. Wybór sprzętu i oprogramowania (530)
- 17.1.2. Praca w trybie produkcyjnym (530)
- 17.1.3. Minimalny serwer produkcyjny (532)
- 17.1.4. Skalowanie (534)
- 17.1.5. Podstawy administrowania (536)
- 17.2. Więcej Ruby on Rails (539)
Skorowidz (541)