Jak wybrać wtyczkę idealną?

Wiele razy spotykałem się z tym pytaniem – „Jak wybierasz wtyczki?”, „Na jakiej podstawie dobierasz wtyczki?”. Cóż, wybór wtyczki często nie jest procesem łatwym, ale jest kilka kwestii na które warto zwrócić uwagę przed wyborem tej jedynej, która ma rozwiązać nasz problem – poniżej kilka porad jak dokonać dobrego wyboru.

#0 Zastanów się czy w ogóle potrzebujesz wtyczki

Ten punkt tyczy się głównie dwóch przypadków:

  1. Bardzo prostych problemów,
  2. Skomplikowanych problemów

W pierwszym przypadku może okazać się, że zamiast instalować wtyczkę wystarczy kawałek kodu dodany w pliku functions.php Twojego motywu potomnego. Przykłady tego typu problemów to:

  • Instalacja kodów śledzących/statystyk,
  • Małe modyfikacje wizualne strony,
  • Zwiększenie poziomu zabezpieczeń instalacji WordPressa

W drugim wypadku może okazać się, że lepiej postawić na autorskie rozwiązanie niż próbować „ulepić” je (najczęściej) z kilku wtyczek. Ta grupa najczęściej tyczy się problemów, które rozwiązujemy na zasadzie – „Wtyczka X nie ma funkcji A, B i C, ale mają je wtyczki Y i Z”. Najczęściej oznacza to spore problemy na poziomie integracji działania wtyczek X, Y i Z a dodatkowo efekty uboczne w postaci narzutu dodatkowego, zbędnego i nieużywanego kodu, ale o tym w kolejnym punkcie.

#1 Dobieraj poziom skomplikowania wtyczki adekwatnie do skali Twojego problemu

Umówmy się – instalowanie WooCommerce gdy chcesz sprzedawać na stronie 2 e-booki to trochę przerost formy nad treścią. Oczywiście zawsze wtedy pojawia się ktoś kto mówi „ale przecież może za rok będę mieć sklep z e-bookami! Lepiej przygotować się na to zawczasu”.

Warto być w takiej sytuacji pragmatycznym i stosować rozwiązania adekwatne do skali swojego bieżącego działania, ewentualnie z pewnym buforem. Oczywiście życzę każdemu by udało mu się rozkręcić jego biznes na tyle by te przygotowania poczynione na początku się w końcu przydały, lecz życie pokazuje, że mało kiedy jest tak jak planowaliśmy – zwłaszcza w świecie początkujących biznesów/projektów, gdzie dopiero zaczynamy odkrywać swoją grupę docelową.

Wracając do wspomnianego przykładu z WooCommerce – dlaczego nie? Bo WooCommerce to dosyć spory kombajn, wymaga pewnego poziomu wiedzy, odpowiedniej konfiguracji oraz (a może przede wszystkim) UTRZYMANIA. Utrzymanie w tym wypadku objawia się tym, że WooCommerce jak każda większa wtyczka się stale rozwija – jego API się zmienia a dodatkowo czasem trzeba dostosować do niego motyw.

Czy warto wydawać pieniądze / poświęcać swój czas na coś co może nam się w ogóle w przyszłości nie przydać? Nie sądzę 🙂

Inny przykład to wtyczki do zarządzania galeriami – jeżeli posiadamy relatywnie niewielką liczbę zdjęć, to spokojnie można to rozwiązać natywnym mechanizmem galerii wraz z wtyczką od popupów ze zdjęciami.

#2 Sprawdź czy wtyczka nie zawiera błędów bezpieczeństwa

Temat galerii wspomniałem w poprzednim punkcie celowo. Jest taka popularna wtyczka od galerii – NextGEN Gallery. Gdy jednak zajrzymy na stronę WPScan Vulnerability Database to zobaczymy, że mniej więcej każda duża wersja tej wtyczki w ostatnim czasie miała jakąś lukę bezpieczeństwa – i to nie są jakieś drobne niedociągnięcia tylko poważne błędy typu SQL Injection czy możliwość wysłania na nasz serwer dowolnego pliku. Gdy dodamy do tego dużą popularność tej wtyczki widać, że ryzykujemy całkiem sporo, bo tego typu podatności w popularnych wtyczkach najczęściej kończą się zmasowanymi atakami na strony używające tych wtyczek.

