RSS

Starzeję się, albo coś o inżynierii oprogramowania

Liczba odsłon: 139

Gdy ukoń­czo­ne opro­gra­mo­wa­nie jest w uży­ciu, je­go tekst źród­ło­wy jest swe­go ro­dza­ju ta­jem­ni­cą: do­ty­ka się go tyl­ko w przy­pad­ku, gdy coś nie dzia­ła po­praw­nie lub trze­ba zwięk­szyć funkcjo­nal­ność. Poważna prze­bu­do­wa opro­gra­mo­wa­nia, ta­ka jak choć­by re­ak­ty­wa­cja te­go ser­wi­su, któ­rą ostat­nio prze­pro­wa­dzam, sta­no­wi okaz­ję, by przy­gląd­nąć się źród­łom dzia­ła­ją­ce­go opro­gra­mo­wa­nia, oce­nić je i zmie­nić w spo­sób od­zwier­cie­dla­ją­cy naj­now­sze tren­dy i tech­ni­ki, lecz prze­de wszyst­kim wie­dzę na­by­tą od mo­men­tu stwo­rze­nia ko­du.

Historia Świata Owo­ców się­ga już czter­na­stu lat. To du­żo jak na ser­wis inter­ne­to­wy. Przez tak dłu­gi czas tekst źród­ło­wy two­rzą­cy ser­wis prze­szedł wie­le zmian i ob­rósł na­le­cia­łoś­cia­mi. Nie by­ło bez zna­cze­nia, że gdy dzie­więć lat te­mu po­wsta­ła pierw­sza dyna­micz­nie ge­ne­ro­wa­na od­sło­na mo­jej stro­ny, w za­sa­dzie uczy­łem się do­pie­ro ję­zy­ka PHP. Kod ser­wi­su był two­rzo­ny zgod­nie z re­gu­łą happy hacking, a ogra­ni­cze­nia sprzę­to­we (moimi do­mo­wy­mi ser­we­ra­mi zaw­sze by­ły sta­re kom­pu­te­ry, wy­co­fa­ne z uży­cia) po­wo­do­wa­ły, że naj­waż­niej­szą ce­chą ko­du mu­sia­ła być wy­daj­ność i oszczęd­ność. Jak naj­mniej treś­ci by­ło ge­ne­ro­wa­nej dyna­micz­nie, a je­że­li już dy­na­mi­zo­wa­łem pew­ne ele­men­ty ko­du, sta­ra­łem się uni­kać baz i zbio­rów da­nych i wpro­wa­dzać in­for­mac­je bez­po­śred­nio do pli­ków PHP.

Najnowsza od­sło­na ser­wi­su zbu­do­wa­na jest cał­ko­wi­cie ina­czej. Oczywiś­cie, tak jak na­pi­sa­łem ostat­nio, więk­szość ko­du zo­sta­ła po­cząt­ko­wo wy­ko­rzy­sta­na po­wtór­nie i tyl­ko prze­ro­bio­na tak, by pa­so­wa­ła do no­we­go wy­stro­ju gra­ficz­ne­go i no­wej kon­cep­cji or­ga­ni­za­cji treś­ci. Na tym jed­nak się nie skoń­czy­ło i przez ostat­nie dni więk­szość wol­nych chwil po­świę­cam re­fak­to­ry­za­cji.

Być mo­że sta­rze­ję się i przed­kła­dam wy­go­dę nad efek­tyw­ność, a mo­że na­uczy­łem się spo­ro i wi­dzę za­le­ty wy­ni­ka­ją­ce z me­to­dycz­ne­go, ele­ganc­kie­go pro­gra­mo­wa­nia, gdyż kod po re­fak­to­ry­za­cji w nie­wiel­kim sto­pniu przy­po­mi­na to, co dzia­ła­ło po­przed­nio. Wszelkie da­ne zo­sta­ły prze­nie­sio­ne do ba­zy SQL. Ich li­sty są od­czy­ty­wa­ne z ba­zy za po­śred­nic­twem obiek­to­wo opi­sa­nych mo­de­li da­nych. Kod HTML jest ge­ne­ro­wa­ny na pod­sta­wie mo­de­li przez obiek­ty wi­do­ków da­nych. Wszystkie kla­sy są za­her­me­ty­zo­wa­ne, a każ­da me­to­da do­ko­nu­je we­ry­fi­ka­cji po­praw­noś­ci ar­gu­men­tów, by w ra­zie ja­kiej­kol­wiek nie­zgod­noś­ci zgło­sić sytu­ację wy­jąt­ko­wą — na­wet nie w ce­lu za­po­bie­że­nia nie­po­praw­ne­mu dzia­ła­niu ser­wi­su, bo i tak zgło­sze­nie sytu­acji wy­jąt­ko­wej koń­czy się przer­wa­niem pro­ce­su ge­ne­ro­wa­nia stro­ny, lecz w ce­lu zwięk­sze­nia bez­pie­czeń­stwa.

Jedyne, cze­mu zo­sta­łem wier­ny, to wy­ko­rzys­ta­nie naj­now­szych stan­dar­dów Sieci. Moja stro­na tak, jak by­ła w czo­łów­ce za­sto­so­wa­nia XHTML, obec­nie jest bu­do­wa­na za po­mo­cą HTML5. Postanowi­łem też iść jak naj­da­lej w kie­run­ku ochro­ny pry­wat­no­ści i zre­zyg­no­wa­łem z ureal­nia­nia licz­by od­wie­dzin za po­mo­cą cias­te­czek (ang. cookies) HTTP. Świat Owo­ców obec­nie nie ko­rzy­sta z żad­nych cias­te­czek i nie mu­si wy­świet­lać ostrze­żeń.