The technical dimension

This dimension involves deeply exploring technical details. Let's discuss some useful questions that you will have to answer in order to accomplish this goal, as follows:

  • What style of software architecture should I choose?

Currently, there are many options for this. Subsequent chapters of this book will explain many of them in detail, and you'll probably find your answers there.

  • What programming language is right for my application?

Many programming languages in the market promise to be the best. For that reason, you have to avoid choosing one just because it's the newest or the latest one. Instead, you must choose a widely known one that suits you.

The possibility of counting on a vast ecosystem of tooling is always essential, and should be part of your decision. Another part of your decision should be how difficult it is to find people to work with. It is unlikely that you will want to build your software using a programming language that not many people are familiar with. After all, you'll want to create an application that will live for a long time, and this implies that many people will be involved in writing code to make it evolve over time.

Since this book is intended to be focused on the Spring platform, I'll be discussing the benefits of using Java and the Java Virtual Machine (JVM).

We all know that Java is a widely supported programming language that has been used to build tons of enterprise applications; this fact gives us the confidence to say that it's mature enough to write almost any kind of enterprise software. On the other hand, the JVM is built on the premise of write once, run anywhere. This is important, because a significant part of enterprise applications are currently running on Linux servers; however, this doesn't mean that you need to force your team to use Linux. Instead, they can keep using their preferred OS, since the JVM can run on Windows, Linux, and Mac.

Over the last few years, many programming languages have been written and widely adopted to solve different kinds of problems. Many of them run on JVMs, such as Scala, Groovy, Kotlin, and Jython, because of the benefits that this offers. All of the compiled code of these programming languages check into bytecode, which can interact with Java code, introducing a new world of opportunities. It's always a good idea to give new programming languages a try, to see how they work in different scenarios, and to accomplish different demands. For example, Groovy is a friendly programming language that is simple and easy to use. In subsequent chapters, we will develop some example applications using different programming languages that run on the JVM. These examples will help you to embrace Groovy as a part of your toolbox.

  • What framework is right for me?
    Even when a massive list of frameworks crowds the Java world, we encourage you to use Spring, not only because this book is about it, but because it offers the following benefits:
    • Many of the programming languages listed previously are supported
    • Spring offers the chance to build almost any kind of application that you want
    • The learning curve is not a big deal
    • It has great support for unit and integration testing
    • Spring projects make it possible to grow your solution (we will discuss these in the next chapter)
    • It has excellent integration with the IDE of your choice
    • It has a great community
    • Tons of resources to learn about Spring are available on the internet
    • It provides for smooth integration with the most common Java frameworks, such as Hibernate, iBatis, Atomikos, Vaadin, and Thymeleaf

If this list is not enough for you, feel free to type "why should I use Spring" into Google; you will get a pleasant surprise, and will have the confidence to use the Spring framework.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.122.11