Greenfield Java 2013

Post on 07-May-2015

717 views 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 of Greenfield Java 2013

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

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!