On 10/28/07, Mario Ivankovits <[EMAIL PROTECTED]> wrote: > Hi! > > 1. Clear separation of API and IMPL (at least on package level, better > > by separate artifacts). Mind that the idea behind these commons > > classes is that many other projects use them - and therefore depend on > > them. So a clear and stable API is essential. > > > I wanted this to be an easy utils project and not yet-another-framework. > In fact, there might be stuff in there which has an API and an IMPL, but > this is not necessarily required. Static utils classes wont have an API. > Shouldn't it be possible to have a stable API even without separating it > out?
Have a look at http://commons.apache.org/beanutils/apidocs/org/apache/commons/beanutils/BeanUtils.html for an example how static utils CAN be clearly separated into api and impl. The static method holders ("Utils" classes) are located in the api subproject, the default implementation bean would live in the impl src root. > > 2. Let's start to name svn folders the same as the artifacts. This > > seems to be best practice in many other maven projects. And there are > > good reasons to do this. > > So, the new project should be located in a folder named like > > "myfaces-commons" with two sub folders "myfaces-commons-api" and > > "myfaces-commons-impl". > > > I don't like that but wouldn't veto if we think this should be done that > way, just, remember how this would look like: > > /home/im/projects/myfaces12/commons/myfaces-commons/myfaces-commons-api/src/main/java > /home/im/projects/myfaces12/commons/myfaces-commons/myfaces-commons-impl/src/main/java > > I think the middle part is overly redundant. > There IS redundant information in the path. Yes. But the reason why many developers prefer this naming scheme is human not technical. Human brains are faster in recognizing icons and patterns than thinking in hierachical structures. Imagine having many expanded folders in your IDE or Explorer. It's simply faster to scan only the leaves of your folder tree structure than to scan structurally: "Ok, here is the folder 'api' - hmm which api? Ah, yes, it's attached to something called 'commons'. Okaaaay. Hey, it's dangling on that 'myfaces' node. Yippieh, I found the 'myfaces-commons-api' folder!" Ever wondered why most people like "labelling" their documents (or emails or bookmarks!) more than file them in hierachical structures? I admit, I once was a structure fanatic. My bookmarks all lived in deep folder structures. And I seldom found them again. :-) GMail, GMarks, Picasa changed my life... ;-) --Manfred
