Taking the next step with Java development?

I want to take the next step in the development of java sites, I hope to get an idea and feedback on: what should be my next steps and how best to take them.

Studying the basics of developing Java applications, I put together a simple web application that performs simple accounting and financial calculations. The web application is located on one jvm, uses Tomcat and has standard web functionality - i.e. login / logout, basic security, etc.

How to make this web application more "ready to work" - to distribute the functionality of the levels on different servers / jvms, HA, balance, etc.

What do I need to know / study? - i.e. EJB3 or Spring Framework (it seems better than Spring), REST and / or SOAP, etc.

How to recommend (books, websites, etc.) I study the "requirements" (see previous line) ?

Thanks!

+4
source share
10 answers

In my opinion, you should try different approaches to the same problem so that you can compare the pros and cons of various tools and frameworks.

For example, try creating an application using EJB and then the same application using Spring. Take the presentation layer of your code written with JSF, and then rewrite it with Tapestry.

I think that it will be very useful for you, since you will be able to make the best decisions when choosing tools for your future developments.

+5
source

A few things to consider as food for thought:

  • How good is error handling / application logging? For example, if a user tries to put X in a currency value, what does the application do?
  • What is configured in the application from the user and what is in the configuration files and what is in the database regarding the configuration? Do you have passwords encrypted in the application?
  • What patterns were used to create this application? Are there any samples that you could see using now that you have a prototype?
  • Is this application ready to handle different currencies and languages?
  • What happens if someone leaves the screen within a few hours and tries to use the form?
  • What administrative functionality does the application have?
  • Does this relate to the case when the user has JavaScript disabled?
  • What are the limitations of your IOW application that it cannot handle the way it is?
  • Have you considered trying to write a guide for the app?
+2
source

EJB or Spring? Now they often ask, here is a decent question related to them .

+1
source

Ask some real users to use your application. You will be amazed at how many β€œnew” features / enhancements can be implemented in your application (and the technologies that you will learn to satisfy these requirements) using real users.

+1
source

I would suggest that for each Java developer, the following books / tutorials are needed:

  • Staffing: Spring in Action - Second Edition
  • Picking: Saving Java with Hibernate
  • JavaServer Faces Kernel
  • Adobe Flex (Adobe training videos).
  • Effective Java

Besides the standard technologies above, you should be familiar with

  • Various testing framework, JUnit is a must
  • Create tools like ANT and Maven

You can also create small projects by downloading trial versions of MyEclipse or Flex Builder.

+1
source

I suggest you create small java experiment projects for each new environment / library that you want to learn.

I had good success using maven to quickly and consistently create java projects that I use to experiment with one technology at a time, like Spring, Hibernate, etc. I use the maven site life cycle to write notes about what I learned and a document on how to create and run each project. So, now I have about 20 projects that I can use as basic projects, one for each structure, for development.

In addition, I prefer to buy and read books, rather than relying on Google and websites to explore a new framework. It seems that I can learn much faster this way.

I also suggest you write web applications that you yourself want to use. Or write a web application that solves the problem you are facing. I found that I learned a lot, not just copying and pasting from examples in a tutorial.

Hope this helps - Dave

0
source

Spring or Tapestry would be a good option for new knowledge. Does your application use any web services? If you do not work with them. Work with other application servers, such as JBoss and Weblogic, and pay attention to their nuances using java. I would also recommend learning Maven and working on this build / deployment process.

Have fun, Mike

0
source

You can significantly reduce the time spent on creating applications by studying some of the developments developed with the help of tests.

Try to learn JUnit - now it becomes the main skill, even in irreplaceable stores.

If you are focused on the Internet, try Selenium - which has a Java controller to test your tests from Java test cases.

After investing, a little time in TDD will pay off no matter what framework or application you are working on . If you learn to test your code, you will have less, cleaner code, and less debugging.

0
source

You can look at AppFuse, which is a collection of Java stuff together.

Or you can take a look at a few more technologies for the game and add:

  • Version Control - SVN
  • Tools - Ant or Maven
  • Framework - Spring, Seam, Struts
  • ORM - Hibernate or iBatis
  • Test Development - JUnit, Emma
  • Continuous Integration - Hudson

I also read the pragmatic programmer and / or code.

0
source

Let me say that "enterprise" no longer necessarily implies scalable solutions; many, many enterprise Java applications run on larger systems that require their own skills.

I recommend mastering the Java language and runtime, understanding how bytecodes and loading go through the JVM and focus on any given structure.

Speaking of structures, and if you really have time, try to recreate the structure of the application yourself. Try and reinvent the wheel. IMO is a great lesson in why the framework itself exists and teaches you to use these functions, rather than always trying to get around them.

Another thing to never forget is the database . I don't care what looks like Oracle, MySQL or NoSQL, but also becomes an equal master in the data warehouse.

0
source

All Articles