微信号:frontshow

介绍:InfoQ大前端技术社群:囊括前端、移动、Node全栈一线技术,紧跟业界发展步伐。

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

2018-03-14 22:45 Phodal

R.I.P

本文首发于 phodal 公众号,经作者授权转载。

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

One JavaScript:移动应用

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

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

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

One JavaScript:Serverless 与 全栈

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

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

Function!Function!Function!

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

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

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

架构:BFF

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

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

问题:更臃肿的 SPA

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

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

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

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

选型:Angular、React、Vue

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

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

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

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

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

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

你呢?2018 怎么想的?

前端之巅

「前端之巅」是 InfoQ 旗下关注前端技术的垂直社群,加入前端之巅学习群请关注「前端之巅」公众号后回复 “ 加群 ”。投稿请发邮件到 editors@cn.infoq.com,注明 “ 前端之巅投稿 ”。

活动推荐:


前端面对的业务正在快速发展变化,工程的规模不断扩大,对迭代速度的要求也更高了。我们应该如何选择最合适的方案在工程中实践?这里有一些互联网名企的应用可参考:

淘宝:前端交互的基础设施的建设

百度:PWA 的探索与最佳实践

微博:QUIC 的应用实践

微软:使用云和人工智能技术构建 Web 应用

点击「阅读原文」查看 QCon 北京 2018 更多关于前端的思考。大会 8 折报名最后一周,立减 1360 元,有任何问题欢迎咨询购票经理 Hanna,电话:15110019061,微信:qcon-0410。

 
前端之巅 更多文章 这里有25个React Native免费教程,请您查收~ RedMonk发布编程语言排行榜:Swift成为全球增长最快的编程语言 滴滴出行跨地域 iOS 构建优化与持续集成 Swift 4.2进入最后开发阶段,为Swift 5铺平道路 致移动开发前线读者
猜您喜欢 新年新语言,WCDB Swift HTTPOXY漏洞说明 淘宝技术部世界杯算法大赛赛况 【2015最佳运维图书评选】结果揭晓 关于烂代码的那些事(上)