Wednesday, November 10, 2010

Java, orientació a objectes i la llosa del PL/SQL

Al capítol 6 del llibre Clean Code l'autor fa una reflexió sobre la diferència entre pensar en dades i pensar en objectes. Quan penses en dades t'interessa exposar les dades i et dóna el mateix el comportament. Quan penses en objectes, t'interessa exposar el comportament i amagar les dades tot el que puguis. Són oposats.

El Java és un llenguatge que et permet desenvolupar perfectament sense aprofitar de cap manera els beneficis de la orientació a objectes. Pots fer un programa perfectament procedural. De fet, molt del codi que vaig trobant és eminentment procedural. Poc a poc vaig trobant alguna aplicació de patrons, o com a mínim de disseny Orientat a Objectes, però no tant com hauria.

I me n'adono d'un altre perill. Als entorns on la base de dades Oracle és present és molt fàcil que una part del codi s'hagi desenvolupat en PL/SQL. És fàcil que hi hagin triggers i també que es facin servir procediments i funcions. Fins i tot que una part de la lògica d'accés a dades estigui encapsulada en aquest llenguatge.

Ja hem vist que pensar en estructures de dades i pensar en objectes comporten models mentals oposats. I és molt probable que els desenvolupadors que s'encarreguen del PL/SQL siguin els mateixos que s'encarreguen del Java, i quan toquen el Java és molt difícil que deixin la inèrcia de pensar en procedural.

En aquest sentit penso que el PL/SQL és una llosa pel bon desenvolupament Orientat a Objectes. Com a mínim cal tenir en compte aquesta dificultat, i el programador de PL/SQL ha de tenir clar que ha de fer un esforç especial amb la Orientació a Objectes.

No comments: