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 tanh() 函数
实例 返回不同数的双曲正切: <?php高佣联盟 www.cgewang.comecho(tanh(M_PI_4) . "<br>");echo(tanh(0.5 ...
- 一本通 高手训练 1782 分层图 状压dp
LINK:分层图 很精辟的一道题 写的时候没带脑子 导致搞了半天不知道哪错了. 可以想到状压每次到某一层的状态 然后这个表示方案数 多开一维表示此时路径条数的奇偶即可. 不过显然我们只需要知道路径条数 ...
- source命令用法:source FileName
转自https://zhidao.baidu.com/question/59790034.html 写得很清楚,就直接搬过来了备忘 作用:在当前bash环境下读取并执行FileName中的命令. 注 ...
- (转)Qt添加windows开机自启动
原博文地址为:https://blog.csdn.net/x356982611/article/details/53183144 简介 window下开机启动最简单的实现方式就是在注册表中添加启动项目 ...
- “随手记”开发记录day09
今天完成了关于我们页面和更新查找页面 效果
- JavaScript按位运算符~
1. JavaScript按位运算符 Bit operators work on 32 bits numbers. 2. JavaScript按位运算符~ 值得注意的是,在JavaScript中,~5 ...
- mogilefs 安装与配置
安装步骤 配置yum 的epel源 yum install perl-Sys-Syslog perl-IO-AIO perl-Net-Netmask -y # 安装依赖的包 取得mogilefs的rp ...
- 8 Java 条件逻辑语句
生活中,我们经常需要先做判断,然后才决定是否要做某件事情.例如,在上学的时候,如果期末考试成绩在全校能拿到前100名,则奖励一个 iPhone 11 .对于这种“需要先判断条件,条件满足后才执行的情况 ...
- Bytom Dapp 开发笔记(二):开发流程
简介 这章的内容详细分析一下涉及智能合约Dapp的整个开发流程,注意是涉及只能合约,如果你只要一些基本转BTM功能没有太大意义,本内容补充一下官方提供的 比原链DAPP开发流程,详细实践过好踩到的一些 ...
- [vue]子组件通过props获取父组件数据以及使用watch解决动态数据不生效问题
父子组件的传值,在Vue官方也写得很清楚,父组件中使用v-bind绑定传送,子组件使用props接收. 父组件通过v-bind绑定数据: <template> <router-vie ...