how to explain what jrebel does to a developer

17

Upload: bogomil-shopov

Post on 10-May-2015

13.061 views

Category:

Technology


20 download

DESCRIPTION

How to explain what JRebel does to a developer

TRANSCRIPT

Page 1: How to explain what JRebel does to a developer
Page 2: How to explain what JRebel does to a developer

Part I

http://xkcd.com/303/

Seen this before?

Also: “My app is…” * Building * Redeploying * Restarting…

How much of your coding time is spent coding?

Page 3: How to explain what JRebel does to a developer

Redeploying sucks, so JRebel eliminates it. How?

JRebel maps your project workspace directly to the application under development. When you change any

class or resource in your IDE, the change is immediately reflected in the application, skipping the build and

redeploy phases.

Umm… What?

Page 4: How to explain what JRebel does to a developer

JRebel picks up changes to: A) Class structure

…and reflects those changes in your application,

instantly

…monitors the timestamp of classfiles..

Page 5: How to explain what JRebel does to a developer

JRebel picks up changes to: B) Framework configurations

and 25+ others...

Frameworks

…and reflects those changes in your application,

instantly

Page 6: How to explain what JRebel does to a developer

…and reflects those changes in… well, you

get the point… .. .. ..but HOW??

JRebel picks up changes to: C) Java EE technologies

Page 7: How to explain what JRebel does to a developer

Part 2

http://xkcd.com

Tech and Science stuff

Page 8: How to explain what JRebel does to a developer

How JRebel works: 1) Classes

•  JRebel integrates with the JVM and rewrites each class to be updateable

•  JRebel versions each class individually, instead of an application or module at a time

•  It does not use classloaders!

•  Changes to classes are always visible in the Reflection API

MyObject.clas

s

MyObject.clas

s MyClass_3 MyClass’ MyClass

Page 9: How to explain what JRebel does to a developer

•  JRebel integrates directly with application servers and frameworks to propagate configuration changes from the changed classes and resources

•  Annotation changes are always visible in Reflection API

•  JRebel provides an extensible SDK to allow contributions from third parties. Stripes, Struts 2, Wicket and several other integrations have already been contributed

How JRebel works: 2) Framework configuration changes / details

Containers / Application Servers

Page 10: How to explain what JRebel does to a developer

How JRebel works: 3) Workspace mapping

•  JRebel integrates with application servers, frameworks and your IDE

•  When a class or resource is being looked up, JRebel redirects straight to the workspace

•  When an HTTP resource needs to be served, JRebel serves it from the workspace

petclinic.war

IDEs

Page 11: How to explain what JRebel does to a developer

IDEs Containers Frameworks

Build Tools

How does JRebel work? Integration, Integration, Integration

Page 12: How to explain what JRebel does to a developer

Getting JRebel for yourself and your team

•  Eclipse fans can get JRebel for Eclipse directly from the Eclipse Marketplace (search “jrebel”) or here: •  http://www.zeroturnaround.com/jrebel/eclipse-eval/

•  MyEclipse users can get JRebel for MyEclipse free for 30 days: •  http://www.zeroturnaround.com/jrebel/myeclipse/

•  Everyone can get the same free 30-day evaluation from: •  http://www.zeroturnaround.com/jrebel/current/

•  NEW! Use it for free at home for non-commercial development: •  http://social.jrebel.com - for students, open source committers

Part 3

For Eclipse IDE users

For everyone!

For MyEclipse IDE users

Page 13: How to explain what JRebel does to a developer

Part 4

How do I talk about JRebel with my boss?

Getting the P.H.B. (Pointy Haired Boss) on board

Page 14: How to explain what JRebel does to a developer

Talking about JRebel with your boss(es)

•  This depends on their level of technical understanding

•  Non-technical people understand the “Email Example” - •  Try telling them that redeploying a container to see changes that you make to code

is like restarting their computer every time they want to send/receive email. It can take a similar amount of time, and is similarly disruptive.

•  Or show them this presentation: www.zeroturnaround.com/jrebel/documentation (JRebel for Bosses)

•  More technical people like to know more about what’s going on – send them this presentation here:

•  www.zeroturnaround.com/jrebel/documentation (JRebel for Developers)

Nice. But my boss likes stats and charts - got any of those?

Page 15: How to explain what JRebel does to a developer

Resources

•  Java EE Productivity Report 2011 •  Includes lots of stats & charts on the popularity of Java development

tools & technologies – plus a section on Turnaround Time (builds, redeploys, restarts).

•  http://www.zeroturnaround.com/java-ee-productivity-report-2011/

•  Want to see how fast JRebel will pay for itself? (for finance guys) •  http://www.zeroturnaround.com/jrebel

•  ROI calculator is on the right side of the page I don’t have much time to read reports. Have you got some quick stats I can reference?

Page 16: How to explain what JRebel does to a developer

Quick Stats

•  Here are some cool stats taken from the Java EE Productivity Report: •  17.5% - the average percentage of coding time spent

redeploying (this varies by app size and container used - check out the report for details on yours)

•  10.5 - the # of minutes wasted per hour of coding

•  4.38 - the # of hours wasted per week

•  5.25 - number of full work weeks wasted per year (40-hour weeks).

•  ...and over 18 hours per month…. Interesting…anything else cool?

Page 17: How to explain what JRebel does to a developer

Over 39 Million builds, redeploys & restarts prevented for 11,000+ Java developers

(also cool)