+ All Categories
Home > Technology > Stripes RJUG March 2012

Stripes RJUG March 2012

Date post: 01-Jul-2015
Category:
Upload: timstone
View: 378 times
Download: 3 times
Share this document with a friend
Description:
Presentation on Stripes at the March 2012 Richmond Java Users Group (RJUG).
39
INTRO TO STRIPES RICHMOND JUG — MARCH 2012
Transcript
Page 1: Stripes RJUG March 2012

INTRO TO STRIPESRICHMOND JUG — MARCH 2012

Page 2: Stripes RJUG March 2012

AUDIENCE PARTICIPATION

THANK YOU ICF IRONWORKS... ROUND II

THANK YOU STACKEXCHANGE!

C.H.A.O.S.* HAT TIP TO ‘MXYZPLK’ ON RPG.STACKEXCHANGE.COM

MIX-EE-YEZ-PIT-LIK

KEL-TIP-ZIX-UM

* CHEERFUL HAPPY ADVOCATES OF STACKEXCHANGE

Page 3: Stripes RJUG March 2012

AUDIENCE PARTICIPATION

THANK YOU ICF IRONWORKS... ROUND II

THANK YOU STACKEXCHANGE!

C.H.A.O.S.* HAT TIP TO ‘MXYZPLK’ ON RPG.STACKEXCHANGE.COM

MIX-EE-YEZ-PIT-LIK

KEL-TIP-ZIX-UM

* CHEERFUL HAPPY ADVOCATES OF STACKEXCHANGE

Page 4: Stripes RJUG March 2012

AUDIENCE PARTICIPATION

THANK YOU ICF IRONWORKS... ROUND II

THANK YOU STACKEXCHANGE!

C.H.A.O.S.* HAT TIP TO ‘MXYZPLK’ ON RPG.STACKEXCHANGE.COM

MIX-EE-YEZ-PIT-LIK

KEL-TIP-ZIX-UM

* CHEERFUL HAPPY ADVOCATES OF STACKEXCHANGE

Page 5: Stripes RJUG March 2012

ABOUT THE PRESENTER

TIMOTHY STONE

A SCJP WEB TIER ARCHITECT AND UX/UI ADVOCATE

STRIPES COMMITTER

GNUPG/PGP FINGERPRINT0248 FAD3 D6BE 008C 27C8 7A72 7249 DE33 22A5 2C82

RPG ADVOCATEREFEREES WFRP... OK, PLAYS PATHFINDER TOO (AND LOOKING FOR A GROUP)

GOOGLE [email protected]

Page 6: Stripes RJUG March 2012

THE PITCH

STRIPES IS A PRESENTATION FRAMEWORK FOR BUILDING WEB APPLICATIONS USING THE LATEST JAVA TECHNOLOGIES.

STRIPES GOALS

MAKE DEVELOPING WEB APPLICATIONS IN JAVA EASY...???

PROVIDE SIMPLE YET POWERFUL SOLUTIONS TO COMMON PROBLEMS

MAKE THE STRIPES RAMP UP TIME FOR A NEW DEVELOPER LESS THAN 30 MINUTES

MAKE IT REALLY EASY TO EXTEND STRIPES, WITHOUT MAKING YOU CONFIGURE EVERY LAST THING

Page 7: Stripes RJUG March 2012

THE BASE HIT

ZERO EXTERNAL CONFIGURATION PER PAGE/ACTION (ACTIONBEANS ARE AUTO-DISCOVERED, AND CONFIGURED USING ANNOTATIONS)

POWERFUL BINDING ENGINE THAT WILL BUILD COMPLEX OBJECT WEBS OUT OF THE REQUEST PARAMETERS

EASY TO USE (AND LOCALIZED) VALIDATION AND TYPE CONVERSION SYSTEM

LOCALIZATION SYSTEM THAT WORKS EVEN WHEN YOU USE DIRECT JSP ⇢ JSP LINKS

ABILITY TO RE-USE ACTIONBEANS AS VIEW HELPERS

EASY TO USE INDEXED PROPERTY SUPPORT

BUILT IN SUPPORT FOR MULTIPLE EVENTS PER FORM

TRANSPARENT FILE UPLOAD CAPABILITIES

SUPPORT FOR INCREMENTAL DEVELOPMENT (E.G. YOU CAN BUILD AND TEST YOUR JSP BEFORE EVEN THINKING ABOUT YOUR ACTIONBEAN)

Page 8: Stripes RJUG March 2012

MY INTRODUCTION

CONTEXT GOES A LONG WAY, SO ...

START WITH 10 YEAR OLD LEGACY CREDIT CARD APPLICATION PLATFORM

STRUTS 1.0.2, NO JSTL, WEBLOGIC 10.X

