Blog Tomka Wójcika

Moje miejsce w Sieci

Ujarzmianie MySQL.

Opublikował/a tomekwojcik w dniu luty 27, 2008

Za namową Forgera postanowiłem zaprzyjaźnić się z MySQL’em. Do niedawna baza stanowiła dla mnie przechowalnię danych. Starałem się efektywnie na niej pracować, ale nie myślałem o tym, żeby traktować MySQL’a jako silnik obróbki danych.

Jako, że najlepiej uczę się nowych rzeczy w praktyce to postanowiłem poznać bliżej SQL’a na konkretnym przykładzie - niekończących się analizach mojego billing’u. Aktualnie pracuję nad procedurą wyliczającą sumy ilości i kosztów poszczególnych zdarzeń (SMS, MMS, Rozmowa) z podziałem na operatorów. Dodatkowo zadaniem tej procedury jest wyizolowanie z połączeń wewnątrz Orange’a tych, które wykonywane były w ramach Darmowych Wieczorów i Weekend’ów. Nie ukrywam, że jest z tym troche motaniny, ale wynika ona głównie z mojej nieznajomości zasad rządzących programowaniem po stronie bazy danych. Nie zmienia to faktu, że jestem tym podejściem zachwycony. Przeniesienie takiej obróbki danych na bazę pozwoliło mi zakomentować dosyć znaczny fragment kodu w PHP, a co za tym idzie uprościć i przyspieszyć całą aplikację. Dodatkową zaletą jest zwiększenie bezpieczenstwa całego systemu, choć do warunków idealnych trochę mi jeszcze brakuje. Nad tą kwestią będę myślał dopiero jak cały system będzie funkcjonował. Wtedy przyjrzę się bliżej zapytaniom przygotowanym…

Po co to wszystko? Ano po to, żeby nauczyć się ułatwiać sobie życie. Nie od dzisiaj wiadomo, że separacja poszczególnych poziomów aplikacji jest dobra. Model MVC jest już powszechny we framework’ach aplikacji WWW i powoli jest adaptowany przez aplikacje systemowe. Dobrym przykładem jest tutaj Cocoa i podejście przyjęte przez Apple. Programując aplikacje na Mac OS X wykorzystuje się właśnie model MVC. Dzięki temu odczytywanie danych konfiguracyjnych jest dziecinnie proste, bez względu na to co te dane przechowuje (aktualnie jest to plik XML, ale w przyszłości może to być np. baza SQLite). Z moich dotychczasowych (nie ukrywam, że dość ubogich) doświadczeń wynika, że taka filozofia bardzo pomaga programiście, który koncentruje swoją uwagę na właściwym działaniu aplikacji a nie otoczce.

Walczę z SQL’em też z innego powodu. Tworzenie tego typu interfejsów odrobinę zbliża mnie do tego, co chcę robić w przyszłości. Chcę się zajmować pracą przy rozwijaniu systemów operacyjnych, ale nie na poziomie jądra czy sterowników (nienawidze babrania się w sprawach związanych ze sprzętem). Myślałem o pracy przy rozwijaniu API i framework’ów, dzięki którym system i aplikacje na niego pisane są efektywne i stabilne. Oprogramowując bazę danych tworzę API, które będzie można wykorzystywać w innych aplikacjach. W tej chwili to API jest wykorzystywane przez zestaw skryptów PHP, ale niedługo będzie to natywna aplikacja OS X. Po drodze będę musiał jeszcze rozwinąć projekt interfejsu bazodanowego opartego o XML i HTTP. Do czasu doedukowania się w zakresie SQL postanowiłem ten projekt zawiesić, ponieważ nie chcę w nim później wprowadzać jakichś drastycznych zmian. Bardzo nie lubię zmian funkcjoalności.

Wszystkie te sprawy - zaawansowany SQL, Cocoa, Python, XML i PHP spotkają się w momencie rozpoczęcia prac nad moim “trochę innym CMS’em”. Faza planowania chyli się powoli ku końcowi. Na tą chwilę dysponuję dość konkretnym zestawem założeń i pomysłów. Jest to co prawda dość odległa przyszłość (planowany termin rozpoczęcia prac - 01.06.2008), ale już teraz poświęcam temu projektowi każdą wolną chwilę.

W zawodzie, który sobie wybrałem najlepsze są dwie rzeczy - tworzenie i ciągły rozwój… Rozwinę kiedyś ten temat :).

Dobranoc.

Napisz odpowiedź

XHTML: Możesz wykorzystać te tagi: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>