The Day 2 of JAX India saw the start of 40 conference sessions spread over 3 days. Here is extract of the sessions that I attended.
Introduction to JSF for Struts Developers – Craig McClanahan
The session was targeted to cover an overview about Java Server Faces. The agenda includes:
Origin of Struts
Craig started with giving an overview of how Struts came into existence.
The main reasons was
- Multiple language support
- Available on the web
- Separate responsibilities into layers etc.
In the Mean Time…
As the time went on, Standardization started taking up the market with lots of new Standards, like componenting for interoperatability, target for drag and drop etc.
JSF Key Concepts
Craig stretched on the key concept of Components which brought JSF in existence.
In all the session did touch upon the high level fundamentals of JSF but my expectations were different. I would have preferred a sandpit project like Hello World demo which would have given a better understanding. Anyways this is my thought.
The second session was an interesting presentation on IDEs future.
Java IDE(s) – Then, Now and Eventually – David Intersimone
The session was around 20 minutes but the content of the presentation was really good. Few key things from the presentation:
Future of IDEs
- Support for Rich Internet Applications
- Support for Ajax
- Collaborative features within IDE
The next session that I attended was Increase Project Success with Java Architecture Management – Alexander Von Zizewitz. The presentation was really cool !!! He depicted dragon as the Complex Java Project with a small man with sword and shield in his hand as us trying to overcome the dragon
Here are few interesting points from his presentation:
Known project problems
- Time Pressure
- Skills not meeting system requirements
- Unwanted dependencies
- Complexity growing
And if we fall in the pitfall of the above problems, we start just making it work and then start the real problem like:
- Increase in testing time
- Problems with deployment
- Making changes become increasingly difficult
So what are the ways to control Java Projects that Dragon doesn’t rule the world:
- Avoid Package cycles by using jdepend
- Code Reviews specially peer-to- peer
- Check Style and FindBugs Tools usage
- Checking key metrics on regular basis
-
Define architecture of the system at high level of abstraction
-
Cut horizontal into layers to represent different layers like
User Interface, Business Layer, Data layer - Cut vertically into slices to represent actors
- Define allowed usage for each actor
-
Cut horizontal into layers to represent different layers like
- Define useful matrix threshhold
So once your system is divided into horizontal layers and vertical slices, start mapping code to logical diagram on the following lines:
- Each package mapped to exactly one sub system
- Good naming convention
- Subsystem should have well defined interfaces
-
Work independently
- Start with layering
- Add vertical slices
- Define subsystem interface
- Fine tune rules of engagement on subsystem level
Once you are done with this, measure the overall coupling at system level, sub system level, package level etc. using Component Dependency technique.
5 Golden Rules to ensure technical Quality
- Create cycle free logical architecture
- Avoid package cycle
- Keep Average Component Dependency low
- Keep size of Java files ( < 700 LoC)
- Define threshhold for complexity
In all the presentation was interesting and provoke at looking more into SonarJ tool which Hello2omorrow has come up with to solve such issues.
Apart from these I attended Best practices for inter-operable Web Services – Thilo Frotscher, the details of the session are already covered by Amit in this blog.
In all the sessions are not too much impressive may be due to limited time allotted for each session. Looking forward to Day 3 at Jax India 2007.