STRUTS 2?

SPRING MVC + WEBFLOW?

OTHERS?

Page 9: Stripes RJUG March 2012

LEGACY PLATFORM

10 YEARS OF CRUFT

LAZY ENGINEERS PUSHING BUSINESS LOGIC TO FRONT

SIGNIFICANT SCRIPTING

HEAVY JSP-BY-WAY-OF-PERL-LIKE ENGINEERING

THE CODE IS THE DOCUMENTATION (WEAK JAVADOC)

STRUTS 1.0.2

Page 10: Stripes RJUG March 2012

GOALS

REMOVE THE CRUFT, DECODE, INTERVIEW, DOCUMENT

PUT BUSINESS IN CONTROL AND REDUCE ERRORS

UPDATE PLATFORM FRONT TO BACK

ELIMINATE SCRIPTING AND ENFORCE MVC PATTERNS

SIMPLIFY DEVELOPMENT — FULL IDE DEV LIFECYCLE

SOLVE THE PROBLEM OF ON-BOARDING JUNIOR DEVELOPERS

Page 11: Stripes RJUG March 2012

REMOVE THE CRUFT, DECODE, INTERVIEW, DOCUMENT

HttpSession IS NOT A BAG OF HOLDINGMAKE CODE REVIEWS PART OF GOVERNANCECRUCIBLE+FISHEYE

WHY ARE WE PROCESSING THE VIEW THROUGH INCLUSION FILTERS AGAIN?

CAMPAIGNS HAVE EXPIRATION DATES. WHAT HAPPENS ON EXPIRATION? WHAT REGULATIONS ARE APPLICABLE ON EXPIRATION?

JAVADOC, DESIGN DOCUMENTS, BUSINESS PROCESSES

Page 12: Stripes RJUG March 2012

GOALS

REMOVE THE CRUFT, DECODE, INTERVIEW, DOCUMENT

PUT BUSINESS IN CONTROL

REDUCE ERRORS

UPDATE PLATFORM FRONT TO BACK

ELIMINATE SCRIPTING AND ENFORCE MVC PATTERNS

SIMPLIFY DEVELOPMENT — FULL IDE DEV LIFECYCLE

SOLVE THE PROBLEM OF ON-BOARDING JUNIOR DEVELOPERS

Page 13: Stripes RJUG March 2012

PUT BUSINESS IN CONTROL

BUSINESS KNOWS THE DURATION OF A CAMPAIGN AND THE EXPIRATION DATE

BUSINESS KNOWS HOW A CAMPAIGN EXPIRES, THE REGULATION, AND THE REPLACEMENT CAMPAIGN

BUSINESS ALREADY HAS BOTH THE REPOSITORY AND THE CHANGE CONTROL IN PRODUCTION

REMOVE DEVELOPMENT FROM CAMPAIGN DATA MANAGEMENT

Page 14: Stripes RJUG March 2012

GOALS

REMOVE THE CRUFT, DECODE, INTERVIEW, DOCUMENT

PUT BUSINESS IN CONTROL

REDUCE ERRORS

UPDATE PLATFORM FRONT TO BACK

ELIMINATE SCRIPTING AND ENFORCE MVC PATTERNS

SIMPLIFY DEVELOPMENT — FULL IDE DEV LIFECYCLE

SOLVE THE PROBLEM OF ON-BOARDING JUNIOR DEVELOPERS

Page 15: Stripes RJUG March 2012

REDUCE ERRORS

THE BUSINESS TOOLS ALREADY HAVE ALL THE CAMPAIGN DATA, STOP REKEYING IT

Page 16: Stripes RJUG March 2012

GOALS

REMOVE THE CRUFT, DECODE, INTERVIEW, DOCUMENT

PUT BUSINESS IN CONTROL

REDUCE ERRORS

UPDATE PLATFORM FRONT TO BACK

ELIMINATE SCRIPTING AND ENFORCE MVC PATTERNS

SIMPLIFY DEVELOPMENT — FULL IDE DEV LIFECYCLE

SOLVE THE PROBLEM OF ON-BOARDING JUNIOR DEVELOPERS

Page 17: Stripes RJUG March 2012

UPDATE PLATFORM FRONT TO BACK

UI 10 YEARS OLD

SERVICES. SERVICES. SERVICES.

GRADUATE DATA

Page 18: Stripes RJUG March 2012

GOALS

REMOVE THE CRUFT, DECODE, INTERVIEW, DOCUMENT

PUT BUSINESS IN CONTROL

REDUCE ERRORS

UPDATE PLATFORM FRONT TO BACK

ELIMINATE SCRIPTING AND ENFORCE MVC PATTERNS

