一、Web应用技术栈
在开发Web应用时,通常会使用到以下技术栈:
对应这些技术栈都已有相应的开源产品,可以根据项目需要选择适合的产品。
二、开源产品选型原则
开源产品选型主要考虑:
- 适合本项目,如满足功能需要,开发者已有的技能储备等等。
- 活跃度高,发现问题开发团队能及时解决。
- 已经有不少项目的成功经验。
三、iTracker产品选型
iTracker是一个开源任务管理系统,目的是通过实际项目来使用和验证以上技术栈, 同时也是一个培训类Demo项目,你可以通过follow Web应用全栈之旅的系列文章一起参与学习。
iTracker选型如下:
四、前端选型
- 前端框架Vue.js,理由是:轻量,热度高,热度从慕课网培训课程Vue和Angular的购买人数就可以看出来。
- UI组件选择饿了么的Element UI,理由是:一次安装使用成功,功能够用。
- 编辑器
编辑器选型主要考虑因素有:
1)是否支持直接拷贝富文本的中的图片或者截屏后粘贴,能拷贝Word中的图片和visio图最佳。但能拷贝visio图粘贴后不失真通常是收费富文本编辑器才具备的能力。
2)是否支持编程语言高亮,例如按Java,C++语言高亮
3)是否支持数学公式等等
因此选择了两款富文本编辑器:
1)wangEditor,支持截屏粘贴,当做Bug跟踪系统时这个功能特别有用。
2)Editor.md,支持编程语言高亮,支持数据公式。
- 图表
图表组件很多,够用就好。
1)Echart,用于统计类图表。
2)d3,功能强大,彩虹图,柱状图,在做调用链跟踪类的应用中可以使用。
五、后端选型
- Web框架
没有任何疑议选择Spring。
- 工具包
在实际开发过程中可能用到很多工具包,例如支持后台分页的工具包PageHelper,例如虽然已有fastJSON来做json文本和对象的转换,但有的场景会用到Gson,具体根据实际需要选择。
- 配置中心
虽然大多数配置都可以在spring的yml配置文件中完成,但当配置参数越来越多,又要区分不同环境时,通过配置中心来配置更方便一些,这里选择了携程的Apollo配置中心。
- 缓存
支持数据缓存, 分布式缓存,可以用来管理分布式session,Rdeis足以胜任。
- 消息队列
几个知名消息队列工具,kafka,RocketMQ,RabbitMQ,在没有确切的场景需求时,先简单选择一个开始吧。
- 搜索
由于数据库的模糊查询效率低,同时也不可能不断增加一个表的索引字段来满足查询要求,因此一个搜索引擎是必要的,Elasticsearch可以满足要求。
六、数据库访问选型
JPA代码写起来简单,但是对于复杂查询有些力不从心,所以还是带上mybatis吧。
七、数据库选型
MySQL。
八、结语
学习在任何收开始都不晚,感兴趣的话,一起开始Web全栈之旅吧!
end.
<font color="#F4B183">站点:</font> http://javashizhan.com/
<font color="#F4B183">微信公众号:</font>
<font color="#F4B183">加入知识星球,参与讨论,更多实战代码分享! </font>
https://t.zsxq.com/RNzfi2j
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。