Re: New Procedurs With Version# In Name

From: Vladimir M. Zakharychev <vladimir.zakharychev_at_gmail.com>
Date: Thu, 11 Mar 2010 02:26:21 -0800 (PST)
Message-ID: <78a6f2f6-f80c-4ce3-85d3-949f2689636f_at_q21g2000yqm.googlegroups.com>



On Mar 11, 8:07 am, "jeffchi..._at_gmail.com" <jeffchi..._at_gmail.com> wrote:
> So when my developers need to make a change to a procedure, instead of
> just recompiling the procedure they want to create a new procedure
> named like sp_procedure2 and then use the new procedure in their
> application.
> They want to do this so that they don't mess up any other application
> that might be calling the same procedure.  And then when they can get
> around to updating the other applications they will use the new
> procedure.  I was wondering if anybody else does this and what you
> guys think. I am against it but I am getting overruled.  My database
> will look confusing, source safe will be confusing, and now I have to
> maintain multiple procedures when something needs to change.

[Tongue-in-cheek mode on] Switch to 11gR2 and use Edition-based Redefinition (http://download.oracle.com/docs/cd/E11882_01/appdev.112/ e10471/adfns_editions.htm). Really powerful feature if used properly as it allows your application code to evolve without breaking anything (at least as described.) Hopefully, there are no serious defects in initial implementation. :)

Now, seriously, it's nice that your developers care not to break existing stuff, but this is one of the worst ways to evolve code I've seen. Packages are there for implementation changes that do not affect interfaces. They also support overloading, so if you need to change an interface (add or remove an argument, change argument type, etc.) you can add overloaded procedure to the package and Oracle will automagically use the right version. And then there's testing. On a test instance. With data set as close to production as possible.

Besides, aren't your developers aware of the scope of the changes they introduce and possible side effects? What makes them think these changes may break something? They should not happily clone interfaces on every occasion just because they can and think it's safer - they should do it only when unavoidable.

Mi dos centavos.

Regards,
  Vladimir M. Zakharychev
  N-Networks, makers of Dynamic PSP(tm)
  http://www.dynamicpsp.com Received on Thu Mar 11 2010 - 04:26:21 CST

Original text of this message