niedziela, 10 kwietnia 2011

Po co się powtarzać?

No właśnie po co? Nikt tego nie lubi, ale często początkujący twórcy witryn robią to tak często, że nawet brak mi komentarza (w tym do samego siebie, bo robię to nagminnie).
O co chodzi? Głównie o pisanie funkcji, a jeszcze lepiej o przejście ze stylu proceduralnego na obiektowy!
Zastanawialiście się ile trzeba pracy włożyć, żeby postawić zwyczajną stronę? Logo na górze, jakieś menu, zawartość, stopka i kilka podstron? No właśnie pisanie w kółko znaczników html trochę przytłacza. Nie mówiąc już o tym, że kiedy macie do wykonania bardziej skomplikowane zadanie (natury matematycznej oraz logicznej) myślicie długo jak je rozwiązać. Piszecie kod, po jakimś czasie udaje Wam się go zoptymalizować na tyle, że nie tylko zajmuje mniej miejsca, ale jest też wydajniejszy.

Zaczynacie pisać inną stronę, albo też poprawiacie (czy pomagacie w optymalizacji) i rozwiązujecie problem na nowo i jeszcze raz i jeszcze..... Koło się nie zamyka..... Tylko czy zadaliście sobie ważne pytanie: "Dlaczego?"
Sam wiem, że czasem po prostu chodzi o radość pisania, czucia, że się tworzy coś nowego. Nie mniej w chwili gdy chcecie stworzyć nowy serwis (i to rozbudowany) tracicie powiedzmy rok, na napisanie bazy (fundamentów) pod niego. Stworzyliście coś ekstra, działacie dalej. Pamiętajcie, w sieci liczy się CZAS!!! Nie tylko Wasz, ale i użytkowników (no i konkurencji!!).

Drogi autorze strony internetowej: poświęć przy okazji tworzenia jednego ze swoich projektów, nawet miesiąc na utworzenie takich funkcji w kodzie, aby nadawały się one do powtórnego wykorzystania! Twórz je elastyczne! Jak? Otóż staraj się, aby funkcja zawierała podstawowy mechanizm działania (oraz dotyczyła tylko jednego działania), a argumenty które przyjmuje stały się na tyle bazowe, że niezależnie czy użyjesz tej funkcji w stronie X, czy stronie Y, wykona ona swoje zadanie z takim samym skutkiem!
Czy życie i pisanie kodu nie było by o wiele bardziej przyjemne? Pomyśl tylko! Zamiast łamać sobie głowę nad problemem, kopiujesz tylko już istniejącą funkcję do "biblioteki". Implementujesz ją do strony a w kodzie kluczowym wystarczy już tylko wywołać funkcję z odpowiednimi parametrami! Szybko, łatwo prosto.... Nie do końca ;)

Zastanów się zawsze czy dana funkcja absolutnie spełnia Twoje wymogi pod daną stronę! Jest to niezmiernie ważne, bo czasem możesz otrzymać wyniki, których się zupełnie nie spodziewasz. Oczywiście nic nie stoi na przeszkodzie, aby zmodyfikować tą samą funkcję, aby działała optymalnie dla Twojej konkretnej strony ;)

Tryb obiektowy:
Połapanie się w obiektach i tym co się z nimi wiąże, jest warte przesiedzenia nad nimi dłuższej chwili czasu.
W stylu obiektowym pisanie kolejnej strony może być przysłowiową "bułką z masłem", o ile wcześniej masz już napisany szkielet całej strony. Chodzi o to, aby utworzyć mechanizm podstawowego działania strony jako jej szkielet. Np: tworzysz kilka klas i zapełniasz je metodami. Kopiując na następny swój projekt takie zaplecze, wystarczy już tylko, że za pomocą kilku linijek kodu utworzysz kilka obiektów. W ten sposób możesz naprawdę minimalnym do maksimum (świetne stwierdzenie, prawda?) kosztem połączyć się z bazą danych, wyciągnąć z niej wiersze odpowiedzialne za newsy ze strony głównej i je wyświetlić.

Oczywiście przykład powyżej jest tak banalny, że napisanie wszystkiego od nowa nie trwało by długo, ale skoro można sobie coś jeszcze bardziej ułatwić i przyspieszyć, to dlaczego nie?!

Ja sam postawiłem sobie za cel napisanie takiego szkieletu strony w stylu obiektowym, który pozwoli tworzyć serwis z wieloma pod stronami bez zbędnego powtarzania się. Może więc i TY już dziś zaczniesz zastanawiać się nad swoim szkieletem? Z czasem zobaczysz, że jest Ci on naprawdę potrzebny i wygodny!

Najprostszym przykładem takiego NIE powtarzania się, jest wydzielenie do osobnych plików części "ramkowych" (nagłówek oraz stopka) serwisu, a następnie włączanie ich do strony. W ten sposób jeżeli chcesz zmienić jedynie zdanie w swojej stopce wystarczy, że uaktualnisz 1 plik! Nie musisz tego powtarzać na tysiącach podstron! Wygodne? Pewnie, ze tak i nikt mnie nie przekona, ze nie!
Jeśli chcesz możesz zostawić swoje argumenty w komentarzu, chętnie podyskutuję!

Brak komentarzy:

Prześlij komentarz