Bardzo ciekawymi projektami są zadania polegające na optymalizacji procesów, np.: obliczanie danych, generowanie raportów. Jednym ze sztandarowych moich projektów tego typu jest optymalizacja obliczeń wynagrodzeń w serwisie www.pensje.net.
Jest to serwis który pozwala anonimowo dzielić się informacjami o zarobkach internautom. Aktualnie w bazie jest ponad 7000 rekordów jedna to nie jest przeszkodą do generownia takich raportów jak ten http://www.pensje.net/plec/kobieta,mezczyzna,1,2, w ciągu ułamek sekund.
W tym serwisie zastosowałem optymalizacje na każdym etapie działania. Zarówno po stronie serwerowej jak i użytkownika. Poniżej opisuje elementy które należy optymalizować.
Backend – operacje wykonywane na serwerze
- Optymalizacja zapytań do bazy danych
- Wykonywanie obliczeń podstawowych (sumowanie, grupowanie, średnie) na poziomie zapytań do bazy danych
- Zapamiętywać wyniki działań procedur – nie wykonywać ich ponownie za każdym razem
Frontend – operacje wykonywane w przeglądarce
- Optymalny kod HTML – usuń zbędne rzeczy
- Przesyłanie strony w formie spakowanej – dzięki temu oszczędza się 50% transferu
- Javascript nie powinien obciążać za bardzo procesora.
Powyżej opisałem tylko kilka metod optymalizacyjnych. Jest to bardzo szeroki temat o którym mógłbym rozmawiać godzinami