一、前端框架
Angular
Angular原名angularJS诞生于2009年,之bai前我们都是用dujquery开发,自从angular的出现让我们有了新的选择zhi,它最大的特点是把后端的一些开发模式移植到前端来实现,如MVC、依赖注入等。
Angular方向
大而全型的框架,为大型项目所推崇,深度整合Typescript和Rxjs。
web端主流技术方案:
Angular.js + Typescript
移动小程序端技术方案
类原生App开发:ionic
Angular没怎么去了解过,只知道一些皮毛而已
PS:
flutter是由谷歌发布的一个全新的响应式、跨平台、高性能的移动开发框架,可以快速在iOS和Android上构建高质量的原生用户界面(潜力较大,目前也比较火热,但语言不同)
flutter使用的编程语言是Dart,您可以在其官网了解和学习这门语言,Dart官网:https://www.dartlang.org/
electron利用 web 技术构建跨平台的桌面程序
Cordova是一个开源移动开发框架,它允许您使用标准的Web技术,如HTML5,CSS3和JavaScript进行跨平台开发,避免每个移动平台本机开发语言。应用程序在针对每个平台的包装内执行,并依靠符合标准的API绑定来访问每个设备的传感器,数据和网络状态。
React
React,facebook出品,正式版推出是在2013年,比angular晚了4年,但得益于其创新式的VirtualDOM,性能上碾压angularJS,一经推出,火的一塌糊涂。 特点很多,VirtualDOM、JSX、Diff算法等,支持ES6语法,采用函数式编程,门槛稍高,但也更灵活,能让开发具有更多可能性。
React方向
V-Dom技术的开创者,主流框架中的NO.1。React的贡献都是开创性的,在它基础上,也有很多兼容框架,比如Anu,Nerv。用以解决React在性能或IE兼容性上的问题。
web端主流技术方案:
React + Redux/React-Redux + React-Router + Fetch/axios + ant-design(UI组件库大同小异,选择一个就够了)
移动端小程序端技术方案
H5开发:H5和PC开发差异不大,直接react框架开发即可
小程序开发:微信原生小程序
跨端小程序/简单App开发:Taro(React兼容的跨平台多端统一开发框架。一键生成可以在微信/百度/支付宝/字节跳动小程序、H5、React Native等端运行的代码。虽然多端统一框架看似可以在不同类型的平台运行,但它还是要依赖那些平台工具,还是寄居之上的小程序而已。)
类原生App开发:react-native(当前比较火)
移动端混合开发:react + cordova(混合开发推荐cordova)
服务端渲染技术方案
next.js为 React 应用打造的服务端渲染框架
Vue
Vue作为最后推出的框架(2014年),借鉴了前辈angular和react的特点(如VirtualDOM、双向数据绑定、diff算法、响应式属性、组件化开发等)并做了相关优化,使其使用起来更加方便,更容易上手,比较少适合初学者。
Vue方向
由国人创建,在中国拥有大量使用者,也有很多配套的开源项目。它的是要特点是学习成本低,容易上手。
web端主流技术方案:
Vue + Vuex + Vue-Router + axios + ElementUI(UI组件库大同小异,选择一个就够了)
移动端小程序端技术方案
H5开发:H5和PC开发差异不大,直接vue框架开发即可,若有其他需求可以按情况选择。如:uni-app也可以开发h5页面
小程序开发:微信原生小程序
跨端小程序/简单App开发:uni-app(一套代码微信、支付宝、百度小程序都可用运行,vue语法)
类原生App开发:weex(坑比较多,阿里开源)、ionic+vue(需要探究,文档差点)
移动端混合开发:vue + cordova(混合开发推荐cordova)
服务端渲染技术方案
nuxt.js一个为 Vue.js 应用实现服务端渲染的简约框架
*PS:这三个主流框架分别代表着不同的三条路线,底层都是js语言,但是各个的实现方式都有不同。其中目前市场最火的是vue,其次是react,至于angular.js相较于前两者没那么火热,但不代表就不如前两者,作为一个前端开发人员,我们当然最好是跟随市场的主流咯,这样至少工作岗位多,工作也好找些,哈哈!因此我推荐vue或者react
而移动端开发则有大概六大种类的开发模式:混合app、原生app、渐进App、桥接App、自绘App* 参考地址:https://www.cnblogs.com/windfic/p/10443342.html
Pure
1 描述:Pure精心设计,只为可以在任何Web项目中使用。
2 说明:Pure是一个轻量级的模块化框架 - 用纯CSS编写 - 包括可以根据需要一起使用或分开使用的组件。Pure只为项目提供纯粹的样式,对于那些不需要全功能框架只需有特定组件包含工作中的人来说,Pure是理想之选。
bootstrap
1 描述:简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。
2 说明:Bootstrap的广泛流行是它的优势所在。在技术上,它不一定比其它框架更好,但它提供了比其它框架更多的资源(文章和教程、第三方插件和扩展、主题构建器等)。
EasyUI
1 描述:easyui是一种基于jQuery的用户界面插件集合。
2 说明:使用easyui你不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面;easyui是个完美支持HTML5网页的完整框架;easyui节省您网页开发的时间和规模。
Ant Design
1 描述:一个 UI 设计语言,一套提炼和应用于企业级后台产品的交互语言和视觉体系。
2 说明:Ant Design 是一个致力于提升用户和设计者使用体验的平台设计语言。它模糊了产品经理、交互设计师、视觉设计师、前端工程师、开发工程师等角色边界,将进行 UE 设计和 UI 设计人员统称为设计者,利用统一的规范进行设计赋能,全面提高中台产品体验和研发效率。
Foundation
1 描述:Foundation 用于开发响应式的 HTML, CSS and JavaScript 框架,Foundation 是一个易用、强大而且灵活的框架,用于构建基于任何设备上的 Web 应用。
2 说明: Foundation框架是包含常用一些结构体、枚举、类的一个框架,目的是使开发更快捷
二、后端框架
SSH框架
1 描述:SSH是JavaEE中三种框架(Struts+Spring+Hibernate)的集成框架,是目前比较流行的一种Java Web开源框架
struts五大组件介绍
1. ActionServlet
Struts中的最大控制器,是Struts框架的入口,并且封装了Servlet,被配置在web.xml当中
2. Action
小控制器,处理具体的业务逻辑
3. ActionForm
和页面表单对应的一个特殊javabean,负责在页面和控制器之间传递数据。同时还提供了集中验证方法
4. ActionMapping
用来从Struts的配置文件中读取信息
5. ActionForward
页面之间的跳转
Spring特征
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。
强大的基于 JavaBeans的采用控制反转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组件更加快捷简易。
一个可用于从 applet 到 Java EE 等不同运行环境的核心 Bean 工厂。
数据库事务的一般化抽象层,允许宣告式(Declarative)事务管理器,简化事务的划分使之与底层无关。
内建的针对 JTA 和 单个 JDBC 数据源的一般化策略,使 Spring 的事务支持不要求 Java EE 环境,这与一般的 JTA 或者 EJB CMT 相反。
JDBC 抽象层提供了有针对性的异常等级(不再从SQL异常中提取原始代码), 简化了错误处理, 大大减少了程序员的编码量. 再次利用JDBC时,你无需再写出另一个 ‘终止’ (finally) 模块. 并且面向JDBC的异常与Spring 通用数据访问对象(Data Access Object) 异常等级相一致.
以资源容器,DAO 实现和事务策略等形式与 Hibernate,JDO 和 iBATIS SQL Maps 集成。利用众多的反转控制方便特性来全面支持, 解决了许多典型的Hibernate集成问题. 所有这些全部遵从Spring通用事务处理和通用数据访问对象异常等级规范.
灵活的基于核心 Spring 功能的 MVC 网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(View)技术,例如 JSP,FreeMarker,Velocity,Tiles,iText 以及 POI。值得注意的是,Spring 中间层可以轻易地结合于任何基于 MVC 框架的网页层,例如 Struts,WebWork,或 Tapestry。
Hibernate特征
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
将对数据库的操作转换为对Java对象的操作,从而简化开发。通过修改一个“持久化”对象的属性从而修改数据库表中对应的记录数据。
提供线程和进程两个级别的缓存提升应用程序性能。
有丰富的映射方式将Java对象之间的关系转换为数据库表之间的关系。
屏蔽不同数据库实现之间的差异。在Hibernate中只需要通过“方言”的形式指定当前使用的数据库,就可以根据底层数据库的实际情况生成适合的SQL语句。
非侵入式:Hibernate不要求持久化类实现任何接口或继承任何类,POJO即可。