I just found out about Sitespeed.io. Basically it is an integration between a site scraper, a standalone, headless webkit implementation (PhantomJS) and YSlow. Sounds like a simple idea, but the execution is really good ! There are plenty of browser plugins, or online solutions to measure the client-side performance of your website, but they are not easy to automate. Sitespeed.io allows me to add a simple step to my integration tests and get metrics on the quality of my app each time a developer makes a commit. This should be implemented in my apps next week.
What could be improved ?
No, we don’t live in a perfect world, so yes, there is always something that can be improved.
- Find a way to collect metrics over time,
- integrate with Maven,
- support Java 6.
Metrics over time:
I have strong suspicions towards any kind of metrics on their own. I don’t really care if my test coverage is 60% or 80% or 110%. What I care about is that my metrics tell me where I can improve my application and that my application is getting better overtime, not worse. In my workplace, we use Sonar for that. That way, we can make sure that test coverage improve overtime, or we can easily identify which classes are too complex and need to be refactored. I’d love to have the same kind of metrics for client side code quality as well.
Maven integration would allow to integrate the collection of metrics in the standard build process. Integrating SiteSpeed.io in a Continuous Integration tool is pretty easy, so this is definitely a minor point. A better integration with our build tool would make it even easier for developers to collect metrics. Even if I am not personally a big fan of this approach, it would allow us to fail the build if a minimum quality is not reached.
Java 6 support:
Yes, I know, Java 7 is out and is the third best thing in the world (just after sliced bread and portioned coffee). But for us stuck in the corporate world, Java 6 is still the norm (when it’s not Java 5). It should be pretty easy to compile dependent Jars for Java 6. I’ll have a go at that as soon as I can …
Overall, great project ! I’ll tell you more as soon as I have a bit more experience with it.