So I'd like to think that I'm a relatively experienced Java developer, yet the more I do and read, the more I realise there is an enormous discrepancy between what is talked about compared to what is actually implemented compared to what is best practice in general. While I've certainly got my own idea of what is best practice from a design patter perspective based on a lot of experience, I'd be interested in discussing as a general topic about what others also think is a general best practice setup. No right or wrong answers, more of just a general discussion about the best practices of a Java based web application which caters for the majority of cases.
Topic: Pure Web Application, with focus on an API in the future. Designed to access www.example.com which clearly does lots of cool and functional things, has multiple levels of functionality and login system (basic user, advanced user who manages multiple users as an administrator, and a super-administrator who can control the whole system) and lots of other exciting features and functionality in the future which cannot be foreseen.
The questions being;
* What would you do?
* How would you do it?
* How would you handle login / login style functionality?
* Would you choose to implement a specific framework such as Spring2, Hibernate or other?
* Would you go down the Enterprise Java Beans route?
* Would you use <%= request.getAttribute() %> functionality, and why, if not what would you prefer?
* Would you use JSTL, and why, if not what would you prefer?
* Would you create your own tag libraries, if yes then why, if not then why not?
* Would you use an MVC in framework in general?
* Anything else?
* What should you be thinking about and why?
There is an enormous discrepancy between the theoretical design patterns specific to Java web applications included within books, compared to the practicalities of dealing with real world applications, compared to reading the tips/advice on forums about specific implementations which often result in quite significant design patterns and overarching systems thinking. When you bring things into the real world the ideal situation from a development perspective is rarely that from a practical perspective due to the pressures of the business world and delivering on time and to budget.
I'm keen to open discussions around a best practice type of setup which is designed to make Java web applications specifically designed to work extremely effectively. Collectively I believe it's important to discuss the theoretical and practical implications of these types of topics rather than just jumping into project, building something that is functional and works, opposed to building something on an extremely solid foundation. Likewise, we all have to work with often legacy systems of sorts which are far from perfect and often the right solution is to rebuild the setup using solid design patterns rather than continually patching poor frameworks and systems. Lots of contributors on this topic would be useful as everyone has a different experience and background on Java web application development which is often significantly different that Java development for other platforms, so I want to keep the discussions for this topic specific to Java web application development.
Michael Cropper wrote:Hi all,
So I'd like to think that I'm a relatively experienced Java developer, yet the more I do and read, the more I realise there is an enormous discrepancy between what is talked about compared to what is actually implemented compared to what is best practice in general.
Hehe, this a wider and old problem :-;