SlideShare une entreprise Scribd logo
1  sur  36
How to use code
metrics to improve
quality
Christian Trabold
TYPO3 Conference 2011
Agenda

 What started one year ago
 What we improved
 What makes metrics sexy
 Questions & Answers
Downloads & Feedback

 Links and further information on
 http://www.delicious.com/christian_trabold/t3con11
 Listening to you on twitter
 #t3con11-qatalk
 Ask!
 It‘s okay to ask after the talk :)
 Meet me!
 At the dkd booth!
About me

 Christian Trabold
 Senior Developer
 Web since 1999
 TYPO3 since 2004
 dkd since 2006
 Focus on quality assurance
 Maintainer of ci.typo3.org
 Author of TYPO3 Kochbuch, O‘Reilly
 E-Mail christian.trabold@dkd.de
 Twitter @ctrabold
What started one year ago




                                   ci.typo3.org

                          5

Why? Personal itch
We spent far too much time on looking on bad code.
Provide metrics for
every TYPO3 extension


              http://www. ickr.com/photos/ uzo/97673183/
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 extensions


developing = constructive feedback
integrating = now flaws befor they find you
publishing = meet the users
Meet the Tools

  typo3.org               me
                               tric
                                      s.ty
  ci.typo3.org                               po3
                                                 .or
                                                     g

  metrics.typo3.org        ci.t
                                  ypo
                                     3.o
                                        rg


                                      TE
                                         R




Now we have these components:
typo3.org - The repository

 Reliable repository
 Details for more than 5000 extensions
 Provides Data for ci.typo3.org




                                   TE
                                      R
ci.typo3.org - The worker

      Runs analyses over and over again
      Generates data for metrics
      Triggered by new releases




                                      ci.t
                                          ypo
                                             3.o
                                                rg


                                             TE
                                                R




We created ci.typo3.org
to aggregate technical information
which is not available within TER.
Crawling code for every exension in TER…
We had to fix some performance issues
Now ci.typo3.org runs smoothly and provides information on each new extension
release.
The GUI gets complex really fast.

And we do have a problem
which we share with the TER.
A lot of information - no good user interface.
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
      didn't 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 intended

So we took a look around: Sonar

Jenkins = worker -> Sonar = dashboard
Sonar (sonarsource.org)

       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
       metrics.typo3.org
                                                                  TE
                                                                     R




SonarSource = OpenSource
Looked 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.

http://t3con11-frankfurt.typo3.org/sessions/acceptedpapers/paper/
continuous_inspection.html
Usecase: We need to evaluate extensions A LOT.
Important: Find potential problems as early as possible.

Screencast:
Go to ci.typo3.org (Search on metrics.typo3.org is broken)
Find extensionkey through search
Open details
Click "Sonar" link
Browse metrics
New challenge:
    Search extensions




So, now we have
- the tools to evaluate extensions
- the metrics to see quality of extensions

But, we still can't find them easily…
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 extension




In technical terms this means...
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.org




All these parameters are already available
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"
Simple search interface
Filter search results




Metrics get search parameters
Comprehensive details
Useful statistics
RSS feed for notifications
Demo
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
                                 Search



Search combines all tools
links to metrics & makes metrics searchable
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
New perspectives




Example based on https://github.com/skurfuerst/ter-rdf-schema
See the connecting dots




Example based on http://mbostock.github.com/d3/
Very important

    Provide a sane ext_emconf.php for your
    extension.

    Update dependencies & con icts

    Update required TYPO3 & PHP versions



We have these extension settings since ages!

Use them!

They are cucial for a better TER.
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
                                Search




It's managing the TER I/O.

So let's call it...
Let's call the new tool




ter.io
Status: Prototype

 We've got a prototype running
 Public version planned end of 2011
 Bookmark http://ter.io
 Follow @ter_io
 Get a "hands on" at the dkd booth!
dkd
                                      development
                                      kommunikation
                                      design




                                  Thanks!

Thanks - you are a terrific crowd :)

Contenu connexe

En vedette

World robotics 2011, executive summary
World robotics 2011, executive summaryWorld robotics 2011, executive summary
World robotics 2011, executive summaryalain Clapaud
 
Accenture : Analytics Survey, mai 2011
Accenture : Analytics Survey, mai 2011Accenture : Analytics Survey, mai 2011
Accenture : Analytics Survey, mai 2011alain Clapaud
 
IDC : Intelligent systems - next big opportunity
IDC : Intelligent systems - next big opportunityIDC : Intelligent systems - next big opportunity
IDC : Intelligent systems - next big opportunityalain Clapaud
 
SproutCore GTUG
SproutCore GTUGSproutCore GTUG
SproutCore GTUGsproutit
 
Pbs infographic consumer france
Pbs infographic consumer francePbs infographic consumer france
Pbs infographic consumer francealain Clapaud
 
