Web前后端技术调研(小组开发水利委项目)

一、时间因素

总体计划方案:

5.17 - 5.30(14)
前端:优化Axure图、学习前端技术;
后端:完成小程序所需后台接口设计。

6.1 - 6.31(31)
前端:完成所有页面的实现(第一个版本);
后端:完成后台所需所有接口的设计(第一个版本)。

详细计划方案(周。每周四16:00交流:进度和问题)

5.17 - 5.24(7)
前端:优化Axure图、学习前端技术(React);
后端:确定需求(先考虑小程序所需功能)、设计数据库、设计类和接口、制定统一规范。

5.25 - 5.31(7)
前端:开发后端接口(小程序部分对应的web页面)已实现功能的页面;
后端:开发小程序所需接口(实现)。

6.1 - 6.10(10)
前端:开发小程序所需功能页面(3天时间学习+7天时间开发),并提交小程序作品;
后端:完成小程序所需接口(实现),提前则继续着手其他模块。

6.11 - 6.20(10)
前端:开发非小程序接口对应页面。
后端:开发非小程序接口的主要功能接口(实现)。

6.21 - 6.31(11)
前端:根据前面完成情况,完成剩下未完成部分。
后端:根据前面完成情况,完成剩下未完成部分。

当前下一步计划:

  1. gen的技术调研情况
  2. gan的技术使用情况,推荐
  3. 前端使用技术

二、项目本身风险因素

2.1 网站的主要目的

宣传分会,吸纳更多会员

2.2 主要功能

主要功能包含以下几类:

  1. 信息展示类:分会介绍、分会动态介绍(业界热点新闻)、会员介绍、会议通知和介绍、会议资料展示、分会产品展示、各类奖励和评审结果展示、证书查询等;
  2. 评审类(填表、各类资料上传):职称评审、注册会员资料评审。
  3. 会议资料上传和下载类:图片、视频、PPT、论文等。

2.3 功能难点

  1. 数据问题:分会产品展示、各类奖励展示,证书等。
  1. 需要后台OA系统来管理评审:提交的评审表、申请表,这些数据怎么使用,前台评审结果的展示数据从哪来。
  1. 资料上传下载

2.4 小程序部分功能

当前主要是信息展示

拟展示以下几类信息:

  1. 分会介绍
  2. 分会动态介绍
  3. 会员介绍
  4. 会议通知和介绍
  5. 分会产品展示
  6. 各类奖励和评审结果展示

三、团队能力建设因素

GJW:前端开发、小程序、UI设计。(React、小程序开发、优化Axure图、小程序界面设计)

1 先设计小程序UI,学习小程序的视频,开发;
2 转向React的开发。

ZG:后端开发。(数据库、类的设计、框架搭建、代码的编写)

1 明确小程序所需功能;
2 设计小程序所需功能接口、数据库等。

WHN:前端开发。(React、优化Axure图)

1 学习React;
2 优化Axure。

LYX:后端开发。(数据库、类的设计)

1 明确小程序所需功能;
2 设计小程序所需功能接口、数据库等。

WD:前端开发、后端开发。(打酱油)

1 前端框架总结、React学习;
2 参与明确小程序所需功能;
3 参与后台搭建。

四、前端JavaScript 开发框架选择

为 web 应用选择 JavaScript 开发框架是一件很费脑筋的事。现如今 Angular 和 React 非常流行,并且最近出现的新贵 VueJS 同样博得了很多人的关注。更重要的是,这只是一些新起之秀。

我们主要讨论如今市场占绝对优势的JavaScript开发框架:

Angular、React、Vue 三剑客

image.png

以下是我们今天要解决的问题:

1 这些框架或库有多成熟?
2 这些框架只会火热一时吗?
3 这些框架相应的社区规模有多大,能得到多少帮助?
4 找到每个框架开发者容易吗?
5 对于小型或大型应用程序,框架是否易用?
6 每个框架学习曲线什么样?
8 你期望这些框架的性能怎么样?
9 在哪能仔细了解底层原理?
10 你可以用你选择的框架开发吗?

4.1 三剑客各自的支持

Angular 是基于 TypeScript 的 Javascript 框架。由Google进行开发和维护,它被描述为“超级厉害的 JavaScript MVW 框架”。

