9:45 AM Saturday Room: 3525
<p>In this session, we will present real life applications of compiler techniques helping kaChing achieve ultra confidence and power its incredible 5 minutes commit-to-production cycle [1]. We'll talk about idempotency analysis [2], dependency detection, on the fly optimisations, automatic memoization [3], type unification [4] and more! This talk is not suitable for the faint-hearted... If you want to dive deep, learn about advanced JVM topics, devoure bytecode and see first hand applications of theoretical computer science, join us.</p>
<p> </p>
<p>[1] http://eng.kaching.com/2010/05/deployment-infrastructure-for.html</p>
<p>[2] http://en.wikipedia.org/wiki/Idempotence</p>
<p>[3] http://en.wikipedia.org/wiki/Memoization</p>
<p>[4] http://eng.kaching.com/2009/10/unifying-type-parameters-in-java.html</p> 1:45 PM Saturday Room: 8403
<p>At kaChing (www.kaching.com), we are on a 5-minute commit-to-production cycle. We have adopted continuous deployment as a way of life and as the natural next step to continuous integration.</p>
<p>In this talk, I will present how we achieved the core of our extreme iteration cycles: test-driven development or how to automate quality assurance. We will start at a very high level and look at the two fundamental aspects of software: transformations, which are stateless data operations, and interactions, which deal with state (such as a database, or an e-mail server). With this background we will delve into practical matters and survey kaChing's testing infrastructure by motivating each category of tests with different kind of problems often encountered. Finally, we will look at software patterns that lend themselves to testing and achieving separation of concerns allowing unparalleled software composability.</p>
<p>This talk will focus on Java and the JVM even though the discussion will be largely applicable.</p>
<p>Check out http://eng.kaching.com/search/label/tests for the latest from our company's blog.</p>