Skip to content
wxa edited this page Jun 6, 2017 · 7 revisions

整体设计

网站采用前后端分离的设计模式,类似手机APP的开发模式。该优缺点如下:
优点:

  1. 拆分更细,前后端开发人员无需熟悉彼此专业技能,降低开发人员要求,方便团队扩充及外部人员参与开发
  2. 前后端可以有选择各自的开发框架,以便适应更特殊的需求和增加开发效率
  3. 分离后服务器更多是提供API(http)接口, 方便手机应用的接入,同时可以方便拆分成单程序单功能微服务架构,然后跟功能使用频度提升相关单服务数量,以适应高并发需求。

缺点:

  1. 不方便搜索引擎记录有数据内容的页面(数据都是动态获取),降低搜索出现频率。

前端架构

基础库

  • requireJs 异步加载
  • angularJs 框架库
  • bootstrap 样式库
  • jquery 简化dom操作

使用requirejs做异步加载,angularjs做数据渲染,bootstrap做界面美化和统一

框架主流程

1 加载执行index.page, 用户访问URL, 访问index.page 并根据script标签加载并执行脚本config.js, require.js, main.js
2 加载执行依赖模块, 执行requireJs入口函数会执行requirejs加载机制,解析入口函数依赖模块并加载执行
3 初始化前端环境, requirejs依赖加载完会执行入口函数,入口函数执行环境初始化并启动angularjs
4 执行控制逻辑进入事件循环, index.page页面使用ng-controller导致控制器逻辑被angular执行,主控制器根据url加载相应页面内容并通过markdown渲染显示。 页面使用angular机制同时也再次进入事件循环和逻辑处理。
5 点击关闭页面结束流程。

后端架构

基础库

  • nignx web代理
  • gitlab, github 文件存贮服务
  • NPL TableDB NPL非关系数据库
  • NPL WebServer NPL web服务器
  • NPL RUNTime NPL 类库

后端矿建流程

1 用户请求,nginx接受请求根据url转发对应NPL服务器上, 通过nginx代理实现负载均衡,多环境部署。
2 NPL服务器根据url返回对应的用户数据或页面视图。

Clone this wiki locally