加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 综合聚焦 > 创业热点 > 经验 > 正文

全栈工程师如何快速构建一个Web应用

发布时间:2016-06-16 16:50:13 所属栏目:经验 来源:简书
导读:前不久,为我的微信订阅用户编写了一个分享学习编程和设计资源的小站——技匠社 jijiangshe.com,有朋友问我是如何在短时间内写出这个网站的,我又用到了哪些技术和框架呢

下面是我在做技匠社网站时,用Sketch所做的一个资源详情页面的设计。

全栈工程师如何快速构建一个Web应用

为了得到更好的用户体验,我也会在最终的显示效果中,利用CSS3的@Keyframe加上诸如打开报纸般的简单动效,让应用显得更加生动。

全栈工程师如何快速构建一个Web应用

应用架构

接下去,我要做的便是为网站选择合适的应用架构。我曾为那些银行或保险公司写过底层核心框架,来支持它们复杂或对并发要求极高的业务场景。但对于一个刚刚起步的网站,你完全不需要去做如此复杂的架构设计,尽可能去使用那些标准和开源的框架和技术就能够保证你做出一个具有良好扩展性的网站。请记住:没有最好的架构,只有最合适的架构

为了便于系统日后的扩展,我采用了前后端分离的架构设计:

前端:

目前最流行的两个前端框架是AngularJS和React,在这个项目中我选择的是AngularJS,主要出于以下两个方面的原因:

我需要的是一个更完整的JavaScript框架,AngularJS能满足我全面性方面的要求,我可以使用它的Controller,Service,Directive等特性来构建出一个完整的Web应用。 我会在将来用Ionic来写出一个App应用,由于Ionic也是基于AngularJS的,这意味着,我将可以复用很多前端代码。 全栈工程师如何快速构建一个Web应用

后端:

我选择的是基于SpringBoot的框架,SpringBoot并不是Spring的一个升级版本,而是一个为构建微服务提供更好支持的全新框架。SpringBoot能够为我提供一个具有良好扩展性的框架,在初期我可以将所有的功能作为一个整体对外服务,随着用户数量的上升,和系统规模的不断扩大,我将可以借助SpringBoot,并基于Domain Driven Design的设计思想将系统的服务进行拆分,构建出一系列微服务。

目前,在后端我主要使用到了下面这些技术或框架组合:

SpringBoot: 开发基于REST的服务,使用JSON作为数据交换格式。 MyBatis:提供基于SQL的持久层支持。 Redis:由于采用了前后端分离的做法,我用Redis来持久化用户Session信息。 Spring Security: 提供安全方面的支持,能与SpringBoot无缝整合。 MySQL:数据库,在这个项目中我仍然使用了传统的关系型数据库。 Maven:项目的包依赖管理,以及项目打包。 全栈工程师如何快速构建一个Web应用

开发

开发相对来说倒是一件按部就班的事情,首先基于SpringBoot以及其他第三方库所提供的API来开发出基于REST的服务。然后在前端利用AngularJS将应用分为几个模块UserManager,ResourceManger,FeedbackManager分别开发,通过$http来调用后端服务来进行业务处理和数据交互。

整个开发过程中,你仍需要去解决一些问题:

前后端分离之后,如何进行Session的管理 如何实现安全的跨域请求 在Spring Boot中如何整合MyBatis框架 如何利用Spring Security来构建安全的REST服务 利用云服务实现图片的上传与处理

以上这些具体的开发技巧,我都会在《全栈修炼》的后续文章中与大家分享。

部署

选择云服务器

虽然我们采用了前后端分离的架构,但在上线初期,我们可以将系统的前端、后端和数据库都部署在一台云服务器上。我们需要选择一个云服务提供商,将应用部署上去了。如果你是一个学生,我建议你选择亚马逊云,因为它能提供首年免费使用的服务。我由于有多台服务器使用了阿里云,所以为了管理的方便,我还是选择了阿里云服务器来部署我的应用,操作系统方面,我选择的是Ubuntu Linux,其他硬件方面除了带宽,我选择了3M之外,其他我都使用的是最低的配置,因为根据上线初期的用量评估,这样的配置已经足够使用了,当用户和规模增加时,可以通过升级配置的方式来获得更多硬件资源,这一点还是非常方便和经济的。

全栈工程师如何快速构建一个Web应用

应用部署

后端: 由于采用了SpringBoot,后端的服务可以用Maven Plugin直接打包成一个可运行的jar包,它集成了jetty服务器可以直接向外提供REST服务。当然,如果你不喜欢jetty,也可以通过在pom.xml中简单地修改配置来集成tomcat作为你的应用服务器。最后在你的服务器启动脚本中,简单地使用 java -jar命令,就可以启动你的后端服务了。

前端: 前端是一个静态网站,包含HTML、CSS、以及图片文件。我将它部署在了一台Apache服务器上,当然你也可以选择Nginx这样的高性能服务器。

安全

你需要定义出网站的安全策略,比如用户组,用户权限的分配,出于安全的考虑,尽可能将不需要开放的端口用防火墙隔离,只保留80等几个对外提供服务的端口等等。另外,如果你的网站交互中包含一些敏感的信息,那么你还应该使用TLS对数据的传输进行加密处理。

性能调优

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读