技术准备--第2篇

用日志记录“开源软件”的诞生

赤龙ERP开源地址,点亮星标,支持一下,万分感谢

码云:https://gitee.com/redragon/redragon-erp

github:https://github.com/redragon1985/redragon-erp

根据场景选择技术

遇到技术选型,常见的做法往往是选择最前沿的,最流行的,或者选择最新的。对于这种方式我只能说部分同意,技术选型我认为最重要的是要适合产品的使用场景。再好的技术,没有遇到发挥它优势的情景,也是白搭。

那么来看看我要开发的这款开源ERP,他的特点:

  1. 软件是开源的,面对众多的开发者和使用者,一定要选择学习成本低、成熟度高、普及度高,并且尽量使用最少的第三方技术或框架实现所需功能。
  2. 软件是免费的,那么就不能考虑收费的中间件或技术。
  3. ERP软件是企业级管理系统,它最大的特点是业务逻辑复杂,功能复用较多、并发不大、服务层相互调用频繁、数据保密程度要求较高。所以重点考虑的是MVC框架的灵活性、ORM的标准化、安全性框架以及缓存技术。
  4. 系统虽然是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的更多相关文章

  1. 以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区

    以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区 以正确的方式开源 Python 项目 英文原文:Open Sourcing a Python Project the Right ...

  2. 【Alpaca】.Net版开源配置中心 - 技术选型 Vue 3.0

    是否可以用 Vue 3.0 现有的Vue 2.* 不推荐,坐等Vue 3.0出迁移工具吧,手动改的话工作量还是不小的 新项目 考虑下团队内对Vue + TS + VS Code的熟练程度.过程中你会遇 ...

  3. Java开源生鲜电商平台-系统架构与技术选型(源码可下载)

    Java开源生鲜电商平台-系统架构与技术选型(源码可下载) 1.  硬件环境 公司服务器 2.   软件环境 2.1  操作系统 Linux CentOS 6.8系列 2.2 反向代理/web服务器 ...

  4. 点菜网---Java开源生鲜电商平台-技术选型(源码可下载)

    点菜网---Java开源生鲜电商平台-技术选型(源码可下载) 1.内容简介 点菜网目前选用的是最流行的微服务架构模式,采用前后端分离的开发模式,具备高可用,高负载,支持千万级别的数据量的请求. 2. ...

  5. 开源中国 2014 最受关注开源软件排行榜 TOP 50

    开源中国 2014 最受关注开源软件排行榜 TOP 50 开源中国 2014 年最受关注软件排行榜 TOP 50 正式出炉!2014 年结束了,我们来了解一下过去一年里开源中国最受欢迎的 50 款软件 ...

  6. Joomla软件功能介绍与开源程序大比拼Joomla,wordpress,Drupal哪个好?

    Joomla 软件功能介绍:    Joomla!是一套在国外相当知名的内容管理系统 (Content Management System, CMS),它属于Portal(企业入口网站)类型,顾名思义 ...

  7. [转]开源中国的 IT 公司开源软件整理计划介绍

    [转]开源中国的 IT 公司开源软件整理计划介绍 http://www.oschina.net/news/61534/oschina-opensource-collection-plan-for-it ...

  8. 平安银行在开源技术选型上的思考和实践 RocketMQ

    小结: 1. https://mp.weixin.qq.com/s/z_c5D8fvHaYvHSczm0nYFA 平安银行在开源技术选型上的思考和实践 平安银行·吴建峰 阿里巴巴中间件 3月7日 随着 ...

  9. 2015 年度新增开源软件排名 TOP 100 - 开源中国社区

    2015 年度新增开源软件排名 TOP 100 - 开源中国社区 39.ABTestingGateway http://www.oschina.net/news/69808/2015-annual-r ...

随机推荐

  1. Python 字典(Dictionary) clear()方法

    Python 字典(Dictionary) clear()方法 描述 Python 字典(Dictionary) clear() 函数用于删除字典内所有元素.高佣联盟 www.cgewang.com ...

  2. PAM学习笔记

    想了想 还是要先把字符串的东西先都学完告一段落了再说 时间不多了 加油~. PAM 回文自动机 比SAM简单到不知道哪里去了. 回文自动机和其他自动机一样有字符集 有状态 有转移. 一个字符串的回文自 ...

  3. CSMA/CD协议(载波侦听多路访问/碰撞检测) 最小帧长理解

    以下的帧长有的是指帧的时间长度,帧的时间长度=  帧长/传输时延

  4. 【BZOJ1471】不相交路径 题解(拓扑排序+动态规划+容斥原理)

    题目描述 在有向无环图上给你两个起点和终点分别为$a,b,c,d$.问有几种路径方案使得能从$a$走到$b$的同时能从$c$走到$d$,且两个路径没有交点. $1\leq n\leq 200,1\le ...

  5. Junit4 测试代码

    Junit4 测试代码 import org.junit.Test; import org.junit.runner.RunWith; @RunWith(SpringJUnit4ClassRunner ...

  6. 018_go语言中的结构体

    代码演示 package main import "fmt" type person struct { name string age int } func main() { fm ...

  7. 在图像中隐藏数据:用 Python 来实现图像隐写术

    什么是“隐写术”? 隐写术是将机密信息隐藏在更大的信息中,使别人无法知道隐藏信息的存在以及隐藏信息内容的过程.隐写术的目的是保证双方之间的机密交流.与隐藏机密信息内容的密码学不同,隐写术隐瞒了传达消息 ...

  8. Python-关于正则表达式的总结

    什么是正则表达式? 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),用于字符串的 匹配 和 提取 等操作.正则表达式在所有编程语言中都是通用的. 很多人 ...

  9. DIFF算法浅析(三)在react中的实现

    在虚拟dom中diff的实现. 分别从4个方面: DIFF抽象概念(概述.时间复杂性分析) 在Vue2中的实现(版本2.6.11.必要性.执行方式) 在React中的实现(版本16.13.1,必要性. ...

  10. C#LeetCode刷题之#141-环形链表(Linked List Cycle)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3901 访问. 给定一个链表,判断链表中是否有环. 进阶: 你能否 ...