Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych
- Autor:
- Bill Karwin
- Wydawnictwo:
- Helion
- Ocena:
- 5.1/6 Opinie: 32
- Stron:
- 400
- Druk:
- oprawa miękka
- Dostępne formaty:
-
PDFePubMobi

Opis ebooka: Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych
Zobacz, jak tego nie robić!
- Jak nie projektować modelu logicznego i fizycznego bazy danych?
- Jak nie zadawać zapytań SQL?
- Jak nie wytwarzać aplikacji?
Podobno najlepiej jest uczyć się na cudzych błędach. Ta mądrość sprawdza się w wielu dziedzinach życia, także w informatyce. Ile razy brnąłeś w złe rozwiązanie, aż ktoś powiedział: "tak się nie robi"? Czy nie pomyślałeś wtedy o książce, w której zamiast metod rozwiązywania danych problemów znalazłbyś informacje, jak do nich nie dopuścić? Chciałbyś, żeby ta książka dotyczyła języka SQL? Oto ona!
Niniejsza publikacja przedstawia zbiór antywzorców w języku SQL. Dzięki niej poznasz błędy najczęściej popełniane przy projektowaniu i wykorzystywaniu baz danych. Dowiesz się z niej, jak nie tworzyć logicznego i fizycznego projektu bazy danych, jak nie zadawać zapytań SQL oraz jak nie wytwarzać aplikacji - a wszystko po to, aby zrozumieć, jak nie popełniać błędów. W każdej z czterech części znajdziesz ogrom interesujących informacji: poznasz zasady przechowywania haseł, błędy pojawiające się w wyniku zaokrągleń czy sposoby radzenia sobie z brakiem integralności bazy danych. Książka ta jest genialną pozycją, dzięki której już nigdy nie zboczysz z drogi w codziennej pracy z bazami danych i językiem SQL!
- Antywzorce logicznego projektu bazy danych
- Modelowanie drzew
- Tworzenie kluczy głównych
- Związki polimorficzne
- Atrybuty wielokolumnowe
- Antywzorce fizycznego projektu bazy danych
- Błędy zaokrągleń
- Przechowywanie dużych plików
- Indeksy
- Antywzorce zapytań
- Wykorzystanie NULL-a
- Grupowanie kolumn
- Losowe wybieranie wiersza
- Przeszukiwanie tekstów
- Optymalizacja zapytań SQL
- Antywzorce wytwarzania aplikacji
- Przechowywanie haseł
- Wstrzykiwanie SQL
Ucz się na błędach... Cudzych!

