Revision 3 - 2009-04-28 at 07:00:21
MojoMojo development best practices
Below are the currently agreed-upon development practices for writing MojoMojo code. Discussion are welcome at discussion.
Code tidiness
- In Perl code, use 4-space indentation. No tabs.
- Follow the Perl Best Practices. Ideally, your code should pass Perl::Critic on at least the gentle setting.
- In Template::Toolkit code, use 4-space indentation for HTML code, and 2-space indentation for TT code. See rationale and examples at Indenting TT and HTML.
Line length is 120 characters per line. Nobody really uses 80-character lines any more, many existing lines are already longer than 80 characters (and perltidy wraps them horrendously), and we don't print out code. If you are using Perl::Tidy to automatically format your code according to PBP pages 34-35, you can achieve this via:
perltidy --perl-best-practices -l=115
Development best practices
- All testable functions should have tests
- Every module and function should have POD documentation
- For JavaScript, use jQuery.
- HTML output should be XHTML 1.0 Strict
- CSS 2.
Testing
- We use Test::More and Test::Differences. The latter is very handy for diffing long outputs side-by-side, such as full formatter outputs from
formatter_all_*.t. - If you write failing tests for upcoming features (TDD), put them in Test::More TODO sections.
- Do not put failing regression tests in TODO sections just to have tests pass and ship. Work on fixing the code to pass the tests.
See also
- WebGUI development best practices - a competing Perl-based CMS from which some of these guidelines were inspired
Showing changes from previous revision. Removed | Added
