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 date_add() 函数
------------恢复内容开始------------ 实例 添加 40 天到 2013 年 3 月 15 日: <?php$date=date_create("2013-03- ...
- PHP getimagesizefromstring - 获取图片信息函数
getimagesizefromstring — 从字符串中获取图像尺寸信息.高佣联盟 www.cgewang.com 语法 array getimagesizefromstring ( string ...
- 6.18 省选模拟赛 树 倍增 LCT
LINK:树 考虑暴力 保存每个版本的父亲 然后暴力向上跳.得分20. 考虑离线 可以离线那么就可以先把树给搞出来 然后考虑求k级祖先 可以倍增求. 如何判断合法 其实要求路径上的边的时间戳<= ...
- 牛客练习赛64 红色的樱花 exgcd 贪心
LINK:The red sakura 暴怒狂樱 血染京都. 这题质量不咋地 这题也没啥营养. 不过还是存在值得学习的地方的. 一个trick n行 m列 第一行与第n行相连 第1列和第m列相连的时候 ...
- CF R 632 div2 1333F Kate and imperfection
赛后看了半天题 才把题目看懂 英语水平极差. 意思:定义一个集合S的权值为max{gcd(a,b)};且\(a\neq b\) 这个集合可以从1~n中选出一些数字 求出当集合大小为k时的最小价值. 无 ...
- Android RecyclerView的补充。
明天写吧.. 今天写,然后再写今天的内容,虽然结课了,我们还是得学习,所以如果我学习了一些知识,不出意外每天会持续更新的. RecyclerView其实是可以完全代替ListView的存在, 但是为啥 ...
- 013_go语言中的函数多返回值
代码演示 package main import "fmt" func vals() (int, int) { return 3, 7 } func main() { a, b : ...
- 未来云原生世界的“领头羊”:容器批量计算项目Volcano 1.0版本发布
在刚刚结束的CLOUD NATIVE+ OPEN SOURCE Virtual Summit China 2020上,由华为云云原生团队主导的容器批量计算项目Volcano正式发布1.0版本,标志着V ...
- JS 筋斗云案例
.nav { width: 1000px; height: 60px; line-height: 60px; margin: 0 auto; position: relative; } ul { wi ...
- 1、迭代器 Iterator模式 一个一个遍历 行为型设计模式
1.Iterator模式 迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或者阵列)上遍访的接口,设计人员无需关心容器的内容. I ...