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.
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"
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
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...
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 :)