|
|
||
Giovani Salvador's BlogCommunity: Java Enterprise ArchivesJava Architectural Knowledge for Job Interviews. Are we prepared?Posted by giovanisalvador on May 22, 2008 at 08:24 AM | Permalink | Comments (15)I already interviewed lots of Java developers during hiring activities. As part of the interview, besides other things, I like to understand if the person being interviewed has understanding of the applications he/she develops as a whole, I mean, not only understands business requirements but also understands the entire architecture of the application and, most important, why that specific architecture is in place for that application and its specific needs. So below a typical dialog between a candidate (C) and I regarding architecture of a Java EE application. - So, could you please describe, from your perspective, what should be a typical Java EE architecture for, let's say, a medium-size web-based application?
Second: The candidate never asked how many transactions per minute, hour, etc, how many concurrent users, if it is a critical application. That dictates the architecture. We can't have silver bullet and it seems today most of the "architects" have silver bullets. And, even worst, relying on specific products. Also, based on the non-functional requirements of the application we could see if clustering would be needed. But no, no question about those kinds of things at all. Third: The lack of knowledge on some typical design patterns is also something to take into account. Façade? DAO? Value Objects? Application Controller? Even if we don't need all of them, candidates should be prepared to use them when necessary.
Here a few basic references about all this stuff. Java BluePrints - Here some good stuff for JAva Enterprise Applications. There are lots of other good books and articles. Please, feel free to comment here adding more references. Java and the need for Dependency InjectionPosted by giovanisalvador on March 16, 2008 at 03:55 PM | Permalink | Comments (10)I was talking to some of my team mates in Austin regarding the usage of Spring as opposed to "Heavy Weight Containers". They asked what I think about using Spring in the new features of an application they are working on. I have to admit that I never used Spring. Why? Because I never had to. All that I needed to do was supported by EJB Containers or the so called Heavy Weight Containers. Maybe I don't how happy I can be if I use Spring but so far services provived by Java EE containers were enough. And with clustering!!! I also have to admit that previous versions of EJBs were almost untestable (It's horrible to have to mock an EJB) but at the same time put business logic into EJB (here I am talking about Session and Message-driven EJBs) is something that I don't like that much. I always used POJOs for business logic also to be more testable. My EJBs just acted as a facade to provide remotability. Anyway, when I asked to one of them what was the need he answered me: "I want productivity with Dependency Injection". And more, he told they were going to use Spring integrated with the EJB Container to take advantage of the existing services provided by the container. What? Hum, a self-called lightweight container integrated with a heavyweight container. This sounds interesting. He wanted to have the advantages of dependency injection but also taking advantage of the container's services. So here I don't take any conclusion despite I have my own opinion on using one or antoher. I just would like to know everybody's opinion on this. - How are you guys using Spring? - Has someone already integrated Spring and Java EE container? To take advantage of what? - And for those who are using only Spring, what are the pros and cons? - Are you using only the framework or also Spring Portfolio? I appreciate any comment on it. :) | ||
|
|