Exercises
In order to aid those in the field of education: students, teachers, and lecturers, questions have been provided at the end of each chapter in the book.
- Grab a sheet of paper; outline the core Java EE 7 specifications, which include the Servlets CDI, EJB, JPA, JMS, JAX-RS, and JSF. On a scale of 1-10 (1 being novice and 10 expert) ask yourself how much do you honestly know?
- When was the last time you looked at Java EE? If you still think of enterprise development as the term J2EE, then you definitely need to take a look at the book, Java EE Developer Handbook. Make a note of the specifications that you do not know quite so well and plan to learn them.
- Test your understanding of the Java EE platform by matching the parts of the specification to a recent web application that you have been involved in. Describe how each specification can provide benefits, including productivity gains.
- Now switch to the other side and dissent against Java EE. Some voices in the community are for and some are decidedly against standardization. The detractors say that the standardization process is too slow for a world of need and innovation. What do you think are the potential pitfalls of relying on the Java EE platform? Think of areas beyond software development, such as education, training, hiring, and the wider community. What would be the ideal state of Java where you can do what you like and without responsibility?
- You probably already have a favorite website, which you visit regularly, perhaps everyday. Draw or outline the basic (high level) information architecture for it. Chances are that your favorite website has a lot of rich content and has been around for a long time. What changes have you noticed with the information architecture that you know today?
- How good is your JavaScript knowledge? On a scale of 1 (beginner) and 10 (expert), how do you rate it as a skill? How does your JavaScript compare against your Java programming?
- Did you know that you can examine HTML, CSS, and JavaScript dynamically from a modern web browser with Developer Tools (Chrome Developer Tools https://developer.chrome.com/devtools or Christopher Pederick's Web Developer Tools http://chrispederick.com/work/web-developer/ or similar)? Have you ever learnt to debug JavaScript through these tools? Why not learn to simply add a break point to the code? How about using the inspector to examine the computed CSS?
- Using the distributed version control system, Git, to clone the book source code from GitHub (http://github.com/peterpilgrim/digitaljavaee7), and examine the code around the simple JSF example given in this chapter. Download and setup the GlassFish 4.1 (https://glassfish.java.net/) or WildFly 9 (http://wildfly.org/) application servers and get the first examples running.
- How good are your image-editing skills in web design (using a commercial application Adobe Photoshop or Firework or Xara Edit)? Do you partake in this activity at work or at home, or do you delegate this effort to another person, like a creative designer? Would it benefit your wider career plans to have better knowledge in this area? Ask yourself, would it make you be a better digital worker?
- The digital teams practicing Agile software development tend to work with the stakeholders. It they are lucky, they are in direct contact with the stakeholder. The stakeholder is the customer, a representative of the business end users, to which these teams are delivering software. Have you ever had conversations directly with the stakeholder(s)? What was the outcome of these discussions? How did they go? Did you ever wish to be more involved? Did you ever feel like running away? How could your efforts in these talks have been better, retrospectively? Put yourself in your stakeholder's shoes to understand how he perceives you.