Przegląd internetów #2

Podobnie jak w poprzednim wpisie, zamieszczam linki do ciekawych materiałów znalezionych przeze mnie w ostatnim czasie.

Best Practices for Designing a Pragmatic RESTful API – najlepsze praktyki projektowania RESTowych API, przydatne

PUT vs POST in REST –  wyjaśnienie różnic między metodami HTTP POST i HTTP PUT, j.w. przydatne podczas projektowania RESTowego API

Scaling a High Traffic Web Application: Our Journey from Java to PHP – prezentacja o migracji web-aplikacji o dużym ruchu z języka JAVA na język PHP (!). W skrócie: okazało się, że w PHP znacznie łatwiej jest zrobić skalowalną web-aplikację. Prezentacja zawiera wiele informacji o architekturze skalowalnych aplikacji webowych, przydatnych narzędziach i potencjalnych pułapkach.

Przegląd internetów #1

Poniżej przedstawiam linki do ciekawych materiałów, na które natknąłem się w mijającym tygodniu.

Zastąp ify przez polimorfizm – nagranie z wystąpienia Miško Heveryego o tym dlaczego warto w wielu przypadkach zrezygnować z ifów na rzecz pomorfizmu.

The Joy of Functional Programming – znakomity wykład Venkata Subramaniama z konferencji 33rd Degree 2014. Venkat tłumaczy czym jest mainstream i czym był w historii ludzkości, czym są „pure functions”, o podejściu „Tell don’t ask” i o zaletach programowania funkcyjnego (a są one naprawdę spore). Wykład zilustrowany jest przykładowym kodem. Ważny wniosek z wykładu: „A good code should read like a strory, not like a puzzle.”

PHP: The „Right” Way – darmowa książka o dobrych praktykach w PHP, m.in. wzorce projektowe, daty i czas, UTF-8, testowanie, szablony, Dependency Injection.

Bardziej wydajna paginacja w MySQL

Gdy potrzebujemy wyświetlić tysięczną stronę z dużego zbioru danych, to lepiej nie robić „LIMIT 10000, 10”, ale zapamiętać ostatnie ID, które się wyświetliło (ostatnie ID z poprzednio oglądanej strony) i zrobić:
WHERE id > @ostatnie_id LIMIT 10

Dzięki temu zapobiegniemy również problemowi, który występuje, gdy wpis z bazy danych zostanie usunięty lub dodany pomiędzy wyświetleniem jednej strony a wyświetleniem kolejnej strony. Zazwyczaj w takiej sytuacji użytkownik zobaczy ten sam wiersz dwukrotnie albo nie zobaczy jakiegoś wiersza wcale. Gdy użyjemy powyższej techniki, opisany problem nie wystąpi.

Więcej informacji:
http://forums.mysql.com/read.php?10,380718,381161#msg-381161