Kiedy sta­ra­łem się o pracę w Inter­net Cen­ter Pol­ska pół­tora roku temu, w ramach kwa­li­fi­ka­cji zosta­łem posa­dzony przed kom­pu­te­rem i dosta­łem za zada­nie napi­sa­nie w PHP panelu do zarzą­dza­nia pro­stą, jed­no­ta­be­lową bazą danych. Dziś był­bym w sta­nie to zro­bić w ciągu kil­ku­na­stu minut i całość zawrzeć w pię­ciu liniach kodu.

Od roku coraz więk­szą popu­lar­no­ścią cie­szą się fra­me­worki imple­men­tu­jące CRUD jako prze­zro­czy­stą auto­ma­tykę, rewo­lu­cję zaczął znany dziś wszyst­kim sil­nik Ruby on Rails. Cała idea polega na odse­pa­ro­wa­niu wła­ści­wego kodu apli­ka­cji (model, kon­tro­ler) od war­stwy naj­niż­szego rzędu, odpo­wia­da­ją­cej za prze­cho­wy­wa­nie danych (sto­rage). Ta ostat­nia jest obsłu­gi­wana auto­ma­tycz­nie przez sil­nik, wystar­czy zatem stwo­rzyć odpo­wied­nie tabele w bazie danych i zade­kla­ro­wać wza­jem­nie rela­cje pomię­dzy obiek­tami — spro­wa­dza się to do dopi­sa­nia wła­ści­wych słów klu­czo­wych do klasy modelu.

Po krót­kim pro­to­ty­po­wa­niu połą­czeń, sil­nik staje się zupeł­nie prze­zro­czy­sty. Można wyko­ny­wać dowolne ope­ra­cje na instan­cjach poszcze­gól­nych klas, a każda zmiana zosta­nie natych­miast odzwier­cie­dlona w zawar­to­ści bazy danych. Odpada koniecz­ność pisa­nia zawi­łych zapy­tań SQL, wzra­sta też ela­stycz­ność kodu (staje się nie­za­leżny od struk­tury poszcze­gól­nych tabel — po doda­niu nowego pola, nie ma potrzeby mody­fi­ka­cji kodu odpo­wie­dzial­nego za obsługę tabeli).

Oczy­wi­ście, Rails nie jest jedy­nym fra­me­wor­kiem tego typu. W jego ślady poszli dewe­lo­pe­rzy korzy­sta­jący z innych języ­ków pro­gra­mo­wa­nia. Dziś szkie­lety podob­nych lub iden­tycz­nych roz­wią­zań dostępne są dla więk­szo­ści z popu­lar­nych języ­ków. Naj­czę­ściej sto­so­wany w apli­ka­cjach małego i śred­niego kali­bru, PHP, ma ich nawet kilka. Szcze­gól­nie inte­re­su­jący jest jed­nak jeden z pierw­szych, dostępny od zeszłego roku Cake­PHP — tutaj nawet słowa klu­czowe (w PHP repre­zen­to­wane przez zmienne) są żywcem zaczerp­nięte z pierwowzoru.

Kiedy warto sto­so­wać CRUD? Odpo­wiedź jest pro­sta — kiedy tylko się da. Oczy­wi­ście, nikt nie zbu­duje w ten spo­sób wydaj­nego sys­temu ban­ko­wego, ale więk­szość two­rzo­nych apli­ka­cji to roz­wią­za­nia z niż­szej półki — apli­ka­cje ekstra-/intranetowe, sys­temy CMS i dyna­miczne witryny inter­ne­towe. Bio­rąc pod uwagę, że pro­ces two­rze­nia opro­gra­mo­wa­nia ulega kil­ku­na­sto­krot­nemu skró­ce­niu i staje się bar­dziej odporny na błędy, korzy­ści są nie do odrzucenia.

Tech­no­rati Tags: , , , , , ,