任何强大架构都是从单体架构逐步演进的,这里从单体架构电商开始,逐步增加分布式技术,进行架构演变。

技术选项 Spring Boot VS MVC

● SpringMVC 是框架,SpringBoot 是工具
○ SpringMVC 是一个框架
○ SPringBoot 是一个工具,MVC 只是他里面的一个模块
● 从配置繁琐的 xml 到零配置 yml
boot 强调零配置,将所有的配置精简到 yml 中
● SpringBoot 集成了多样化中间件 *-stater
● 从外置 tomcat 变为内置 tomcat
可以通过配置文件去配置 tomcat 相关的配置

聊一聊 Struts

● 安全漏洞
Struts 现在基本上没有人在用了,是一个很古老的 MVC 框架,它本身有一些严重的 BUG。
● 请求变量共享
当用户量增多,请求增多的时候,在 action 中的一些请求变量可能会造成共享问题,虽然可以通过一些手段来处理,相对来说还是比较麻烦。
● Filter 拦截
过滤是类拦截,Spring 的 AOP 拦截是方法级拦截
● 非 Spring 官方自产自销
Struts 不是 Spring 官方的,整合起来相对麻烦

前端技术选型

作为架构师或则技术总监,不一定要会写过多的前端代码,但是要有一定的了解

● MVVM 开发模式
是前端领域的一种开发模式,通过数据绑定来操作 dom
● Jquery、vue.js
前端框架中的模板部分组件使用的是 Jquery
vue 是渐进式框架,可以逐步的去替换掉老的东西,比如使用了 jquery,可以通过迭代去掉 jquery
● html + css

技术选型所要考虑的

● 切合业务
能否实现现有功能,能够预判的后续的功能和现有选型技术是否能够完全的匹配。
● 社区活跃度
一个技术出来的时候,都有一个社区,当一个社区活跃度比较高的话,我们可以考虑使用,如果社区活跃度不高,可能这个技术并没有多少人去使用和关注他
● 团队技术水平
如果团队经验不够的话,是需要对他们进行培训。在开发周期短等综合因素下,我们是否需要考虑使用团队比较熟悉的一些技术或则比较陌生的技术来完成开发,作为架构师、领导者是需要进行权衡的
● 版本更新迭代周期
当一个开源技术迭代快,周期短,也是可以考虑选择该技术的。
比如 dubbo 版本停更一段时间,在这段时间中,一些公司使用 dubbo 出现了一些问题,得不到解决,在这种情况下,你就需要考虑后续要不要继续使用该技术。
● 试错精神
并不是在实际项目开发中试错,主要是在平时接触各种技术的时候需要去多尝试、多体验,无论对错,为自己积累经验,以后就会有很多备选方案和技术
● 安全性
比如 Struts 的安全漏洞,当一个框架层级发生过较大的安全漏洞时间时,就需要去仔细斟酌要不要使用
● 成功案例
如果是在行业类有成功过的,口碑不错的,无论是小公司还是大公司,都可以考虑去采纳
● 开源精神
我们目前开发中使用到的技术几乎上是开源的,当你遇到一个技术在未来可能要闭源,就需要去斟酌是否需要选择
一般在使用框架的前期很难知道该框架的未来走向,所以当你听到这一消息时,就需要去考虑这个问题了