Technical Preparation — Part 2

Log the birth of “open source software”

Enter the link, light up the star label, support wechat and developer communication (please indicate red Dragon ERP) KZCA2000 code cloud: gitee.com/redragon/re… GitHub:github.com/redragon198…

Choose technologies based on the scenario

When it comes to technology selection, the common practice is to choose the most cutting-edge, the most popular, or the latest. For this way I can only say part of the agreement, I think the most important technology selection is to suit the use of the product scenario. No matter how good the technology is, it is useless without the situation that gives play to its advantages.

So let’s have a look at the open source ERP I want to develop. Its characteristics:

The software is open source, facing many developers and users, we must choose low learning cost, high maturity, high popularity, and try to use the least third-party technology or framework to achieve the required functions.

Software is free, so there is no way to consider fee-based middleware or technology.

ERP software is an enterprise-level management system. Its biggest characteristics are complex business logic, multiple functions, small concurrency, frequent service layer calls, and high data confidentiality requirements. So the focus is on the flexibility of MVC framework, standardization of ORM, security framework, and caching technology.

Although the system is 2B, considering the diversity of enterprise needs, rich scalability should be considered, especially the support for microservices.

I chose those technologies

SpringBoot2

(1) High maturity and high popularity

(2) SpringMVC framework supports Rest

(3) Simplified configuration

(4) Rich and efficient third-party integration

(5) SpringCloud microservice expansion

MySQL

(1) Free

(2) Full-text index

(3) Support read/write separation and cluster configuration

Hibernate5

(1) Most complete ORM framework

(2) Shielding the underlying database

(3) Seamless integration with SpringBoot JPA

(4) Simplify common DAO methods to improve development efficiency

Redis

(1) Fast cache speed, single thread

(2) Persistence

(3) Support distributed

Cas+Shiro

(1) Secure single sign-on protocol

(2) Simple security framework configuration

! [](https://upload-images.jianshu.io/upload_images/24539082-f9d6a83883ffbfef.JPEG? imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)

Supplementary instructions for technical selection

As you can see, I didn’t choose many third-party technologies or frameworks because I didn’t want to increase the learning and maintenance costs of an open source software user or developer. A lot of times the more technology you use, the more systems you develop, the more problems you’re going to have, even exponentially in a lot of times. It’s all about doing more with less technology!

Afterword.

It’s already 23:00, so that’s all FOR today. The next article is about choosing an open source license and what to do if you choose one.

Zero one thumb up

[open source] life (https://www.jianshu.com/nb/47590132)