React 被描述为 “用于构建用户界面的 JavaScript 库”。React 最初于 2013 年 3 月发布,由 Facebook 进行开发和维护,Facebook 在多个页面上使用 React 组件(但不是作为单页应用程序)。

Vue 是 2016 年发展最为迅速的 JS 框架之一。Vue 将自己描述为一款“用于构建直观,快速和组件化交互式界面的 MVVM 框架”。它于 2014 年 2 月首次由 Google 前员工 Evan You 发布。

Angular == React > Vue

4.2 框架火热程度

在 Github 上(2018.5.17),Angular 有 36,000+ 的 star 和 463 位代码贡献者,React 有 95,000+ 的 star 和 1,000+ 位代码贡献者,而 Vue 有近 94,000 的 star 和只有 120 位代码贡献者。

npm 趋势显示了 npm 包的下载次数,相对比单独地看 Github star 更有用:

image.png

React == Vue > Angular

4.3 长期支持和迁移

Facebook 在其设计原则中指出,React API 非常稳定。

关于 Angular,从 v2 发布开始,有一篇关于版本管理和发布 Angular 的博客文章。每六个月会有一次重大更新,至少有六个月的时间(两个主要版本)。

Vue 1.x 到 2.0 的更新过程对于一个小应用程序来说应该很容易 - 开发者团队已经声称 90% 的 API 保持不变。在控制台上有一个很好的升级 - 诊断迁移 - 辅助工具。

另外:Angular 是一个完整的框架,提供了很多捆绑在一起的东西。React 比 Angular 更灵活,你可能会使用更多独立的,不稳定的,快速更新的库 - 这意味着你需要自己维护相应的更新和迁移。如果某些包不再被维护,或者其他一些包在某些时候成为事实上的标准,这也可能是不利的。

React == Vue > Angular

4.4 三剑客内部功能的比较

4.4.1 组件

React 和 Vue 都擅长处理组件:小型的无状态的函数接收输入和返回元素作为输出。

React == Vue > Angular

4.4.2 Typescript,ES6 与 ES5

React 专注于使用 Javascript ES6。
Vue 使用 Javascript ES5 或 ES6。
Angular 依赖于 TypeScript。

ES5:全名ECMAScript5,可以理解为我们常规意义上的JavaScript(实际上JavaScript还包含了DOM和BOM),是目前大部分浏览器都支持的JavaScript语法特性,在ES5之前还有ES3。

ES6:是2015年制定的ECMAScript语言规范,在ES5的基础上扩充了新的语法特性,代表着JavaScript的未来,但还没有被大部分浏览器兼容,可以用babel等工具转化为ES5。

TypeScript:TypeScript在ES5、ES6的基础上又增加了类型检测等新特性,跟java很像,同时又保留了JavaScript的灵活性,非常适合大型应用程序。TypeScript不是ES5、ES6这种官方产物,不被浏览器支持,需要用官方的工具转化为ES5、ES6。因为angular2是用TypeScript写的,这让TypeScript最近大火,作者也是因为要用angular2做项目接触的TypeScript(偷偷告诉大家:TypeScript写起代码来非常爽)。

ES5->ES6->TypeScript面向对象的演化
从ES5到ES6到TypeScript,面向对象的味道越来越浓。ES5里面向对象靠模拟;ES6已经有class这个概念了,但还不够完善;TypeScript更是将面向对象推向了极致,这方面已经不比java差了。所以作者把这三者放在一起来对比、印证。

新手可以只看ES5部分,学习有余力的和老鸟们可以把三部分demo一起看。

ES5, ES2015 和 TypeScript 的区别

React == Vue > Angular

4.4.3 模板 —— JSX 还是 HTML

JSX 意味着 React 中的所有内容都是 Javascript -- 用于JSX模板和逻辑。

Angular 模板使用特殊的 Angular 语法(比如 ngIf 或 ngFor)来增强 HTML。虽然 React 需要 JavaScript 的知识,但 Angular 会迫使你学习 Angular 特有的语法。

Vue 有“Single File Components”(单个文件组件)。这似乎是对于关注分离的权衡 - 模板,脚本和样式在一个文件中,但在三个不同的有序部分中。

React == Vue > Angular

4.4.4 框架和库

