greenfield java 2013

17
GREENFIELD JAVA IN 2013 Will Iverson CTO, Dynacron Group

Upload: will-iverson

Post on 07-May-2015

718 views

Category:

Technology


0 download

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

Page 1: Greenfield Java 2013

GREENFIELD JAVA IN 2013

Will IversonCTO, Dynacron Group

Page 2: Greenfield Java 2013

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

Page 3: Greenfield Java 2013

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.

Page 4: Greenfield Java 2013

Basic Architecture

Page 5: Greenfield Java 2013

Design for Testability

Page 6: Greenfield Java 2013

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!

Page 7: Greenfield Java 2013

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

Page 8: Greenfield Java 2013

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

Page 9: Greenfield Java 2013

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

Page 10: Greenfield Java 2013

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

Page 11: Greenfield Java 2013

Considerations (continued)

•Maturity• How to measure?• Indeed.com• Stack Overflow• GitHub• Google Trends

•Developer Aesthetics• Social group• Ask, don’t tell!

Page 12: Greenfield Java 2013

Considerations (continued)

•Commercial / Open Source?• Cost• Tool-as-dev-platform• Designed to be testable?

•Performance Testing• Gatling, Neustar• JS framework…

Page 13: Greenfield Java 2013

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

Page 15: Greenfield Java 2013

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…

Page 16: Greenfield Java 2013

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

Page 17: Greenfield Java 2013

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!