diff options
| author | ivan <ivan> | 2005-10-15 09:11:20 +0000 |
|---|---|---|
| committer | ivan <ivan> | 2005-10-15 09:11:20 +0000 |
| commit | 673b9a458d9138523026963df6fa3b4683e09bae (patch) | |
| tree | 42acc524ff5fd53e4fdb2f5b6dac4a42ce8057f6 /rt/lib/RT/StyleGuide.pod | |
| parent | 591613cf1c861505335646fff3ffb4a705e011bf (diff) | |
| parent | d4d0590bef31071e8809ec046717444b95b3f30a (diff) | |
This commit was generated by cvs2svn to compensate for changes in r4407,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'rt/lib/RT/StyleGuide.pod')
| -rw-r--r-- | rt/lib/RT/StyleGuide.pod | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/rt/lib/RT/StyleGuide.pod b/rt/lib/RT/StyleGuide.pod index 4a45e8205..f0d1d15e6 100644 --- a/rt/lib/RT/StyleGuide.pod +++ b/rt/lib/RT/StyleGuide.pod @@ -239,7 +239,27 @@ leads to cleaner code. my $var1 = shift; # right my $var2 = shift; +=head2 Method parameters +If a method takes exactly one mandatory argument, the argument should be +passed in a straightforward manner: + + my $self = shift; + my $id = shift; + +In all other cases, the method needs to take named parameters, usually +using a C<%args> hash to store them: + + my $self = shift; + my %args = ( Name => undef, + Description => undef, + @_ ); + +You may specify defaults to those named parameters instead of using +C<undef> above, as long as it is documented as such. + +It is worth noting that the existing RT codebase had not followed this +style perfectly; we are trying to fix it without breaking exsiting APIs. =head2 Tests @@ -857,7 +877,28 @@ is a good chance it will not be dealt with. Send patches to rt-<major-version>-bugs@fsck.com, too. Use C<diff -u> for patches. +=head1 SCHEMA DESIGN + +RT uses a convention to denote the foreign key status in its tables. +The rule of thumb is: + +=over 4 + +=item When it references to another table, always use the table name + +For example, the C<Template> field in the C<Scrips> table refers to +the C<Id> of the same-named C<Template> table. + +=item Otherwise, always use the C<Id> suffix + +For example, the C<ObjectId> field in the C<ACL> table can refer +to any object, so it has the C<Id> suffix. + +=back +There are some legacy fields that did not follow this rule, namely +C<ACL.PrincipalId>, C<GroupMembers.GroupId> and C<Attachments.TransactionId>, +but new tables are expected to be consistent. =head1 TO DO |