Oracle Sprout Core Presentation 2008 08 12
Oracle Sprout Core Presentation 2008 08 12Oracle Sprout Core Presentation 2008 08 12
Oracle Sprout Core Presentation 2008 08 12sproutit
 
Steria Etude sur le Big Data en europe infographic / Septembre 2013
Steria Etude sur le Big Data en europe infographic / Septembre 2013Steria Etude sur le Big Data en europe infographic / Septembre 2013
Steria Etude sur le Big Data en europe infographic / Septembre 2013alain Clapaud
 
Lowe's 2014 smart home survey report
Lowe's 2014 smart home survey reportLowe's 2014 smart home survey report
Lowe's 2014 smart home survey reportalain Clapaud
 
List of robotics projects in Horizon 2020
List of robotics projects in Horizon 2020List of robotics projects in Horizon 2020
List of robotics projects in Horizon 2020alain Clapaud
 
Wohlers report 2013 : Additive Manudacturing and 3D Printing State of the Ind...
Wohlers report 2013 : Additive Manudacturing and 3D Printing State of the Ind...Wohlers report 2013 : Additive Manudacturing and 3D Printing State of the Ind...
Wohlers report 2013 : Additive Manudacturing and 3D Printing State of the Ind...alain Clapaud
 
Neolane analysisebook.v.5
Neolane analysisebook.v.5Neolane analysisebook.v.5
Neolane analysisebook.v.5alain Clapaud
 

En vedette (11)

World robotics 2011, executive summary
World robotics 2011, executive summaryWorld robotics 2011, executive summary
World robotics 2011, executive summary
 
Accenture : Analytics Survey, mai 2011
Accenture : Analytics Survey, mai 2011Accenture : Analytics Survey, mai 2011
Accenture : Analytics Survey, mai 2011
 
IDC : Intelligent systems - next big opportunity
IDC : Intelligent systems - next big opportunityIDC : Intelligent systems - next big opportunity
IDC : Intelligent systems - next big opportunity
 
SproutCore GTUG
SproutCore GTUGSproutCore GTUG
SproutCore GTUG
 
Pbs infographic consumer france
Pbs infographic consumer francePbs infographic consumer france
Pbs infographic consumer france
 
Oracle Sprout Core Presentation 2008 08 12
Oracle Sprout Core Presentation 2008 08 12Oracle Sprout Core Presentation 2008 08 12
Oracle Sprout Core Presentation 2008 08 12
 
Steria Etude sur le Big Data en europe infographic / Septembre 2013
Steria Etude sur le Big Data en europe infographic / Septembre 2013Steria Etude sur le Big Data en europe infographic / Septembre 2013
Steria Etude sur le Big Data en europe infographic / Septembre 2013
 
Lowe's 2014 smart home survey report
Lowe's 2014 smart home survey reportLowe's 2014 smart home survey report
Lowe's 2014 smart home survey report
 
List of robotics projects in Horizon 2020
List of robotics projects in Horizon 2020List of robotics projects in Horizon 2020
List of robotics projects in Horizon 2020
 
Wohlers report 2013 : Additive Manudacturing and 3D Printing State of the Ind...
Wohlers report 2013 : Additive Manudacturing and 3D Printing State of the Ind...Wohlers report 2013 : Additive Manudacturing and 3D Printing State of the Ind...
Wohlers report 2013 : Additive Manudacturing and 3D Printing State of the Ind...
 
Neolane analysisebook.v.5
Neolane analysisebook.v.5Neolane analysisebook.v.5
Neolane analysisebook.v.5
 

Plus de Christian Trabold

DevOps Meetup Bangkok - Value Stream Mapping for Continuous Delivery
DevOps Meetup Bangkok - Value Stream Mapping for Continuous DeliveryDevOps Meetup Bangkok - Value Stream Mapping for Continuous Delivery
DevOps Meetup Bangkok - Value Stream Mapping for Continuous DeliveryChristian Trabold
 
DevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityDevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityChristian Trabold
 
Drei Dinge, die mich kürzlich inspiriert haben
Drei Dinge, die mich kürzlich inspiriert habenDrei Dinge, die mich kürzlich inspiriert haben
Drei Dinge, die mich kürzlich inspiriert habenChristian Trabold
 
Drei Dinge, die mich kürzlich inspiriert haben
Drei Dinge, die mich kürzlich inspiriert haben Drei Dinge, die mich kürzlich inspiriert haben
Drei Dinge, die mich kürzlich inspiriert haben Christian Trabold
 
TYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase frameworkTYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase frameworkChristian Trabold
 
How to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensionsHow to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensionsChristian Trabold
 

Plus de Christian Trabold (8)

