你好,游客 登录
背景:
阅读新闻

在 2018 年初,让我们再谈谈大前端的趋势

[日期:2018-03-21] 来源:  作者: [字体: ]

上一次写前端趋势这一类的东西,是在去年的这个时候。一年多过去了,又发生了怎样的变化呢?

One JavaScript:移动应用

640?wx_fmt=png&wxfrom=5&wx_lazy=1

前有,使用 React 及 React Native 来开发 Android 及 iOS 应用。

后有,Dart 通过 Google 的 Flutter 框架来支持移动应用程序开发,该框架旨在为 Android 和 iOS 创建原生 UI。

使用同一种语言作为业务开发语言,再基于一个 DSL 来封装基础平台的架构,已经成为了一种大的趋势。过去,在后端的这种语言是 Java;现在,这种语言则是 JavaScript。

One JavaScript:Serverless 与 全栈

640?wx_fmt=png

对于没有后台经验的前端开发人员来说,使用 Node.js 开发后端应用是一种相当大的挑战。大多数非科班的前端程序员,不知道从数据库到 RESTful API 的一系列操作,并且还需要了解到部署等一系列的系统底层知识。因此,使用 Serverless 这种不关心基础设施的技术,可以进一步地降低开发成本。

使用 AWS 来运行大量的 Serverless 计算的成本很高,但是自己搭建一个 Serverless 服务器,来运行自己的 Serverless 应用,则变成了一种更廉价的方式。

有兴趣的读者可以阅读我在 GitHub 上写的《Serverless 架构应用开发指南》,地址:https://github.com/phodal/serverless

Function!Function!Function!

640?wx_fmt=png

2017 年 9 月,在接手一个 React 项目的时候,发现在这个 React 项目里,Lodash 已经变成了 Ramda。初次上手时,和我之前维护一个 Scala 的微服务有着一致的体验,这货真难懂。但是毫无疑问地是,它大大减少了代码量。只是不同的人写出的函数式代码是不一样的,所谓的千人千码

函数式编程可以减少一定量地冗余代码,它也带来了一定的新问题:可维护性及上手复杂度。

但是越少的代码,可能意味着更少的 bug,不是吗?

架构:BFF

640?wx_fmt=jpeg

我的上一个客户端项目里,采用了 BFF 层,其对于大前端来说,是一种很友好的开发体验。对于存在 Android、iOS 及 Web 应用的系统来说,BFF 层不仅仅可以减少应用的开发时间,还可以提高业务的灵活性——只需要在修改 BFF 层的情况下,就可以使三端达到一致。

更详细的内容可以参见:《前后端分离演进:不能微服务,那就使用 BFF 隔离》。

问题:更臃肿的 SPA

640?wx_fmt=png

在过去的几年,大量地前端项目已经使用 Angular、Vue、React、Ember 等框架重写。使用哪种框架,对于一个前端项目来说,差别并不大。

从零启动一个前端项目是一件容易的事,但是问题的关键在于,我们不可能不断地重写前端项目。于是,对于前端项目来说问题变成了,如何去维护一个前端项目。

如果一个项目中的前端开发人员水平参差不齐,但是没有辅以有效的代码改善方式,如 CheckStyle、Code Review、测试 等等。那么,未来它必是一个痛苦的遗留系统。

在新的项目里,我也着手去解决这样的问题。

选型:Angular、React、Vue

640?wx_fmt=png

我喜欢大而全的框架,而不是小而美的框架。小而美的框架,维护成本太高了——这里讨论的是维护成本,也就是你在这个软件上可能还要继续开发一年,两年,而不是几个月。所以,如果你没有在一个前端代码库里,工作一年、两年,不要和我讨论这一个问题。小而美的框架里,组件间依赖,版本间限制,上下游同步等,在时间线上就是各种麻烦的问题。在工作上,花费大量时间解决这种技术问题,真的很不爽——只会导致加班。

如果只做的是复杂的 Web 应用,基本上就是 Angular 了。因为要用 Angular,就需要会 TypeScript -> 强类型、RxJS、注解、依赖注入等等——需要学习的时间长,代码质量上有一定的保证,应该不怕遇到小白,笑~~。

不选择 React 的主要原因是,React 只是一层 View,整个系统在配置上太麻烦了,Angular 上手即用。

如果同时做 Web 和 APP 应用的话,那么在 Web 方面就是 React,毕竟 APP 可以用 React Native。

我没有在复杂的 Web 应用里,使用过 Vue,不好做太多评价。以我在一些公司项目上和个人项目上的使用经验来说,Vue 的最大优势是简单,同时可以帮助我们渐进式的迁移前端应用。

640?wx_fmt=png

对了,我更喜欢 TypeScript,因为它看上就像是 EcmaScript 的终极版。

 

你呢?2018 怎么想的?

推荐 打印 | 录入:Cstor | 阅读:
相关新闻      
本文评论   
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款