Symfony Camp: Dzień pierwszy
Drugi Symfony Camp (12-13.09.2008, Leudsen) zebrał blisko 100 osób. Najwięcej Holendrów i Niemców (w końcu mieli najbliżej ;). Nasza grupa już w pierwszym dniu zdominowała Camp i ludzie identyfikowali nas jako ta firma z Polski, która przyjechała w największej obstawie. Cel marketingowy osiągnięty!!!
Camp to idealna okazja na wymianę doświadczeń i porozmawianie z ekspertami na temat trendów oraz znalezienie możliwości rozwiązania problemów, z którymi każdy się spotkał. Fabien Potencier opowiadał o nowych funkcjonalnościach Symfony. Dustin Whittle przedstawiał jak wykorzystał w projekcie dla Yahoo framework Symfony (LINK). W chwili obecnej Yahoo Gadgets, Yahoo Bookmarks i Delicious opieraja się o Symfony. XSolve korzysta z tych samych narzędzi, które używają liderzy serwisów www. Sądzę, że obrana przez nas rok temu droga korzystania z Framework Symfony była trafna. W końcu na dzień dzisiejszy zrealizowaliśmy 7 projektów korzystając z tego frameworka. Nawiasem mówiąc na campie (poza ekspertami tworzącymi framework) byliśmy w czołówce użytkowników, którzy zrealizowali największą liczbę projektów w oparciu o Framework Symfony.
Optymalizacja aplikacji webowych w wykonaniu Fabiana Lange pokazała jak wiele można zrobić z aplikacją, gdy zaczynamy mieć problemy z wydajnością. Dla mnie była to najlepiej przygotowana prezentacja w pierwszym dniu. Generalnie optymalizację aplikacji webowych można przeprowadzać w następujących obszarach:
- Przeglądarka
- Framework
- Oprogramowanie po stronie serwera
- Sprzęt
- Optymalizacje po stronie przeglądarki w akcji!!!
Generalnie na ustawienia przeglądarki nie mamy większego wpływu. Są jednak generalne zasady działania przeglądarek, które trzeba wziąć pod uwagę i mimo nieznajomości przeglądarki naszego użytkownika uprzyjemnić mu życie.
1.Limitowana liczba połączeń ustanawianych przez przeglądarkę. Przeglądarki otwierają 2-6 połączeń do jednego hosta. Panują tutaj następujące zasady:
a.Umieszczenie plików multimedialnych na innych hostach. Poprzez oddzielnie kontentu video, plików graficznych na osobne servery. Gdy nie mamy takiej możliwości możemy skorzystać z możliwości stworzenia subdomen w naszej domenie. Ostatecznie subdomena to inny host ;)
b.Poszukaj możliwości przeniesienia najcięższych zawartości na osone hosty lub subdomeny.
c.Pobranie znaczników HTML jest relatywnie najszybsze
d.Pliki Cookiem są wysyłane tylko do jednego hosta
2.Miejsce zagnieżdżenia CSS i JavaScript
a.CSS zawsze na początku w tagu HEAD. Wtedy przeglądarka od razu renderuje stronę i użytkownik otrzymuje szybciej ostateczny wygląd strony.
b.JavaScript zawsze na końcu. W trackie ładowania strony, gdy przeglądarka natrafi na JavaScript zwalnia to ładowanie strony. Znacznie bardziej optymalne jest załadowanie całej strony (użytkownik już coś będzie widział) i na samym końcu załadowanie JS.
3.Zawsze podawaj rozmiar obrazka. W trakcie pobierania pliku przeglądarka będzie wiedziała jak duży jest obrazek i przygotuje sobie na to miejsce na stronie. Zatem gyd plik będzie się dłużej ściągał strona od początku będzie wyglądała ładnie i nie będziemy mieli efektu przeskakiwania strony. Takie odczucie często występuje, gdy pobierane SA duże obrazki bez podanego rozmiaru.
4.Minimalizacja requestów. AJAX daje nam duże możliwości wykonania pewnych akcji w tle tak, by dla użytkownika było to nieodczuwalne. Jednak wysyłanie zbyt dużej liczby requestów prowadzi do obciążenia przeglądarki no i może się okazać, że akurat ktoś kliknął coś co się dociąga. Projektując strony staraj się minimalizować liczbę requestów. Może lepiej zrobić jedno bardziej kompleksowe zapytanie. Każde otwarcie połączenia wymaga czasu.
5.Używaj daty wygaśnięcia ważności dla zasobów. W Apache istnieje opcja ExpiresDefault, która oznacza kiedy niejako wygasa ważność zasobów. W praktyce, gdy przeglądarka pobiera obrazki i ma je również w cache to przy włączonym znaczniku ExpiresActive On obrazki nie będą pobierane ponownie. Przykładowa konfiguracja wygląda następująco:
ExpiresActive On
ExpiresDefault ”access plus 10 years”
Więcej o optymalizacji w kolejnym wpisie…


