greenfield java 2013
DESCRIPTION
As presented at SeaJUG in October 2013. The video is available at http://www.seajug.org/. These slides mainly cover criteria for selection.TRANSCRIPT
GREENFIELD JAVA IN 2013
Will IversonCTO, Dynacron Group
Will Iverson Who?
•CTO, Dynacron Group• Kirkland, WA Consulting Firm• ~40 people• Software Projects using Continuous Delivery• Now hiring!
• Videos, GitHub => dynacrongroup.com•Author, 4 books, lots of articles• Lots and lots of proposals & project team work
Scenario
•New project!•What tools, frameworks, etc.?•How do you decide?• 1st step: project charter!
•New consumer-facing web application• Single page web app• Mobile devices• iPhone, iPad, Nexus 7, Kindle HD, etc.
Basic Architecture
Design for Testability
Today’s Format
•Collect Nominees by Tier• Add “Not Sure”
• Everyone vote for current favorite•Criteria Review•60 second lobbyists• Final vote•Winners immortalized on SeaJUG site!
Nominees!
• Core frameworks• DropWizard, Spring MVC,
Play 2.x…• DI Framework• Spring, Guice
• Persistence tools• RDBMS, MongoDB…
• Front End• Bootstrap, AngularJS,
Ember.js…
• Build & Dependency Mgmt system• Maven, Gradle, Grunt…
• IDE• Eclipse, IntelliJ, NetBeans
Considerations
• Team scaling• Does it work for 1 person?• How about a team of 5-7?
•Developer Productivity• How many files to touch to add new feature?• E.g. add a single new field from persistence through UI• Add a whole new view from persistence through UI
Considerations (continued)
• Testability• How hard is it going to be to test this?• Tip: driving through the GUI is the most difficult
•Code review• Static code analysis support
•Release Management• Support for single file + config deployment• Integration with config mgmt tools
Considerations (continued)
• Tool support• Auto-complete• Refactoring
• SCM-friendly• Is there a “magic file” everyone has to touch?• pom.xml, context.xml
•Monitoring• How much is available
Considerations (continued)
•Maturity• How to measure?• Indeed.com• Stack Overflow• GitHub• Google Trends
•Developer Aesthetics• Social group• Ask, don’t tell!
Considerations (continued)
•Commercial / Open Source?• Cost• Tool-as-dev-platform• Designed to be testable?
•Performance Testing• Gatling, Neustar• JS framework…
JS Framework Thoughts
• Too Early To Call• …But you have to pick!• jQuery alone is good but insufficient• Huh? -> jQuery -> Backbone -> AngularJS -> Ember.js
• Further Reading…• http://sporto.github.io/blog/2013/04/12/comparison-angular-backbone-
can-ember/• http://beust.com/weblog/2012/12/29/migrating-from-ember-js-to-angul
arjs/• http://www.bennadel.com/blog/2439-My-Experience-With-AngularJS-Th
e-Super-heroic-JavaScript-MVW-Framework.htm
JS Summarized
http://www.bennadel.com/blog/2439-My-Experience-With-AngularJS-The-Super-heroic-JavaScript-MVW-Framework.htm
Greenfield 2013 GitHub Project• https://github.com/dynacron-group/greenfield• DropWizard• TestNG
• AngularJS (Angular Seed)• Bootstrap• Jasmine + Karma
• MongoDB• As of 10/14/2013 – early work-in-progress• Feel free to watch, star, contribute, kibitz, add issues…
Why AngularJS?
•Data- attribute approach• Works better with tools• “The way the browsers are going” – Google• Scope databinding magic seems ok• …but there may be edge cases…?
• Really, really strong focus on test-ability
Today’s Format
•Collect Nominees by Tier• Add “Not Sure”
• Everyone vote for current favorite•Criteria Review•60 second lobbyists• Final vote•Winners immortalized on SeaJUG site!