Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
Which is your top 3 open-source APIs (in Java) you recommend as an example of well-designed piece of art?
That would be code that you had pleasure to browse through and got some insights from it.
Any problem domain acceptable.
Emphasis here is on educational/study quality of code, complexity level - intermediate to top.
Thanks a lot for responses.
I think that google collections is a great place to start. Josh Bloch advised the development of a lot of it, and it's a very well done API. While Spring is great, it's a little hard to know where to start. A good introduction to google collections is "coding in the small with google collections" (I can't post the actual link because of stackoverflow spam filter).
1.Spring
2.Hibernate
Spring - it's a very well written and designed framework. It's a hell of a big bit of software but if want an example of how to build in a modular manner you can't go to fair wrong looking at the spring code base
The sources of the java libraries are well documented.
In my experience the most valuable works include the documentation of desgin decisions, if you see a nice API it would be very interessting what could be the alternatives to that. Unfortunatly this is mostly burried mailing-lists of a project.
Not an external library - but the java.util.concurrent package is very nicely written. The code isn't simple, but it's very well thought out and, in my opinion, has been written brilliantly.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
What would be a good Java framework to explore for someone looking to learn? I've played around with the Android api but had someone ask what other frameworks I had experience with so I thought I should spend some time working with another. What's the best bang for my time?
There are many java frameworks but we can categorize two parts.
Standard Frameworks
JSF
JSP & Servlets
JPA
EJB
Non Standard Frameworks
Spring
Strut
Wicket
GWT
Hibernate
Seam
Play
Others
For web frameworks i suggest : Spring, Hibernate, Struts, Primefaces (cool stuff) .
It really depends on what it is you're trying to gain experience with. If you are looking for web frameworks, gaspyr named some decent ones you should try (I've worked with Spring myself). If you are looking to develop just desktop applications or embedded solutions, I would just go with tackling the standard JRE, and take special note on how the differences between how applications, applets, and servlets run. It's always good to know about the underlying libraries themselves rather than just understanding the syntax and attempting to use a framework to solve all problems without understanding how they might work under the hood.
But this is a really open ended question, and it's difficult to know exactly what you're looking for and why.
Framework choice depends on many factors and good documentation is not the least.
There is incredible book "Spring in Action" if you will decide to start with Spring.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I want to document a Java project I'm working on. In the past I've typically documented the design and software API in a wiki. However, after recently using Mockito for mocking tests, I was impressed at the amount and quality of project-level documentation in the actual javadocs.
My question is, do people typically use Javadocs for documenting the higher level view of the project (e.g. architecture, design decisions etc), or is this kind of information best documented in (say) a wiki?
It depends on who your audience is.
If your audience is going to be primarily using the API, it is generally better to invest in clear concise descriptions (with examples) in your Javadoc. If the audience is likely to never see the API, then it is better to maintain your documentation outside of Javadoc. This is primary a function of how the documentation is navigated; Javadoc navigation facilitates the programming process.
As for whether you wish to put the documentation in a wiki or in a PDF, again it depends on the audience. If the only reason for wiki is to have a web facing HTML representation of the documentation, using something similar to Docbook might provide such documentation with the added benefit of ability to generate PDF representations of the same documentation. If you really have an active community, wiki shines in the ability of allowing near-strangers to modify your documentation.
Determine if the strengths of the products align with your needs, and if they do, then it's the right choice.
Javadoc is great for generating API level documentation. I use a wiki for my high level documentation. I use confluence as my wiki and there are a few plugins you can use for architectural diagrams.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
Each Java developer has his each day sites, I want to ask more experienced Java developers about list of web resources that they will recommend to less experienced Java developers.
stackoverflow.com
http://download.oracle.com/javase/6/docs for javadoc :)
any official document for respective framework (for example:springsource.org for spring )
I like to add official Oracle(Sun) Java tutorial, which I feel must for a beginner in Java
http://download.oracle.com/javase/tutorial/
You might be look at Joshua Bloch's book "Effective Java": http://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683
This is great book about Java program design.
These are my favorite sites (rss enabled):
http://www.javaspecialists.co.za - Problems in Java
http://javaposse.com - New frameworks, random links to java news.
#Bojan Milenkoski is right.
You cant find solution to all problems in single place. One site may be good in Collections but poor in Objects and Data types .
It also depends on how depth you need your answer
Read the Javadocs. Become familiar with the structure as all Javadoc API specs will follow this pattern.
I use Google in general to find solutions to problems. I don't rely on any one given site. Generally, a Google search with the right keywords will yield the best results when searching for the solution to a problem.
It also depends on the context of what you're searching for. If you have a Spring problem, go to http://forum.springsource.org/. If you have a Google App Engine problem, search Google Groups. This rule isn't always true for every tool in your toolbox because sometimes the information is just plain better and more organized in other sources.
Some problems are also very specific and may not be covered specifically in the documentation. It really just depends on the problem.
But in summary, I suggest getting really good at learning to use Google to find information quickly while also weeding out anything that's not relevant to you.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I've used Spring and Spring.NET quite a bit, but I would like to see what else is out there. Can anyone recommend a good Java or .NET framework that I could try to learn?
Here is a list of IoC containers from the good Mr. Hanselman...
Castle Windsor is very popular, you could do worse than learn that.
On the .Net side, Ninject is probably the most interesting, on the Java side, I would say check out Google Guice. That being said, DI is DI, and they all more or less do the same thing. The differences are mostly in how they are configured.
Google Guice is very good - unless you really need it, there are no .xml configuration files - everything is done via annotations, and in an ideal world you can avoid setter methods, injecting your dependencies via the constructor.
I'd suggest JBoss Seam. It has a very different dependency injection model than Spring. Seam's DI is bidirectional and able to inject values at every stage in an object's life (not just during initialization).
It's certainly not a good for everything, but if your looking to try different things in DI, this is interesting.
Look at Seam's home page.
So in the wide world of software you feel the need to learn what is 'assumed plumbing' rather than expand your base? You just use IoC. It's not even optional for anyone serious. This is going on like a decade now.
Go master Functional Programming in say F#. Master the new IObserver and related work coming in .NET 4.0 as the conceptual pairing to IEnumerable. Write a domain specific language for your domain of choice. Create New abstractions, don't simply relearn old ones.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
For the past few years, I've been working on a team that does .NET and SQL Server. I'll soon be joining a team that is Java and Oracle. What can I read/do to get up-to-speed.
Start here: http://java.sun.com/javase/6/docs/
Sun's documentation is pretty good.
See also:
Hidden Features of Java
Best Java Book you have Read So Far
Overriding Equals and Hashcode in Java
What is the Most Freequent Concurrency Problem You've Encountered in Java
Javapassion is a site that offers free courses on Java. If you are on a hurry, there are 1 to 5 days courses available. You should have no problem following it, if you have experience in Java.
There are many good books for Java, but Thinking in Java is free and is good both for getting started and using as a reference.
If you need conversion of things from one language to the other here is a great website:
http://www.25hoursaday.com/CsharpVsJava.html
This, similar, SO Thread might be helpful.
Josh Bloch's Effective Java is a fantastic book. If you want to learn modern Java idioms there are few better places to look at.
Be prepared to do a lot of reading. C# (assuming this was the language you have been using)is generally regarded as an improved Java, so the Java basics will not be hard to grasp. Java development tools are generally not as tightly integrated as the Microsoft stack, thus allowing for choices to be made. Lots of discussions in Javaland revolve around choosing tools.
Get to know something about the way Java packages things (jar, war, ear).
Learn about the classpath (an endless source of joy and grief).
Build a mental picture of how things work at compile time and run time (generics and type erasure, for instance).
Visit the JavaRanch (http://www.javaranch.com/) and test your Java knowledge with the Rules Roundup! Think of it as a certification mock exam, but with cows. ("No cows were harmed in the making of Rules Roundup.")