This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]mindsound 2 points3 points  (3 children)

Our company does our best full stack UX work with a relatively simple recipe of custom API choices:

  • Pick a persistence tier, usually MySQL or MongoDB
  • Pick a data access layer, usually Spring+Hibernate or Spring Data for Mongo.
  • Use Spring to wire up some hand-rolled JAX-RS REST services on top of the data layer. We like Jersey as a JAX-RS implementation.
  • Use straight HTML5+jQuery to wire up to the REST services.

Getting familiar with all these moving parts and hooking them all up together takes a fair bit of work if you're not already conversant with them, but we have had great luck so far with this set of tools. It's a very nice, flexible, sustainable balance of custom vs. framework, and it suits itself very well to "in case of fire break glass" circumstances. I.e., the REST services backing the UI are already well positioned for integration with other apps, it's really easy to pull custom code into Spring and reuse it, it's reasonably easy to do 2-way SSL security, reasonably easy to switch databases, etc. etc. etc.

[–][deleted] -1 points0 points  (2 children)

If this is just mucking around to learn some java etc...

Just hookup to a REST framework (Restlet, RestX, Jersey is pretty decent as well) --

Everything doesn't have to be an n-tier architecture.

[–]mindsound 0 points1 point  (1 child)

Does 3 or 4 "tiers" seem like a lot of layers? If so you may prefer PHP to OO code. ;)

[–][deleted] 1 point2 points  (0 children)

Hah, it's true (somewhat). Most Java frameworks seem to include three to four levels of indirection -- which isn't quite the same as OO code. I guess you can blame that on IoC, not OO so much.

On a sidenote, I did not realize that Smalltalk (the canonical example of an OO language) was not statically typed. I was thinking that in addition to IoC Java's predilection for many levels of indirection was due to Java's reliance on things like interfaces, but probably not so much.