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
![Page 1: Greenfield Java 2013](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/1.jpg)
GREENFIELD JAVA IN 2013
Will IversonCTO, Dynacron Group
![Page 2: Greenfield Java 2013](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/2.jpg)
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](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/3.jpg)
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](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/4.jpg)
Basic Architecture
![Page 5: Greenfield Java 2013](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/5.jpg)
Design for Testability
![Page 6: Greenfield Java 2013](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/6.jpg)
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](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/7.jpg)
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](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/8.jpg)
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](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/9.jpg)
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](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/10.jpg)
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](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/11.jpg)
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](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/12.jpg)
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](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/13.jpg)
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 14: Greenfield Java 2013](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/14.jpg)
JS Summarized
http://www.bennadel.com/blog/2439-My-Experience-With-AngularJS-The-Super-heroic-JavaScript-MVW-Framework.htm
![Page 15: Greenfield Java 2013](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/15.jpg)
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](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/16.jpg)
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](https://reader037.vdocuments.net/reader037/viewer/2022103016/554a48c1b4c905863d8b565e/html5/thumbnails/17.jpg)
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!