Po wydarzeniach z ostatnich kilku dni naszła mnie pewna refleksja. Zazwyczaj byłem gorącym zwolennikiem teorii, że koło już ktoś wynalazł i nie ma sensu szukać kolejnego sposobu jak to zrobić. Mówiąc po ludzku – korzystajmy z gotowych frameworków, skryptów itd. gdzie tylko możemy – po co pisać od nowa coś co zostało już napisane?
Kilka dni temu zmieniłem zdanie. Gotowe rozwiązania są fajne, ale należy z nich korzystać z rozwagą. Co skłoniło mnie do zmiany zdania?
Otrzymałem zadanie polegające na stworzeniu w Javascripcie slideshow ze zdjęciami. Moje doświadczenia z Javascriptem w przeszłości były bardzo nikłe, ale postanowiłem przyjąć wyzwanie. Najbardziej intuicyjnym wyjściem było poszukać gotowego rozwiązania i przystosować je do konkretnego przypadku. Wybrałem do tego celu Google AJAX Feed API.
Wydawało się być idealnym rozwiązaniem – samo skalowało zdjęcia, łatwe w konfiguracji (czas wyświetlania, czas przejścia itd.). Jedynym mankamentem była konieczność stworzenia Feeda za pomocą którego skrypt wiedział jakie zdjęcia ma wyświetlać i skąd je pobrać. Po raz kolejny – nigdy tego nie robiłem, więc postanowiłem się nauczyć.
Zajęło mi to chwilę, zadowolony z siebie wykonałem pracę. Na moim komputerze działało we wszystkich przeglądarkach. Oddałem do testów i następnego dnia dostałem informację, że pod Internet Explorerem niestety nie działa. I faktycznie nie działało. Nie miałem pojęcia dlaczego, wykonałem kilka losowych czynności i ruszyło. Sprawdziłem na wszystkich komputerach jakie miałem w domu i wszystko wydawało się być w porządku. Przekazałem ponownie do testowania. W odpowiedzi usłyszałem, że po wyczyszczeniu cache nadal nie chce działać. Po raz kolejny wykonałem kilka nielogicznych operacji włączając w to tym razem czyszczenie cache. Kiedy już wydawało mi się, że znalazłem w tym jakąś logikę – dostałem odpowiedź – “przykro mi, nadal nie działa”.
No cóż… programowanie jasnowidzące zupełnie mi nie szło, więc świat podał mi pomocną dłoń. U mnie też przestało działać. Raz działało, raz nie (mowa o IE, ponieważ w innych przeglądarkach było w porządku). Nie wytrzymałem. Po całym dniu walki stwierdziłem, że następnego dnia z samego rana spróbuję napisać taki skrypt własnoręcznie. Efekt? Spędziłem nad tym około godziny czasu i podstawowa wersja działała. W kolejnych kilka chwil udało mi się dopracować efekt przejścia pomiędzy zdjęciami dla wszystkich przeglądarek. Czy nie byłoby łatwiej zrobić tak od razu? Miałem niemałą satysfakcję, że udało mi się to napisać samemu, sporo się nauczyłem, a przede wszystkim – zaoszczędziłem godziny czasu i sporo swoich nerwów! (nie wyobrażam sobie drugiego dnia debugowania w ciemno)
Kiedy zatem korzystać z gotowych rozwiązań?
- kiedy stworzenie własnego przekracza pewien krytyczny czas (trzeba sobie ten czas ustalić samemu),
- kiedy funkcjonalność, której poszukujemy jest obszerna
- kiedy nie mamy zielonego pojęcia jak zacząć
Warto czasami uwierzyć w siebie i nie zaczynać od myślenia “przecież sam tego nie napiszę…”. Znalezienie błędu we własnym kodzie na 20-30 linijek jest bardzo proste w porównaniu do Google’owego demona, którego ogarnięcie zajęło by pewnie godziny lub dni.
Oj zgadzam się w 100%. Nieraz, szczególnie, kiedy muszę odpalić coś w pracy decyduję się na użycie gotowego skryptu, szczególnie, że mój szef jest zdania “po co Pan ma siedzieć nad czymś dzień i pisać samemu, skoro jest gotowiec?”. Kończy się to tak, że klnę w piętra i tracę dużo więcej czasu poprawiając i dostosowując do własnych potrzeb coś, co pisząc od zera samodzielnie załatwiłbym w godzinę czy dwie…
Wiktor, a szablon bloga byl wlasny, czy gotowy? Bo masz bledy w nim ;)
Gotowy :)
ale przeciez mozna budowac skrypty w miare mozliwosci uniwersalne i pozniej na nich bazowac
zamierzam teraz zrobic wysiwyg, mimo, ze nei mam zielonego pojecia o takim skrypcie ^^