On achieving goals (enterprise acceptance/coding guidelines)
[email protected] (Bas A . Schulte)
| Newsgroups | perl.p5ee |
|---|---|
| Message-ID | <[email protected]> |
Hi,
while recapping some of the p5ee stuff something came to me. Looking at
some of the goals as stated on http://www.officevision.com/pub/p5ee and
then look at the, experimental, code in P5EEx::Blue combined with what I
recall about an earlier exchange of messages on this list I wonder...
Some blurbs from vision/mission:
> mission of the P5EE project is to promote the development, deployment,
> and acceptance of Enterprise Systems written in Perl
^^^^^^^^^^^^^^^^^^^^^^^^
> IT managers have confidence in hiring enterprise architects
^^^^^^^^
These being some of the goals of p5ee, I wonder how the current coding
guidelines/style guide came to be. If you want to see a larger
acceptance in the enterprise world and it's managers it's been my
experience that it helps a *lot* when your code looks like java code. I
have had several technical due dilligences taken by "enterprise"-type of
guys and received a lot of credit as they saw that the perl code at our
company really looked like java. The coding guidelines were defined
based on looking long and hard at both Sun's java coding guidelines as
well as guidelines defined within RUP (Rational Unified Process) and
adapted them to the perl world.
These guidelines led to perl code that was easy to read by anyone with
basic programming experience, even by big hurds of java programmers ;)
None of the line-noise that we are so used to in the perl world. I dare
to say that it's not perl itself that leads to line-noise, it's how perl
is being used which is something you can enforce by good guidelines that
are already accepted in the enterprise world.
The highlights in this respect are primarily "StudlyCase" and the use of
"getXXX/setXXX" on attributes:
my $user = $context->user();
or
$user = $self->{cgi}->remote_user(); ## this is a "get"
$self->{cgi}->remote_user($user); ## a "set" (same name!)
I know me saying this will probably cause yet another thread on personal
preference (and some flames as well) but this shouldn't be about
personal preference if we really want more acceptance in the enterprise
world. I know that "remote_user()" vs. "getRemoteUser()" doesn't make
any difference in the correctness of the code but enterprise people seem
to care a lot about looks...
Regards,
Bas.