Ekziston një tendencë në komunitetin Rails për të shmangur SQL si murtaja. Ne nuk duam të shkruajmë SQL, nuk duam të lexojmë SQL dhe, mbi të gjitha, nuk duam të kuptojmë SQL. Kjo është ajo që bëjnë administratorët e bazës së të dhënave, apo jo? Është puna e tyre, jo e jona. Nëse nuk kemi një DBA (ata njerëz janë shumë të shtrenjtë), ne kemi ActiveRecord dhe ndërfaqet e tij të fuqizuara nga pluhuri i zanave. Ne si komunitet vuajmë nga sqlphobia.

E gjithë kjo është e kuptueshme: të shkruarit SQL ndihet si të lëvizësh një shkallë poshtë, sesa lart, në shkallën e abstraksioneve. Kjo nuk është ajo që ne jemi trajnuar të bëjmë. Bota e zhvillimit të softuerit po kalon në mënyrë progresive nga SQL e pastër në bibliotekat e abstraksionit të bazës së të dhënave apo edhe ORM-të e plota. Thjesht dukej e drejtë thjeshtimi i një pjese kaq komplekse të ekosistemit dhe lejimi i zhvilluesve të përqëndrohen në Gjërat që kanë rëndësi™.

Baza e të dhënave është ende një pjesë e aplikacionit tuaj, megjithatë, dhe gjithashtu mjaft e rëndësishme. Do të pendoheni që e neglizhoni më vonë, kur do të keni probleme me performancën sa një baobab dhe nuk e dini se nga vijnë ato, sepse nuk e dini se çfarë është një indeks, çfarë bën një çelës i huaj apo diçka tjetër. DBMS-ja juaj mund të bëjë shumë më tepër se SELECT/INSERT/UPDATE/DELETE.

Siç do t'ju tregoj, shpesh është më pak problem të shkruani SQL sesa ta shmangni atë. Bazat e të dhënave kanë zgjidhur tashmë disa nga problemet për të cilat përdorim ORM-të, dhe ato janë në thelb më të mira në ruajtjen e integritetit të të dhënave sesa çdo aplikacion i shkruar me ndonjë gjuhë skriptimi ose programimi, kornizë ose bibliotekë që ka ekzistuar ndonjëherë në faqen e Tokës.

Kjo është një thirrje për veprim për të gjithë zhvilluesit që të heqin qafe sqlphobia e tyre dhe të fillojnë t'i japin bazave të të dhënave të tyre vëmendjen që meritojnë. Jeta është shumë e shkurtër për të mos mësuar se si funksionojnë shprehjet e zakonshme të tabelave.

Një mendim mbi agnosticizmin e bazës së të dhënave

Disa nga teknikat e ilustruara në këtë seri nuk janë agnostike për bazën e të dhënave. Edhe nëse të gjitha bazat e të dhënave të njohura i zbatojnë ato, ato të gjitha e bëjnë atë në një mënyrë paksa të ndryshme, që do të thotë se aplikacioni juaj nuk do të jetë i lëvizshëm dhe do të kyçet në atë DBMS specifike në momentin e dytë që i përdorni.

Agnosticizmi i bazës së të dhënave, për fat të keq, është një tjetër avantazh i ORM-ve shumë i theksuar dhe i dashur në komunitetin e softuerit, veçanërisht në radhët e fillestarëve (edhe pse nuk është e rrallë të shohësh zhvillues me përvojë që e konsiderojnë atë një tipar kryesor të aplikacioneve moderne të uebit). Ne kemi këtë imazh të mrekullueshëm në mendjen tonë të një aplikacioni që funksionon kudo, nëpër mjedise, baza të të dhënave, sisteme operative dhe gjuhë të ndryshme. Epo, nuk funksionon kështu.

Më lejoni ta them shumë qartë: bllokimi i bazës së të dhënave është një problem pa probleme, gjë që e bën agnosticizmin e bazës së të dhënave një jo zgjidhje. Nëse nuk jeni duke punuar në një CMS me burim të hapur i cili duhet të vendoset në një numër kontekstesh jashtëzakonisht të ndryshme, nuk do të duhet të shqetësoheni për këtë. Thjesht zgjidhni një DBMS të mirë për të filluar dhe qëndroni me të. Unë rekomandoj dhe përdor PostgreSQL për shkak të respektimit të tij superior ndaj standardit ACID, por shumë njerëz atje po përdorin MySQL (pothuajse) pa asnjë problem.

Para së gjithash, kur ishte hera e fundit që ndërruat DBMS gjatë një projekti? Kjo thjesht nuk ndodh: pasi kërkesat bazë janë të qarta që nga fillimi i një projekti (nëse nuk janë të tilla, nuk është SQL për të cilën duhet të shqetësoheni), kështu është edhe DBMS që duhet përdorur.

Edhe nëse një migrim ishte në rregull, është një rast kaq i rrallë saqë avantazhet e të shkruarit të SQL-së tuaj ia vlen të mundeni për ta rishkruar atë të ekzekutuar në DBMS-në e re. Me një grup të mirë testesh integrimi (ju ii keni ato, apo jo?), nuk duhet të jetë shumë e vështirë që gjithçka të funksionojë si më parë. Nëse është, ndoshta do të thotë që kodi juaj nuk ishte mjaftueshëm i mirë për të filluar.

Pra, mos bëni justifikime: baza juaj e të dhënave është një gjë që ka rëndësi™. Mos kini frikë dhe filloni ta trajtoni atë si një - do t'ju shpërblejë për telashet tuaja.

Ky ishte i pari nga një seri prej gjashtë artikujsh se si të përmirësoni mënyrën se si ndërveproni me DBMS-në tuaj, veçanërisht në kontekstin e zhvillimit të Rails. E ardhmja do të jetë për shkaktarët, kthimet e thirrjeve të SQL. Qëndroni të sintonizuar!