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