DevOps Meetup Bangkok - Value Stream Mapping for Continuous Delivery
DevOps Meetup Bangkok - Value Stream Mapping for Continuous DeliveryDevOps Meetup Bangkok - Value Stream Mapping for Continuous Delivery
DevOps Meetup Bangkok - Value Stream Mapping for Continuous Delivery
 
DevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityDevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh City
 
TYPO3 
Infrastructure
TYPO3 
InfrastructureTYPO3 
Infrastructure
TYPO3 
Infrastructure
 
Drei Dinge, die mich kürzlich inspiriert haben
Drei Dinge, die mich kürzlich inspiriert habenDrei Dinge, die mich kürzlich inspiriert haben
Drei Dinge, die mich kürzlich inspiriert haben
 
Drei Dinge, die mich kürzlich inspiriert haben
Drei Dinge, die mich kürzlich inspiriert haben Drei Dinge, die mich kürzlich inspiriert haben
Drei Dinge, die mich kürzlich inspiriert haben
 
How healthy is TYPO3?
How healthy is TYPO3?How healthy is TYPO3?
How healthy is TYPO3?
 
TYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase frameworkTYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase framework
 
How to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensionsHow to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensions
 

Dernier

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Dernier (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

How to use code metrics to improve quality

  • 1. How to use code metrics to improve quality Christian Trabold TYPO3 Conference 2011
  • 2. Agenda What started one year ago What we improved What makes metrics sexy Questions & Answers
  • 3. Downloads & Feedback Links and further information on http://www.delicious.com/christian_trabold/t3con11 Listening to you on twitter #t3con11-qatalk Ask! It‘s okay to ask after the talk :) Meet me! At the dkd booth!
  • 4. About me Christian Trabold Senior Developer Web since 1999 TYPO3 since 2004 dkd since 2006 Focus on quality assurance Maintainer of ci.typo3.org Author of TYPO3 Kochbuch, O‘Reilly E-Mail christian.trabold@dkd.de Twitter @ctrabold
  • 5. What started one year ago ci.typo3.org 5 Why? Personal itch We spent far too much time on looking on bad code.
  • 6. Provide metrics for every TYPO3 extension http://www. ickr.com/photos/ uzo/97673183/
  • 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 extensions developing = constructive feedback integrating = now flaws befor they find you publishing = meet the users
  • 8. Meet the Tools typo3.org me tric s.ty ci.typo3.org po3 .or g metrics.typo3.org ci.t ypo 3.o rg TE R Now we have these components:
  • 9. typo3.org - The repository Reliable repository Details for more than 5000 extensions Provides Data for ci.typo3.org TE R
  • 10. ci.typo3.org - The worker Runs analyses over and over again Generates data for metrics Triggered by new releases ci.t ypo 3.o rg TE R We created ci.typo3.org to aggregate technical information which is not available within TER.
  • 11. Crawling code for every exension in TER… We had to fix some performance issues Now ci.typo3.org runs smoothly and provides information on each new extension release.
  • 12. The GUI gets complex really fast. And we do have a problem which we share with the TER.
  • 13. A lot of information - no good user interface.
  • 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 didn't 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 intended So we took a look around: Sonar Jenkins = worker -> Sonar = dashboard
  • 15. Sonar (sonarsource.org) 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 metrics.typo3.org TE R SonarSource = OpenSource Looked 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. http://t3con11-frankfurt.typo3.org/sessions/acceptedpapers/paper/ continuous_inspection.html
  • 16. Usecase: We need to evaluate extensions A LOT. Important: Find potential problems as early as possible. Screencast: Go to ci.typo3.org (Search on metrics.typo3.org is broken) Find extensionkey through search Open details Click "Sonar" link Browse metrics
  • 17. New challenge: Search extensions So, now we have - the tools to evaluate extensions - the metrics to see quality of extensions But, we still can't find them easily…
  • 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 extension In technical terms this means...
  • 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.org All these parameters are already available
  • 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"
  • 22. Filter search results Metrics get search parameters
  • 25. RSS feed for notifications
  • 26. Demo
  • 27.
  • 28. 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 Search Search combines all tools links to metrics & makes metrics searchable
  • 29. 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
  • 30. New perspectives Example based on https://github.com/skurfuerst/ter-rdf-schema
  • 31. See the connecting dots Example based on http://mbostock.github.com/d3/
  • 32. Very important Provide a sane ext_emconf.php for your extension. Update dependencies & con icts Update required TYPO3 & PHP versions We have these extension settings since ages! Use them! They are cucial for a better TER.
  • 33. 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 Search It's managing the TER I/O. So let's call it...
  • 34. Let's call the new tool ter.io
  • 35. Status: Prototype We've got a prototype running Public version planned end of 2011 Bookmark http://ter.io Follow @ter_io Get a "hands on" at the dkd booth!
  • 36. dkd development kommunikation design Thanks! Thanks - you are a terrific crowd :)