• Map Information

What's FlexPMD?

By xagnetti

Added: September 21, 2009 12:53:54

2918 views

  • Comments (0)
  • Outline

What's FlexPMD?

What's FlexPMD?
1 What
1.1 Static analysis of any Flash based projects
1.2 Detect unused code
1.3 Detect nonoptimal code
1.4 Detect possible bad design
2 Why
2.1 "You can't control what you can't measure" Tom DeMarco
2.2 "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" Martin Fowler
2.3 Code reviews during engagements
2.3.1 Often finding same bad patterns
2.3.2 If you repeat a task, automate it
2.4 Make sure no junior developpers check in bad code
3 Who
3.1 Programmer
3.1.1 Integrated in his IDE
3.1.1.1 FlashDevelop
3.1.1.2 Flash Builder
3.1.2 Quality insured up-front
3.2 QA
3.2.1 Make sure that rules are not broken on a daily basis
3.2.2 Continuous Integration
3.3 Project Management
3.3.1 Take decisions to tackle the possible technical debt
3.4 Architect
3.4.1 Explain the purpose of each rule and the its priority
3.4.2 Can then refuse a build a rule with a high priority is broken
3.4.3 Build the ruleset with the team agreement
4 Best Practices
4.1 Choose the rules you like, and suppress or ignore the ones you don't
4.2 Use the ruleset creator to customize your ruleset
4.3 Parameterize rule
4.4 Ignore a specific violation by appending // NO PMD
4.5 Don't try to reach 0 violations. That won't happen
5 When
5.1 From the beginning of the project
5.2 The latter it is set-up, the least efficient it will be
5.3 Continuous Integration
6 How
6.1 Command-line
6.2 Maven
6.3 Ant
6.4 Mac OS X automator
6.5 IDEs
6.6 Hudson plugins
6.6.1 PMD plugin
6.6.2 Violations plugin
7 How it is build
7.1 Different kind of rule
7.1.1 AST-based
7.1.2 RegExp based
7.1.3 File based
7.2 Load the ruleset
7.3 Find Flash files in the source directory
7.4 Compute ASTs where it is possible
7.5 For each file, run every rule
7.6 Produce a XML report
8 FAQ
8.1 Flex only?
8.2 Eclipse
8.3 Viewer
8.4 Mobile ruleset
8.5 AIR ruleset?
8.6 What's next?
8.6.1 Eclipse plugin
8.6.2 Platform specific ruleset
8.6.3 Integration with Sonar
8.6.4 Build new rules
8.6.5 Input form the community