Date post: | 01-Jul-2015 |
Category: |
Technology |
Upload: | timstone |
View: | 378 times |
Download: | 3 times |
INTRO TO STRIPESRICHMOND JUG — 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
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
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
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]
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
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)
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?
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
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
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
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
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
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
REDUCE ERRORS
THE BUSINESS TOOLS ALREADY HAVE ALL THE CAMPAIGN DATA, STOP REKEYING IT
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
UPDATE PLATFORM FRONT TO BACK
UI 10 YEARS OLD
SERVICES. SERVICES. SERVICES.
GRADUATE DATA
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
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>
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
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?
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
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
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
EVALUATIONS
APPLY GOALS TO SOLUTIONS IN EVALUATION
NO ONE SELLS MVC FRAMEWORKS, ONLY SUPPORT
MEET THE CHALLENGERS:
STRUTS
SPRING MVC
STRIPES
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
SPRING MVC EVALUATION
PROS
SUBJECTIVELY SPEAKING: BETTER THAN STRUTS 2
DEVELOPER AVAILABILITY
STACK INTEGRATION
CONS
SOME CONVENTION, MOSTLY CONFIGURATION
FULL REWRITE
COMMON PAIN POINTS
NO ESCAPING FULL REWRITE
FRAMEWORKS MAY ADD NEW TECHNOLOGIES TO LEARN
ENGINEER CENTRIC
CONFIGURATION VERSUS CONVENTION
STRIPES EVALUATION
PROS
LIGHTWEIGHT
ALL CONVENTION
FEATURE RICH AND LATENT FUNCTIONALITY
CONS
DEVELOPER AVAILABILITY
FULL REWRITE
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
LEGACY TO NEXT GEN
MAVENIZE APPLICATION END-TO-END
ALL SERVICES
ALL CONTENT
...EVERYTHING
WE’LL SEE SOME OF CONTENT AND LOGIC TONIGHT
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
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?
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
LAYOUTS
STRIPES LAYOUT TAG LIBRARY
SIMPLE AND ROBUST
DYNAMIC
WEBLOGIC 10.X ISSUE AND WORKAROUND
SIMPLE EXAMPLE
COMPLEX EXAMPLE
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
GET-AFTER-POST
WHAT IS THIS... GET-AFTER-POST?
WHY?
HOW STRIPES MAKES IT EASY
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!
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!