Wybrane bestsellery
-
Relacyjne bazy danych są wszędzie wokół nas, a do podstawowych umiejętności wymaganych od współczesnych programistów należy dobra znajomość języka SQL. Na świecie nie ma jednak osób, którym nie zdarza się czegoś zapomnieć. Jeśli potrzebujesz pomocy w codziennej pracy lub chcesz odświeżyć wiedzę n...(8.50 zł najniższa cena z 30 dni)
8.50 zł
17.00 zł(-50%) -
Dzięki niemu szybko odnajdziesz się w najnowszej, 18. edycji biblioteki React. Książka zawiera informacje o jego najważniejszych narzędziach, podane w przystępny sposób, z naciskiem na wymiar praktyczny. Dowiesz się, jak przebiega tworzenie projektów i z jakich opcji można skorzystać podczas tego...
React: kluczowe koncepcje. Przewodnik po najważniejszych mechanizmach biblioteki React React: kluczowe koncepcje. Przewodnik po najważniejszych mechanizmach biblioteki React
(71.40 zł najniższa cena z 30 dni)77.35 zł
119.00 zł(-35%) -
Ten praktyczny przewodnik zawiera szeroki przegląd strategii, wzorców i form testowania oprogramowania, ułatwiających dobór ścieżek i podejść do konkretnych projektów w zależności od zakresu, budżetu i ram czasowych. Książka uczy przydatnych umiejętności w zakresie przeprowadzania testów wydajnoś...
Testowanie full stack. Praktyczny przewodnik dostarczania oprogramowania wysokiej jakości Testowanie full stack. Praktyczny przewodnik dostarczania oprogramowania wysokiej jakości
(53.40 zł najniższa cena z 30 dni)57.85 zł
89.00 zł(-35%) -
To trzecie, poprawione i zaktualizowane wydanie praktycznego przewodnika po języku SQL i relacyjnych bazach danych. Przemyślana, uporządkowana struktura podręcznika sprzyja sprawnemu nabywaniu wiedzy i doskonaleniu umiejętności — pracę z nim ułatwiają przystępny sposób prezentowania materia...(41.40 zł najniższa cena z 30 dni)
44.85 zł
69.00 zł(-35%) -
Branża IT kusi licznymi ofertami pracy, atrakcyjnymi zarobkami i ciekawymi ścieżkami rozwoju nie tylko zawodowych programistów, lecz również osoby bez wykształcenia informatycznego czy doświadczenia w tej dziedzinie. Te ostatnie zwykle zaczynają karierę od roli testera aplikacji. Jednym z podstaw...(53.40 zł najniższa cena z 30 dni)
57.85 zł
89.00 zł(-35%) -
Książka "UML 2.0. Wprowadzenie" w praktyczny sposób przedstawia techniki modelowania systemów informatycznych za pomocą języka UML 2.0.(18.32 zł najniższa cena z 30 dni)
18.50 zł
37.00 zł(-50%) -
Oto przewodnik po koncepcjach testowania i wiodących frameworkach, za pomocą których automatyzuje się testy aplikacji internetowych, takich jak Selenium, Cypress, Puppeteer i Playwright. Zaprezentowano w nim unikatowe funkcjonalności tych rozwiązań, ich wady i zalety, a także wyjaśniono zasady ko...
Testowanie aplikacji dla programistów frontendowych. Wiodące frameworki do automatyzacji testów aplikacji internetowych i ich przyszłość oparta na testowaniu niskokodowym i sztucznej inteligencji Testowanie aplikacji dla programistów frontendowych. Wiodące frameworki do automatyzacji testów aplikacji internetowych i ich przyszłość oparta na testowaniu niskokodowym i sztucznej inteligencji
(41.40 zł najniższa cena z 30 dni)44.85 zł
69.00 zł(-35%) -
Naglący termin, niedoczas, permanentne opóźnienie - oto najwierniejsi towarzysze i zarazem najwięksi wrogowie kierownika projektu. Nawet certyfikowani project managerowie, ludzie z ogromną wiedzą i nie mniejszym doświadczeniem, raz po raz znajdują się w sytuacji, w której potrzeba naprawdę wielki...(35.40 zł najniższa cena z 30 dni)
38.35 zł
59.00 zł(-35%) -
Zaczynamy od skonfigurowania środowiska testowego oraz nauki sposobu optymalizacji API Selenium WebDriver. Następnie, poprzez implementację własnych zadań, uczymy się użycia wzorców projektowych oraz poznajemy sposoby rozszerzania API Selenium WebDriver. Na koniec konfigurujemy własne środowisko ...
Selenium i testowanie aplikacji. Receptury. Wydanie II Selenium i testowanie aplikacji. Receptury. Wydanie II
(55.30 zł najniższa cena z 30 dni)51.35 zł
79.00 zł(-35%) -
Ta książka stanowi świetne wprowadzenie do analizy danych. Dzięki niej nauczysz się korzystać z surowych danych, nawet jeśli nie masz odpowiedniego doświadczenia. Zaczniesz od formułowania hipotez i generowania statystyk opisowych, a następnie przystąpisz do pisania zapytań w języku SQL w celu ag...
SQL dla analityków danych. Opanuj możliwości SQL-a, aby wydobywać informacje z danych. Wydanie III SQL dla analityków danych. Opanuj możliwości SQL-a, aby wydobywać informacje z danych. Wydanie III
(81.75 zł najniższa cena z 30 dni)70.85 zł
109.00 zł(-35%)
Ebooka "Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnym urządzeniu
Szczegóły ebooka
- Tytuł oryginału:
- SQL Antipatterns: Avoiding the Pitfalls of Database Programming
- Tłumaczenie:
- Mikołaj Szczepaniak
- ISBN Książki drukowanej:
- 978-83-246-3482-8, 9788324634828
- Data wydania książki drukowanej:
- 2012-01-27
- ISBN Ebooka:
- 978-83-246-4714-9, 9788324647149
- Data wydania ebooka:
-
2012-02-15
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Format:
- 158x235
- Numer z katalogu:
- 7514
- Rozmiar pliku Pdf:
- 3.4MB
- Rozmiar pliku ePub:
- 3.5MB
- Rozmiar pliku Mobi:
- 7.5MB
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
Spis treści ebooka
- 1.1. Dla kogo jest ta książka (13)
- 1.2. Co znajduje się w tej książce (14)
- 1.3. Czego nie ma w tej książce (16)
- 1.4. Konwencje (18)
- 1.5. Przykładowa baza danych (19)
- 1.6. Podziękowania (22)
- 2.1. Cel: przechowywanie atrybutów wielowartościowych (26)
- 2.2. Antywzorzec: listy elementów oddzielonych przecinkami (27)
- 2.3. Jak rozpoznać ten antywzorzec (31)
- 2.4. Usprawiedliwione użycia tego antywzorca (31)
- 2.5. Rozwiązanie: utworzenie tabeli łączącej (32)
- 3.1. Cel: przechowywanie i uzyskiwanie hierarchii (38)
- 3.2. Antywzorzec: zawsze odwołuj się do rodzica (39)
- 3.3. Jak rozpoznać ten antywzorzec (43)
- 3.4. Usprawiedliwione użycia tego antywzorca (44)
- 3.5. Rozwiązanie: należy użyć alternatywnych modeli drzew (46)
- 4.1. Cel: wypracowanie konwencji dla kluczy głównych (62)
- 4.2. Antywzorzec: jeden rozmiar dla wszystkich (64)
- 4.3. Jak rozpoznać ten antywzorzec (69)
- 4.4. Usprawiedliwione użycia tego antywzorca (70)
- 4.5. Rozwiązanie: klucz skrojony na miarę (70)
- 5.1. Cel: uproszczenie architektury bazy danych (76)
- 5.2. Antywzorzec: rezygnacja z ograniczeń (77)
- 5.3. Jak rozpoznać ten antywzorzec (80)
- 5.4. Usprawiedliwione użycia tego antywzorca (81)
- 5.5. Rozwiązanie: deklarowanie ograniczeń (81)
- 6.1. Cel: obsługa zmiennych atrybutów (86)
- 6.2. Antywzorzec: zastosowanie uniwersalnej tabeli atrybutów (87)
- 6.3. Jak rozpoznać ten antywzorzec (93)
- 6.4. Usprawiedliwione użycia tego antywzorca (94)
- 6.5. Rozwiązanie: modelowanie podtypów (95)
- 7.1. Cel: odwołania do wielu rodziców (104)
- 7.2. Antywzorzec: zastosowanie dwuzadaniowego klucza obcego (105)
- 7.3. Jak rozpoznać ten antywzorzec (109)
- 7.4. Usprawiedliwione użycia tego antywzorca (110)
- 7.5. Rozwiązanie: uproszczenie relacji (110)
- 8.1. Cel: przechowywanie atrybutów wielowartościowych (118)
- 8.2. Antywzorzec: utworzenie wielu kolumn (118)
- 8.3. Jak rozpoznać ten antywzorzec (122)
- 8.4. Usprawiedliwione użycia tego antywzorca (123)
- 8.5. Rozwiązanie: utworzenie tabeli zależnej (124)
- 9.1. Cel: zapewnienie skalowalności (128)
- 9.2. Antywzorzec: klonowanie tabel lub kolumn (129)
- 9.3. Jak rozpoznać ten antywzorzec (134)
- 9.4. Usprawiedliwione użycia tego antywzorca (135)
- 9.5. Rozwiązanie: partycjonowanie i normalizacja (137)
- 10.1. Cel: stosowanie liczb ułamkowych zamiast liczb całkowitych (144)
- 10.2. Antywzorzec: stosowanie typu danych FLOAT (144)
- 10.3. Jak rozpoznać ten antywzorzec (149)
- 10.4. Usprawiedliwione użycia tego antywzorca (150)
- 10.5. Rozwiązanie: stosowanie typu danych NUMERIC (150)
- 11.1. Cel: ograniczenie zakresu danych kolumny do określonych wartości (154)
- 11.2. Antywzorzec: określanie wartości w definicji kolumny (155)
- 11.3. Jak rozpoznać ten antywzorzec (159)
- 11.4. Usprawiedliwione użycia tego antywzorca (160)
- 11.5. Rozwiązanie: określanie akceptowanych wartości na poziomie danych (160)
- 12.1. Cel: przechowywanie obrazów i innych dużych zasobów (166)
- 12.2. Antywzorzec: przekonanie o konieczności stosowania plików (167)
- 12.3. Jak rozpoznać ten antywzorzec (171)
- 12.4. Usprawiedliwione użycia tego antywzorca (172)
- 12.5. Rozwiązanie: stosowanie typów danych BLOB (173)
- 13.1. Cel: optymalizacja wydajności (178)
- 13.2. Antywzorzec: stosowanie indeksów bez żadnego planu (179)
- 13.3. Jak rozpoznać ten antywzorzec (184)
- 13.4. Usprawiedliwione użycia tego antywzorca (184)
- 13.5. Rozwiązanie: zasada MENTOR dla indeksów (185)
- 14.1. Cel: odróżnianie brakujących wartości (196)
- 14.2. Antywzorzec: stosowanie NULL jako zwykłej wartości (lub odwrotnie) (197)
- 14.3. Jak rozpoznać ten antywzorzec (201)
- 14.4. Usprawiedliwione użycia tego antywzorca (202)
- 14.5. Rozwiązanie: stosowanie NULL jako unikatowej wartości (203)
- 15.1. Cel: uzyskiwanie wiersza z największą wartością w skali grupy (210)
- 15.2. Antywzorzec: odwołania do niegrupowanych kolumn (211)
- 15.3. Jak rozpoznać ten antywzorzec (214)
- 15.4. Usprawiedliwione użycia tego antywzorca (215)
- 15.5. Rozwiązanie: jednoznaczne stosowanie kolumn (216)
- 16.1. Cel: uzyskiwanie przypadkowego wiersza (224)
- 16.2. Antywzorzec: losowe sortowanie danych (225)
- 16.3. Jak rozpoznać ten antywzorzec (226)
- 16.4. Usprawiedliwione użycia tego antywzorca (227)
- 16.5. Rozwiązanie: brak ustalonej kolejności... (228)
- 17.1. Cel: pełne przeszukiwanie tekstu (234)
- 17.2. Antywzorzec: predykaty dopasowywania wzorców (235)
- 17.3. Jak rozpoznać ten antywzorzec (236)
- 17.4. Usprawiedliwione użycia tego antywzorca (237)
- 17.5. Rozwiązanie: stosowanie narzędzi odpowiednio dobranych do realizowanych zadań (237)
- 18.1. Cel: ograniczenie liczby zapytań SQL-a (252)
- 18.2. Antywzorzec: rozwiązanie złożonego problemu w jednym kroku (253)
- 18.3. Jak rozpoznać ten antywzorzec (256)
- 18.4. Usprawiedliwione użycia tego antywzorca (257)
- 18.5. Rozwiązanie: dziel i zwyciężaj (257)
- 19.1. Cel: ograniczyć ilość wpisywanego kodu (264)
- 19.2. Antywzorzec: skrót prowadzący na manowce (265)
- 19.3. Jak rozpoznać ten antywzorzec (267)
- 19.4. Usprawiedliwione użycia tego antywzorca (268)
- 19.5. Rozwiązanie: należy wprost nazywać kolumny (269)
- 20.1. Cel: odzyskiwanie lub resetowanie haseł (276)
- 20.2. Antywzorzec: przechowywanie haseł w formie zwykłego tekstu (276)
- 20.3. Jak rozpoznać ten antywzorzec (279)
- 20.4. Usprawiedliwione użycia tego antywzorca (280)
- 20.5. Rozwiązanie: przechowywanie zabezpieczonych kodów haseł (281)
- 21.1. Cel: pisanie dynamicznych zapytań języka SQL (290)
- 21.2. Antywzorzec: wykonywanie niesprawdzonych danych
wejściowych jako kodu (291)
- 21.3. Jak rozpoznać ten antywzorzec (299)
- 21.4. Usprawiedliwione użycia tego antywzorca (300)
- 21.5. Rozwiązanie: nie ufać nikomu (301)
- 22.1. Cel: sprzątanie danych (310)
- 22.2. Antywzorzec: wypełnianie luk (311)
- 22.3. Jak rozpoznać ten antywzorzec (314)
- 22.4. Usprawiedliwione użycia tego antywzorca (314)
- 22.5. Rozwiązanie: zapomnieć o problemie (315)
- 23.1. Cel: pisać mniej kodu (322)
- 23.2. Antywzorzec: ścinanie zakrętów (323)
- 23.3. Jak rozpoznać ten antywzorzec (326)
- 23.4. Usprawiedliwione użycia tego antywzorca (327)
- 23.5. Rozwiązanie: elegancka obsługa błędów (327)
- 24.1. Cel: stosowanie najlepszych praktyk (332)
- 24.2. Antywzorzec: kod SQL-a jako obywatel drugiej kategorii (333)
- 24.3. Jak rozpoznać ten antywzorzec (334)
- 24.4. Usprawiedliwione użycia tego antywzorca (335)
- 24.5. Rozwiązanie: ustanowienie możliwie szerokiej kultury jakości (336)
- 25.1. Cel: upraszczanie modeli w architekturze model-widok-komponent (348)
- 25.2. Antywzorzec: model jako rekord aktywny (Active Record) (350)
- 25.3. Jak rozpoznać ten antywzorzec (356)
- 25.4. Usprawiedliwione użycia tego antywzorca (357)
- 25.5. Rozwiązanie: model zawierający rekord aktywny (358)
- A.1. Co to oznacza, że baza jest relacyjna? (368)
- A.2. Mity dotyczące normalizacji (371)
- A.3. Czym jest normalizacja? (372)
- A.4. Zdrowy rozsądek (383)
Rozdział 1. Wprowadzenie (11)
Część I. Antywzorce logicznego projektu bazy danych (23)
Rozdział 2. Przechodzenie na czerwonym świetle (25)
Rozdział 3. Naiwne drzewa (37)
Rozdział 4. Identyfikator potrzebny od zaraz (61)
Rozdział 5. Wpis bez klucza (75)
Rozdział 6. Encja-atrybut-wartość (85)
Rozdział 7. Związki polimorficzne (103)
Rozdział 8. Atrybuty wielokolumnowe (117)
Rozdział 9. Tribble metadanych (127)
Część II. Antywzorce fizycznego projektu bazy danych (141)
Rozdział 10. Błędy zaokrągleń (143)
Rozdział 11. 31 smaków (153)
Rozdział 12. Pliki-widma (165)
Rozdział 13. Strzelanie indeksami (177)
Część III. Antywzorce zapytań (193)
Rozdział 14. Strach przed nieznanym (195)
Rozdział 15. Niejasne grupy (209)
Rozdział 16. Losowy wybór (223)
Rozdział 17. Wyszukiwarka nędzarza (233)
Rozdział 18. Zapytanie-spaghetti (251)
Rozdział 19. Ukryte kolumny (263)
Część IV. Antywzorce wytwarzania aplikacji (273)
Rozdział 20. Czytelne hasła (275)
Rozdział 21. Wstrzykiwanie SQL-a (289)
Rozdział 22. Obsesja czystości pseudokluczy (309)
Rozdział 23. Przymykanie oczu na zło (321)
Rozdział 24. Immunitet dyplomatyczny (331)
Rozdział 25. Magiczna fasola (347)
Dodatki (365)
Dodatek A. Reguły normalizacji (367)
Dodatek B. Bibliografia (385)
Skorowidz (387)
Oceny i opinie klientów: Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych Bill Karwin (32)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.
(15)
(11)
(3)
(1)
(1)
(1)
Opinia: Piotr,
Opinia dodana: 2020-04-18 Ocena: 6 Opinia potwierdzona zakupem
Opinia: Mariusz,
Opinia dodana: 2015-02-19 Ocena: 6 Opinia potwierdzona zakupem
Opinia: anonimowa
Opinia dodana: 2014-07-02 Ocena: 6 Opinia potwierdzona zakupem
Opinia: anonimowa
Opinia dodana: 2014-03-20 Ocena: 6 Opinia potwierdzona zakupem
Opinia: Marcin,
Opinia dodana: 2013-04-19 Ocena: 6 Opinia potwierdzona zakupem
Opinia: anonimowa
Opinia dodana: 2013-03-02 Ocena: 6 Opinia niepotwierdzona zakupem
Opinia: Tomasz Szulborski, Informatyk
Opinia dodana: 2013-02-08 Ocena: 6 Opinia potwierdzona zakupem
Opinia: Dawid Baruch, Programista
Opinia dodana: 2013-01-20 Ocena: 6 Opinia potwierdzona zakupem
Opinia: Paweł Gargol, informatyk
Opinia dodana: 2013-01-17 Ocena: 6 Opinia niepotwierdzona zakupem
Opinia: Mateusz Drzeżdżon, programista freelancer
Opinia dodana: 2013-01-17 Ocena: 6 Opinia niepotwierdzona zakupem
Opinia: anonimowa
Opinia dodana: 2012-10-15 Ocena: 6 Opinia niepotwierdzona zakupem
Opinia: anonimowa
Opinia dodana: 2012-08-30 Ocena: 6 Opinia niepotwierdzona zakupem
Opinia: Jacek Soboń, programista
Opinia dodana: 2012-08-03 Ocena: 6 Opinia potwierdzona zakupem
Opinia: Kamil Grześkowiak, programista PHP
Opinia dodana: 2012-07-13 Ocena: 6 Opinia potwierdzona zakupem
Opinia: Grzegorz Zdanowski, Programista
Opinia dodana: 2012-06-25 Ocena: 6 Opinia niepotwierdzona zakupem
Opinia: anonimowa
Opinia dodana: 2016-09-20 Ocena: 5 Opinia potwierdzona zakupem
Opinia: anonimowa
Opinia dodana: 2015-01-01 Ocena: 5 Opinia niepotwierdzona zakupem
Opinia: anonimowa
Opinia dodana: 2014-08-10 Ocena: 5 Opinia potwierdzona zakupem
Opinia: anonimowa
Opinia dodana: 2014-07-08 Ocena: 5 Opinia potwierdzona zakupem
Opinia: Robert, Programista - konsultant
Opinia dodana: 2014-05-31 Ocena: 5 Opinia potwierdzona zakupem
Opinia: Andrzej Grażyński, wiadomo
Opinia dodana: 2014-05-20 Ocena: 5 Opinia niepotwierdzona zakupem
Opinia: ZLU, nauczyciel
Opinia dodana: 2014-01-03 Ocena: 5 Opinia potwierdzona zakupem
Opinia: anonimowa
Opinia dodana: 2013-06-22 Ocena: 5 Opinia potwierdzona zakupem
Opinia: Czarek, IT
Opinia dodana: 2013-06-20 Ocena: 5 Opinia potwierdzona zakupem
Opinia: Piotr, IT
Opinia dodana: 2013-06-04 Ocena: 5 Opinia potwierdzona zakupem
Opinia: Przemysław Wojciechowicz, informatyk
Opinia dodana: 2013-01-17 Ocena: 5 Opinia niepotwierdzona zakupem
Opinia: Tester oprogramowania,
Opinia dodana: 2022-10-11 Ocena: 4 Opinia potwierdzona zakupem
Opinia: Wojtek,
Opinia dodana: 2016-09-28 Ocena: 4 Opinia potwierdzona zakupem
Opinia: anonimowa
Opinia dodana: 2016-02-02 Ocena: 4 Opinia potwierdzona zakupem
Opinia: Kamil Jońca,
Opinia dodana: 2018-09-16 Ocena: 3 Opinia potwierdzona zakupem
Opinia: eN, programista
Opinia dodana: 2013-02-19 Ocena: 2 Opinia niepotwierdzona zakupem
Opinia: Maciej,
Opinia dodana: 2013-01-27 Ocena: 1 Opinia potwierdzona zakupem
więcej opinii