Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

How to use code metrics to improve quality


Published on

You will learn what we started one year ago with, what we improved and what makes metrics sexy.

Published in: Technology
  • Be the first to comment

How to use code metrics to improve quality

  1. 1. How to use codemetrics to improvequalityChristian TraboldTYPO3 Conference 2011
  2. 2. Agenda What started one year ago What we improved What makes metrics sexy Questions & Answers
  3. 3. Downloads & Feedback Links and further information on Listening to you on twitter #t3con11-qatalk Ask! It‘s okay to ask after the talk :) Meet me! At the dkd booth!
  4. 4. About me Christian Trabold Senior Developer Web since 1999 TYPO3 since 2004 dkd since 2006 Focus on quality assurance Maintainer of Author of TYPO3 Kochbuch, O‘Reilly E-Mail Twitter @ctrabold
  5. 5. What started one year ago 5Why? Personal itchWe spent far too much time on looking on bad code.
  6. 6. Provide metrics forevery TYPO3 extension http://www. uzo/97673183/
  7. 7. Our intention We want to improve everyday life of an TYPO3 developer … while developing extensions. … while integrating extensions. … while publishing extensions.We need to find good extensionsdeveloping = constructive feedbackintegrating = now flaws befor they find youpublishing = meet the users
  8. 8. Meet the Tools me tric s.ty po3 .or g ci.t ypo 3.o rg TE RNow we have these components:
  9. 9. - The repository Reliable repository Details for more than 5000 extensions Provides Data for TE R
  10. 10. - The worker Runs analyses over and over again Generates data for metrics Triggered by new releases ci.t ypo 3.o rg TE RWe created ci.typo3.orgto aggregate technical informationwhich is not available within TER.
  11. 11. Crawling code for every exension in TER…We had to fix some performance issuesNow runs smoothly and provides information on each new extensionrelease.
  12. 12. The GUI gets complex really fast.And we do have a problemwhich we share with the TER.
  13. 13. A lot of information - no good user interface.
  14. 14. We love Jenkins, but… Jenkins is a wonderful tool, but implementing a cool GUI can get quite cumbersome Reason: complex GUI, not sexy enough Frankly the whole mission didnt workout the way we expected.There must be a better way for displaying Metrics!Use a specialized tool for the job // Use the tools for what they are intendedSo we took a look around: SonarJenkins = worker -> Sonar = dashboard
  15. 15. Sonar ( Displays metrics nicely Provides tons of graphs Allows deeper code analysis me tric s.ty po3 .or g Running on ci.t ypo 3.o rg TE RSonarSource = OpenSourceLooked good at the first sight, then I gave it a try - Now I love it!If you have questions about sonar:Olivier Gaudin (CEO and Founder of SonarSource)is speaking at the TYPO3 conference right after my talk in Room C.
  16. 16. Usecase: We need to evaluate extensions A LOT.Important: Find potential problems as early as possible.Screencast:Go to (Search on is broken)Find extensionkey through searchOpen detailsClick "Sonar" linkBrowse metrics
  17. 17. New challenge: Search extensionsSo, now we have- the tools to evaluate extensions- the metrics to see quality of extensionsBut, we still cant find them easily…
  18. 18. A typical use case I want an extension to search content which is written against TYPO3 CGL and has a manual and it should be an Extbase extensionIn technical terms this means...
  19. 19. Search parameters I want an frontend plugin which has < 30% violations and has a le doc/manual.sxw and it depends on EXT:extbase Currently NOT possible on typo3.orgAll these parameters are already available
  20. 20. Re-Think „Search“ We need a new search badly. Why not combine powerful metrics with a powerful search? Here are some ideas.As some of you know:dkd has quite some experience with "Search"
  21. 21. Simple search interface
  22. 22. Filter search resultsMetrics get search parameters
  23. 23. Comprehensive details
  24. 24. Useful statistics
  25. 25. RSS feed for notifications
  26. 26. Demo
  27. 27. The complete application stack me tric s.ty po3 .or g Sec ci.t uri ypo ty Bu 3.o llet rg ins Us er F TE eed R bac k SearchSearch combines all toolslinks to metrics & makes metrics searchable
  28. 28. This is just a beginning Get noti cations on new extensions meeting your search criteria Build a semantic view of TYPO3 ecosystem Valuable feedback & donations for developers Make awesome TYPO3 community visible
  29. 29. New perspectivesExample based on
  30. 30. See the connecting dotsExample based on
  31. 31. Very important Provide a sane ext_emconf.php for your extension. Update dependencies & con icts Update required TYPO3 & PHP versionsWe have these extension settings since ages!Use them!They are cucial for a better TER.
  32. 32. Managing input + output for TER content me tric s.ty po3 .or g Sec ci.t uri ypo ty Bu 3.o llet rg ins Us er F TE eed R bac k SearchIts managing the TER I/O.So lets call it...
  33. 33. Lets call the new
  34. 34. Status: Prototype Weve got a prototype running Public version planned end of 2011 Bookmark Follow @ter_io Get a "hands on" at the dkd booth!
  35. 35. dkd development kommunikation design Thanks!Thanks - you are a terrific crowd :)