Co powinieneś wiedzieć za nim zaczniesz tworzyć strone www
Zbiór ogólnych porad znalezionych na serwisie stackoverflow w wątku o podobnym tytule, które pozwolę sobie przytoczyć i uzupełnić. Szkoda, że sam nie zabrałem się do napisania tego tematu wcześniej ;) Nie musisz wiedzieć wszystkiego od razu - możesz traktować to jako listę zadań do wykonania.
- Interfejs i użyteczność
- wygląd witryny powinien być jedną z głównych rzeczy, na którą powinieneś zwrócić uwagę. Przeglądarki w różnym stopniu wspierają standardy, przez co witryna może inaczej się prezentować w każdej z nich. Istnieją strony takie jak browsershot, które pozwalają zobaczyć jak witryna wygląda w różnych środowiskach.
- interfejs powinien być tworzony z myślą, że może być wyświetlany na ekranach o różnej wielkości i rozdzielczości. Tu najlepiej zobaczyć statystyki polskie lub dane ogólne i dostosować interfejs do najliczniejszej grupy.
- aktualizować witrynę, tak aby zmiana była w jak najmniejszym stopniu odczuwalna dla użytkownika.
- nie pokazywania surowych błędów użytkownikowi. Każdy błąd powinien zostać w jakiś stopniu obsłużony z przyjaznym dla użytkownika komunikatem.
- nie wyświetlaj nigdy adresów e-mail jako zwykły tekst, chyba że chcesz, aby osoba otrzymywała tony spamu.
- wprowadź limity w ilości zapytań od jednego hosta, aby ograniczyć możliwości szybkich i wielokrotnych zmian.
- zawsze przekieruj żądanie po wykonaniu POST, aby odświeżenie strony nie powodowało problemów użytkownikom.
- naucz się tworzenia progresywnego.
- Bezpieczeństwo
- wiedzieć co to SQL injection i jak zapobiegać temu.
- wiedzieć co to Cross-site scripting i jak zapobiegać temu.
- wiedzieć co to Cross-site request forgery i jak zapobiegać temu.
- wiedzieć jak zapobiegać przechwyceniu sesji użytkownika.
- nigdy nie ufać danym użytkownika, także danym przetrzymywanym w ciasteczkach.
- nigdy nie przetrzymywać haseł oraz sóli (ang. salt) w postaci jawnej.
- używać HTTPS/SSL do przesyłania ważnych danych jak loginy i hasła.
- utrzymywania oprogramowania serwera w najnowszych stabilnych wydaniach.
- szczegóły połączenia z bazą danych nie mogą być dostępne publicznie.
- czytać informacje o nowych formach ataku na witryny.
- Wydajność
- zaimplementuj system buforowania jeśli jest potrzebny, wykorzystuj nagłówek HTTP cache dobrze.
- optymizuj wielkość obrazków.
- włącz kompresowanie zawartości plików HTML jeśli przeglądarka ją obsługuję.
- złącz wiele małych plików stylów CSS w jeden, aby zmniejszyć ilość połączeń z serwerem.
- wykorzystuj profilery pobierania zawartości, tj. Yahoo lub Google Page Speed.
- wykorzystuj duszki (and. sprites) dla niewielkich elementów interfejsu, jak ikony, przyciski.
- umieszczaj odnośniki do plików CSS na początku pliku HTML, a do skryptów na końcu.
- duże obciążenie rozdziel pomiędzy domeny.
- statyczne pliki, które nie potrzebują dostępu do ciasteczek umieść na osobnej domenie, która nie używa ciasteczek. Powodem jest wysyłanie ich zawartości przy każdym żądaniu.
- minimalizuj ilość żądań potrzebnych do wyświetlenia strony.
- wykorzystuj narzędzia do minimalizacji skryptów JavaScript
- SEO
- wykorzystuj przyjazne i znaczące linki do zasobów w witrynie.
- zmiana linków po zakończeniu kodowania zazwyczaj jest kłopotliwa, planuj więc wygląd linków przed kodowaniem.
- nie twórz linków z napisem kliknij tutaj, a nazwane.
- stwórz mapę witryny oraz plik robots.txt.
- miej na uwadze, że w sieci istnieje wiele botów, które są źle zaprogramowane.
- wykorzystuj <link rel="canonical" ..> do miejsc, które wskazują na tą samą zawartość.
- nie korzystaj z Google analitics, który znacząco spowalnia ładowanie stron, a nie dostarcza więcej informacji niż analizatory logów serwera.
- korzystaj z przekierowań 301, aby nie tracić page ranku na strone z prefiksem www i bez.
- Technologia
- znać protokół HTTP, zwłaszcza różnice pomiędzy metodami GET, POST.
- rozumieć bez stanowość protokołu HTTP.
- tworzyć strony zgodnie z wytycznymi W3C oraz walidować ich poprawność.
- orientować się jak i kiedy wykonywany jest skrypt JavaScript.
- rozumieć jak działa piaskownica JavaScript przy wykorzystywaniu iframe.
- mieć na uwadze, iż wykonywanie skryptów JavaScript może zostać wyłączone, co może uniemożliwić korzystanie ze strony przy korzystaniu z ,np. AJAX.
- wiedzieć jak najwięcej o platformie, na której działa strona.
- korzystać z frameworków CSS, JS niwelujących różnice pomiędzy przeglądarkami.
- Na koniec
- tworzenie nowych funkcji strony przeważnie zajmuje 20% jej życia, podczas gdy utrzymanie i łatanie błędów pozostały czas. Miej to na względzie, kiedy tworzysz rozwiązanie, które nie wiesz, że nie będzie łatwe w utrzymaniu ani satysfakcjonujące.
- zawsze miej na względzie, że każda funkcja może po jakimś czasie być rozbudowywana.
- stwórz dobry system logowania błędów.
- twórz backupy.
- zapoznaj się z testami jednostkowymi.
Lista nie jest mała i wspomina tylko rzeczy naprawde istone z punktu tworzenia publicznej strony WWW.