Angular 是一个框架而不是一个库,因为它提供了关于如何构建应用程序的强有力的约束,并且还提供了更多开箱即用的功能。

React 和 Vue 是很灵活的。他们的库可以和各种包搭配。

Vue 似乎是三个框架中最轻量的。

Vue == React > Angular

4.4.5 体积和性能

Angular 框架非常臃肿。gzip 文件大小为 143k,而 Vue 为 23K,React 为 43k。

为了提高性能,React 和 Vue 都使用了虚拟 DOM(Virtual DOM)。

虚拟 DOM 和 DOM 之间的差异

简单的说就是:
当大面积的操作 DOM,性能会是一个很大的问题,React 实现了一个虚拟 DOM,组件 DOM 结构就是映射到这个虚拟 DOM 上,React 在这个虚拟 DOM 上实现了一个 diff 算法,当要更新组件的时候,会通过 diff 寻找到要变更的 DOM 节点,再把这个修改更新到浏览器实际的 DOM 节点上,实际上不是真的渲染整个 DOM 树。这个虚拟 DOM 是一个纯粹的 JS 数据结构,所以性能会比原生 DOM 快很多。

Vue == React > Angular

4.5 测试

Facebook 使用 Jest 来测试其 React 代码。
Angular 2 中使用 Jasmine 作为测试框架。
Vue 缺乏测试指导,但是 Evan 在 2017 年的展望中写道,团队计划在这方面开展工作。

Angular == React > Vue

4.6 通用与原生 app

React 和 Angular 都支持原生开发,Vue暂不支持。

Javascript 框架在客户端上渲染页面。这对于性能,整体用户体验和 SEO 是不利的。服务器端预渲染是一个好办法。所有这三个框架都有相应的库来实现服务端渲染。

Angular == React > Vue

4.7 学习曲线

Angular 的学习曲线很陡。它有全面的文档,但你仍然可能被吓哭,因为说起来容易做起来难。即使你对 Javascript 有深入的了解,也需要了解框架的底层原理。去初始化项目是很神奇的,它会引入很多的包和代码。因为有一个大的,预先存在的生态系统,你需要随着时间的推移学习,这很不利。

对于 React,你可能需要针对第三方库进行大量重大决策。仅仅 React 中就有 16 种不同的 flux 软件包来用于状态管理可供选择。

Vue 学习起来很容易。公司转向 Vue 是因为它对初级开发者来说似乎更容易一些。

Vue > React > Angular

如果你是一个没有经验的 Javascript 开发人员 - 或者如果你在过去十年中主要使用 jQuery,那么你应该考虑使用 Vue。转向 React 时,思维方式的转换更为明显。Vue 看起来更像是简单的 Javascript,同时也引入了一些新的概念:组件,事件驱动模型和单向数据流。这同样是很小的部分。

学习曲线陡峭,这也可能是一个好处,因为你在学习技术时必须学习正确的概念。用 Vue,你可以用老方法来做。这一开始可能会比较容易上手,但长此以往会出现问题。

React > Angular > Vue

4.8 总结

React,Angular 和 Vue 都很酷,而且没有一个能明显的超过对方。相信你的直觉。

我应该选什么?如果你在Google工作:Angular
如果你喜欢 TypeScript:Angular(或 React)
如果你喜欢面向对象编程(OOP): Angular
如果你需要指导手册,架构和帮助:Angular
如果你在Facebook工作:React
如果你喜欢灵活性:React
如果你喜欢大型的技术生态系统:React
如果你喜欢在几十个软件包中进行选择:React
如果你喜欢JS和“一切都是 Javascript 的方法”:React
如果你喜欢真正干净的代码:Vue
如果你想要最平缓的学习曲线:Vue
如果你想要最轻量级的框架:Vue
如果你想在一个文件中分离关注点:Vue
如果你一个人工作,或者有一个小团队:Vue(或 React)
如果你的应用程序往往变得非常大:Angular(或 React)
如果你想用 react-native 构建一个应用程序:React
如果你想在圈子中有很多的开发者:Angular 或 React
如果你与设计师合作,并需要干净的 HTML 文件:Angular or Vue
如果你喜欢 Vue 但是害怕有限的技术生态系统:React

如果你不能决定,先学习 React,然后 Vue,然后 Angular。

六、后端主要技术

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容