Oczywiście ciężko o oprogramowanie bez błędów bezpieczeństwa (szczególnie popularne), jednak warto zawsze sprawdzić czy dana wtyczka miała dużo problemów z bezpieczeństwem w przeszłości, a jeśli tak to czy nie było jakiś małych afer dookoła tego tematu. Niektórzy autorzy wtyczek niechętnie dzielą się informacjami o lukach bezpieczeństwa w changelogu wtyczki albo reagują na błędy dopiero po opublikowaniu podatności publicznie.

Ogólnie im popularniejsza wtyczka i im więcej (i im bardziej poważnych) błędów bezpieczeństwa w przeszłości posiadała tym ostrożniej powinniśmy podchodzić do danej wtyczki.

#3 Zobacz co o wtyczce mówi repozytorium

Każda wtyczka w repozytorium posiada kilka użytecznych informacji z punktu widzenia podjęcia decyzji o jej instalacji.

Warto zwrócić uwagę na (kolejność nieprzypadkowa ;)):

  1. Proporcję ocen pozytywnych (5 i 4) do ocen negatywnych (1 i 2),
  2. Recenzje wystawiane przez użytkowników – może się okazać, że opis wtyczki jest mylący albo wtyczka nie robi tego czego byśmy oczekiwali,
  3. Czas odpowiedzi na forum wtyczki istniejącym na repozytorium – dzięki temu wiemy ile mniej więcej możemy czekać na odpowiedź od autora. Czerwona lampka powinna się nam zapalić gdy autor niezbyt udziela się na forum.
  4. Kompatybilność wtyczki z aktualnie używaną przez nas wersją WordPressa,
  5. Ilość aktywnych instalacji (osobiście unikam tych < 1000 jeśli mogę),
  6. Data ostatniej aktualizacji,
  7. Częstotliwość aktualizacji

Dwa ostatnie punkty warto też odnieść do poziomu skomplikowania wtyczki – jeżeli wtyczka robi jedną rzecz a jej kod zamyka się w kilkuset linijkach kodu to nic dziwnego, że od 2-3 lat leży nieaktualizowana – to po prostu działa 🙂

#4 Zbadaj wpływ wtyczki na wydajność Twojej strony

Warto tymczasowo zainstalować sobie wtyczkę Query Monitor i odświeżyć kilka razy stronę notując przy tym czas odpowiedzi i ilość zapytań. A następnie powtórzyć operację po instalacji wtyczki. Prosta sprawa a pozwala uniknąć zbędnych kosztów.

Ostatnio miałem przypadek gdy wtyczka, która robiła to co 6 linijek kodu CSS (z prefiksami) wydłużała czas wczytywania strony o 5-6 sekund i dokładała od siebie 80 zapytań SQL do bazy 🙂

Zresztą na WordCampie też raz na jakiś czas pojawia się takie cool story o tym jak to autor/developer odkrywa, że niepozorna wtyczka katuje zupełnie niepotrzebnie serwer swoją obecnością 😉

#5 Zweryfikuj czy to co robi wtyczka na pewno robione jest z użyciem adekwatnych technologii

To punkt dla bardziej zaawansowanych użytkowników z wiedzą techniczną – warto czasem sprawdzić jak wtyczka rozwiązuje dany problem. Na przykład w poprzednim punkcie opisałem właśnie taki przykład – wtyczka po stronie serwera robiła coś co da się zrobić poprzez kod CSS/JS – wielokrotnie szybciej i bez obciążania serwera.

Dodatkowy profit z tego podejścia jest taki, że można się nauczyć wielu nowych trików i rozwiązań.

#6 W wypadku dużych wtyczek – przetestuj ją lokalnie

Jeżeli przymierzamy się do instalacji jakiejś większej wtyczki, warto zbadać jej wpływ na naszą stronę na lokalnej instalacji lub środowisku testowym. Dzięki temu unikniemy wielu niespodziewanych problemów i konfliktów.

#7 Preferuj wtyczki z repozytorium

Szczególnie w wypadku mniejszych wtyczek – warto korzystać z tych, które znajdują się w oficjalnym repozytorium wtyczek. Z prostego powodu – zostały one przejrzane przez wolontariuszy i spełniają (z reguły ;)) pewne standardy bezpieczeństwa i jakości kodu.

Masz swoje sposoby weryfikacji wtyczek? Podziel się nimi w komentarzach 🙂