SIMPLIFY DEVELOPMENT — FULL IDE DEV LIFECYCLE

SOLVE THE PROBLEM OF ON-BOARDING JUNIOR DEVELOPERS

Page 19: Stripes RJUG March 2012

ELIMINATE SCRIPTING AND ENFORCE MVC PATTERNS

WHEN ONE SEES A JSP LIKE THIS:<%@ page import=”...”%><% Enumeration e = request.getParameters(); while(e.hasMoreElements()) { //put parameters on session } ... ... ... // 200 lines later %>

IT’S TIME TO READ THE JSP SPECIFICATION. PAYING CLOSE ATTENTION TO 3.3.3:<jsp-property-group> <url-pattern>*.jsp</url-pattern> <scripting-invalid>true</scripting-invalid></jsp-property-group>

Page 20: Stripes RJUG March 2012

GOALS

REMOVE THE CRUFT, DECODE, INTERVIEW, DOCUMENT

PUT BUSINESS IN CONTROL

REDUCE ERRORS

UPDATE PLATFORM FRONT TO BACK

ELIMINATE SCRIPTING AND ENFORCE MVC PATTERNS

SIMPLIFY DEVELOPMENT — FULL IDE DEV LIFECYCLE

SOLVE THE PROBLEM OF ON-BOARDING JUNIOR DEVELOPERS

Page 21: Stripes RJUG March 2012

SIMPLIFY DEVELOPMENT — FULL IDE DEV LIFECYCLE

EVER TRIED TO RUN WEBLOGIC 10.X LOCALLY? ON WIN XP? 4GB... NO, 3GB RAM?

EVER ASKED A JUNIOR DEVELOPER TO DO IT?

EVER ASKED A JUNIOR DEVELOPER SETUP MAVEN RUNNING, DEPLOY TO WEBLOGIC, DEBUG A JSP... OH, BUT NOT BEFORE INSTALLING ECLIPSE?

Page 22: Stripes RJUG March 2012

GOALS

REMOVE THE CRUFT, DECODE, INTERVIEW, DOCUMENT

PUT BUSINESS IN CONTROL

REDUCE ERRORS

UPDATE PLATFORM FRONT TO BACK

ELIMINATE SCRIPTING AND ENFORCE MVC PATTERNS

SIMPLIFY DEVELOPMENT — FULL IDE DEV LIFECYCLE

SOLVE THE PROBLEM OF ON-BOARDING JUNIOR DEVELOPERS

Page 23: Stripes RJUG March 2012

SOLVE THE PROBLEM OF ON-BOARDING JUNIOR DEVELOPERS

HOW DO WE GET TO “FULL IDE DEV CYCLE”?

CALL IT “PRESS THE GREEN BUTTON” OR “PRESS PLAY” DEVELOPMENT

Page 24: Stripes RJUG March 2012

GOALS

REMOVE THE CRUFT, DECODE, INTERVIEW, DOCUMENT

PUT BUSINESS IN CONTROL

REDUCE ERRORS

UPDATE PLATFORM FRONT TO BACK

ELIMINATE SCRIPTING AND ENFORCE MVC PATTERNS

SIMPLIFY DEVELOPMENT — FULL IDE DEV LIFECYCLE

SOLVE THE PROBLEM OF ON-BOARDING JUNIOR DEVELOPERS

Page 25: Stripes RJUG March 2012

EVALUATIONS

APPLY GOALS TO SOLUTIONS IN EVALUATION

NO ONE SELLS MVC FRAMEWORKS, ONLY SUPPORT

MEET THE CHALLENGERS:

STRUTS

SPRING MVC

STRIPES

Page 26: Stripes RJUG March 2012

STRUTS EVALUATION

LEGACY ON STRUTS 1.0.2

STRUTS 1.2MODERATE REENGINEERING; perform DEPRECATED

STRUTS 1.3SIGNIFICANT REENGINEERING, NIGH REWRITE; execute

STRUTS 2FULL REWRITE

PROS: DEVELOPER AVAILABILITY

CONS: VERSION CEILING WITHOUT FULL REWRITE

Page 27: Stripes RJUG March 2012

SPRING MVC EVALUATION

PROS

SUBJECTIVELY SPEAKING: BETTER THAN STRUTS 2

DEVELOPER AVAILABILITY

STACK INTEGRATION

CONS

SOME CONVENTION, MOSTLY CONFIGURATION

FULL REWRITE

Page 28: Stripes RJUG March 2012

COMMON PAIN POINTS

NO ESCAPING FULL REWRITE

FRAMEWORKS MAY ADD NEW TECHNOLOGIES TO LEARN

ENGINEER CENTRIC

CONFIGURATION VERSUS CONVENTION

Page 29: Stripes RJUG March 2012

STRIPES EVALUATION

PROS

LIGHTWEIGHT

ALL CONVENTION

FEATURE RICH AND LATENT FUNCTIONALITY

CONS

DEVELOPER AVAILABILITY

FULL REWRITE

Page 30: Stripes RJUG March 2012

LEGACY TO NEXT GEN

STRIPES VS. ET. AL... STRIPES PREVAILS. HOW? WHY?

THE STRIPES PROTOTYPE TEAM DELIVERED COMPLETE FEATURES TWO WEEKS BEFORE STRUTS AND SPRING

STRUTS AND SPRING TEAMS COULD NOT DEMONSTRATE KEY PATCH AND DEPLOYMENT REQUIREMENTS

STRIPES SOLVED SIMPLY WHERE STRUTS AND SPRING REQUIRED NEW LEARNING AND OPERATIONAL CHANGE

ENGINEERS CAN DIG TO EXPLOIT, BUT GETS OUT OF THE WAY FOR EVERYONE ELSE

Page 31: Stripes RJUG March 2012

LEGACY TO NEXT GEN

MAVENIZE APPLICATION END-TO-END

ALL SERVICES

ALL CONTENT

...EVERYTHING

WE’LL SEE SOME OF CONTENT AND LOGIC TONIGHT

Page 32: Stripes RJUG March 2012

STRIPES... AND JAVA WEB DEVELOPMENT IS FUN AGAIN*

COVERED

ACTION BEANS AND AUTO CONFIGURATION

EVENT HANDLING

LAYOUTS

VALIDATION

GET-AFTER-POST

NOT COVERED

SPRING BEANS, HIBERNATE (STRIPERSIST), ETC.

INTERCEPTORS AND STRIPES REQUEST LIFECYCLE

WIZARDS

* FREDDY DAOUD, AUTHOR

Page 33: Stripes RJUG March 2012

ACTION BEANS AND AUTO CONFIGURATION

STRIPES MAVEN QUICKSTART

NETBEANS BUG 208146

NOT IN MAVEN CENTRAL... YET. BUT SOON.

BASIC ACTIONBEAN

WEB.XML

SO? WONDER WHERE STRUTS 2 GOT THE IDEA?

Page 34: Stripes RJUG March 2012

EVENT HANDLING

STRIPES EVENTS ARE VIEW RESOLUTIONS

EASILY ENFORCES THE PRE-ACTION PATTERN IN MVC

BASIC ACTIONBEAN

ADVANCED ACTIONBEAN

RESOLUTION VARIETY

FORWARD, REDIRECT, JAVASCRIPT, STREAMING, ERROR... EXTENDABLE

Page 35: Stripes RJUG March 2012

LAYOUTS

STRIPES LAYOUT TAG LIBRARY

SIMPLE AND ROBUST

DYNAMIC

WEBLOGIC 10.X ISSUE AND WORKAROUND

SIMPLE EXAMPLE

COMPLEX EXAMPLE

Page 36: Stripes RJUG March 2012

VALIDATION

STRIPES VALIDATION GETS OUT OF THE WAY

ZERO, NADA, NO EXTERNAL CONFIGURATION

FULLY ANNOTATED IN ACTIONBEANS

NIGH INSTANT SERVER SIDE VALIDATION; EASILY COUPLED WITH CLIENT SIDE VALIDATION

DYNAMIC AND EXTENSIBLE

COMPLEX VALIDATION THROUGH

TYPE CONVERTERS

FORMATTERS

SIMPLE EXAMPLE

BASIC FIELD VALIDATION

COMPLEX EXAMPLE

OBJECT VALIDATION AND VALIDATION METHODS

Page 37: Stripes RJUG March 2012

GET-AFTER-POST

WHAT IS THIS... GET-AFTER-POST?

WHY?

HOW STRIPES MAKES IT EASY

Page 38: Stripes RJUG March 2012

RESOURCES

IRC.FREENODE.NET#STRIPES

USER AND DEVELOPER MAILING LISTS

WWW.STRIPESFRAMEWORK.ORG

STRIPES...AND JAVA WEB DEVELOPMENT IS FUN AGAIN BY FREDERIC DAOUD (PRAGPROG PRESS)

THE SOURCE IS ... ACTUALLY READABLE!

Page 39: Stripes RJUG March 2012

RESOURCES

IRC.FREENODE.NET#STRIPES

USER AND DEVELOPER MAILING LISTS

WWW.STRIPESFRAMEWORK.ORG

STRIPES...AND JAVA WEB DEVELOPMENT IS FUN AGAIN BY FREDERIC DAOUD (PRAGPROG PRESS)

THE SOURCE IS ... ACTUALLY READABLE!


Recommended