JAVA开源软件的技术选型--开源软件诞生2
技术准备--第2篇
用日志记录“开源软件”的诞生
赤龙ERP开源地址,点亮星标,支持一下,万分感谢
根据场景选择技术
遇到技术选型,常见的做法往往是选择最前沿的,最流行的,或者选择最新的。对于这种方式我只能说部分同意,技术选型我认为最重要的是要适合产品的使用场景。再好的技术,没有遇到发挥它优势的情景,也是白搭。
那么来看看我要开发的这款开源ERP,他的特点:
- 软件是开源的,面对众多的开发者和使用者,一定要选择学习成本低、成熟度高、普及度高,并且尽量使用最少的第三方技术或框架实现所需功能。
- 软件是免费的,那么就不能考虑收费的中间件或技术。
- ERP软件是企业级管理系统,它最大的特点是业务逻辑复杂,功能复用较多、并发不大、服务层相互调用频繁、数据保密程度要求较高。所以重点考虑的是MVC框架的灵活性、ORM的标准化、安全性框架以及缓存技术。
- 系统虽然是2B的,但考虑到企业需求的多样性,要考虑到丰富的可扩展性,尤其是对微服务的支持。
我选择了那些技术
- SpringBoot2
(1)成熟度高、普及度高
(2)SpringMVC框架对Rest支持
(3)配置简化
(4)丰富高效的第三方集成
(5)SpringCloud微服务扩展 - MySQL
(1)免费
(2)全文索引
(3)支持读写分离、集群配置 - Hibernate5
(1)最完整的ORM框架
(2)屏蔽底层数据库
(3)与SpringBoot JPA无缝整合
(4)常用DAO方法的简化,提升开发效率 - Redis
(1)缓存速度快、单线程
(2)持久化
(3)支持分布式 - Cas+Shiro
(1)安全的单点登录协议
(2)简单的安全性框架配置
技术选型的补充说明
可以看到,我并没有选择很多的第三方技术或框架,因为我不想增加一个开源软件的使用者或开发者的学习成本和运维成本。很多时候技术用的越多,系统开发的越大,你要面临的问题就越多,甚至在很多时候成指数增长。总之就是用最少的技术做更多的事!
后记
已经写到23:00了,今天写这么多吧。下一篇说说开源协议的选择,以及选择一个开源协议后要做哪些工作。
JAVA开源软件的技术选型--开源软件诞生2的更多相关文章
- 以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区
以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区 以正确的方式开源 Python 项目 英文原文:Open Sourcing a Python Project the Right ...
- 【Alpaca】.Net版开源配置中心 - 技术选型 Vue 3.0
是否可以用 Vue 3.0 现有的Vue 2.* 不推荐,坐等Vue 3.0出迁移工具吧,手动改的话工作量还是不小的 新项目 考虑下团队内对Vue + TS + VS Code的熟练程度.过程中你会遇 ...
- Java开源生鲜电商平台-系统架构与技术选型(源码可下载)
Java开源生鲜电商平台-系统架构与技术选型(源码可下载) 1. 硬件环境 公司服务器 2. 软件环境 2.1 操作系统 Linux CentOS 6.8系列 2.2 反向代理/web服务器 ...
- 点菜网---Java开源生鲜电商平台-技术选型(源码可下载)
点菜网---Java开源生鲜电商平台-技术选型(源码可下载) 1.内容简介 点菜网目前选用的是最流行的微服务架构模式,采用前后端分离的开发模式,具备高可用,高负载,支持千万级别的数据量的请求. 2. ...
- 开源中国 2014 最受关注开源软件排行榜 TOP 50
开源中国 2014 最受关注开源软件排行榜 TOP 50 开源中国 2014 年最受关注软件排行榜 TOP 50 正式出炉!2014 年结束了,我们来了解一下过去一年里开源中国最受欢迎的 50 款软件 ...
- Joomla软件功能介绍与开源程序大比拼Joomla,wordpress,Drupal哪个好?
Joomla 软件功能介绍: Joomla!是一套在国外相当知名的内容管理系统 (Content Management System, CMS),它属于Portal(企业入口网站)类型,顾名思义 ...
- [转]开源中国的 IT 公司开源软件整理计划介绍
[转]开源中国的 IT 公司开源软件整理计划介绍 http://www.oschina.net/news/61534/oschina-opensource-collection-plan-for-it ...
- 平安银行在开源技术选型上的思考和实践 RocketMQ
小结: 1. https://mp.weixin.qq.com/s/z_c5D8fvHaYvHSczm0nYFA 平安银行在开源技术选型上的思考和实践 平安银行·吴建峰 阿里巴巴中间件 3月7日 随着 ...
- 2015 年度新增开源软件排名 TOP 100 - 开源中国社区
2015 年度新增开源软件排名 TOP 100 - 开源中国社区 39.ABTestingGateway http://www.oschina.net/news/69808/2015-annual-r ...
随机推荐
- PHP xml_parse() 函数
定义和用法 xml_parse() 函数解析 XML 文档.高佣联盟 www.cgewang.com 如果成功,该函数则返回 TRUE.如果失败,则返回 FALSE. 语法 xml_parse(par ...
- Python程序设计pdf|网盘下载内附提取码
点击此处下载提取码:5o7z 本书提出了以理解和运用计算生态为目标的Python语言教学思想,不仅系统讲解了Python语言语法,同时介绍了从数据理解到图像处理的14个Python函数库,向初学Pyt ...
- Java线程池的了解使用—筑基篇
前言 Java中的线程池是一个很重要的概念,它的应用场景十分广泛,可以被广泛的用于高并发的处理场景.J.U.C提供的线程池:ThreadPoolExecutor类,可以帮助我们管理线程并方便地并行执行 ...
- swift 5.0 创建button方法
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any ...
- CustomPlot 在Qt下 鼠标点击曲线 显示当前坐标
此次记录主要是为了下次使用时能回忆起来才做得笔记,若有需改进的地方,请不吝珠玉. widget.cpp #include "widget.h" #include "ui_ ...
- python3.4嵌套循环项目:买房分期付款(1)
#案例:买房分期付款24万(10年期限) i=1#定义年份sum1=0while i<=10: print("第",i,"年到了......") j=1# ...
- 朴素贝叶斯分类器基本代码 && n折交叉优化 2
这个代码基于上一个代码 不同的是:读取了txt文件,改变了min_ft与max_ft的参数 import re import pandas as pd import warnings import n ...
- JS 筋斗云案例
.nav { width: 1000px; height: 60px; line-height: 60px; margin: 0 auto; position: relative; } ul { wi ...
- Java集合最全解析,学集合,看这篇就够用了!!!
在看集合类之前, 我们要先明白一下概念: 1.数据结构 (1):线性表 [1]:顺序存储结构(也叫顺序表) 一个线性表是n个具有相同特性的数据元素的有限序列.数据元素是一个抽象的符号,其具体含义在不同 ...
- ResNeSt:Split attention
https://www.cnblogs.com/xiximayou/p/12728644.html 下面是SE和SK这两个网络,兄弟俩很相似 下面是具体的每个cardinal(翻译为枢纽)网络,和SK ...