前端译趣我爱编程

CSS-Tricks-漫谈前端开发未来

2018-05-24  本文已影响67人  linc2046

CSS-Tricks-漫谈前端开发未来

几天前我受邀就此话题做演讲。我想说和任何人一样我其实并不够格回答这个问题。如果你真的需要这个问题的答案,或许你可以看看来自众多开发者调查结果的聚合数据。

我其实有一点资格, 除了维护本站需要我每天都思索前端开发,同时可以接触到许多关于前端开发的分享对话, 我本身也是一名活跃的开发者。我在CodePen工作, 这里聚集了一批前端开发者。

而且我每周都在ShopTalk Show上和众多开发者交流前端开发, 我也会游历周围参加以前端开发分享为主的各种会议。

我尝试这样总结。再次声明:

持续高涨的用户体验期望

以下创造了条件:

各类网站持续要求改进是用户体验提升, 这要求开发者迅速构建高效且快速的复杂web应用。

新版本Javascript已经发布

就jQuery的方便性而言, 在新的开发环境中jQuery已经完成使命。 我的意思并不是ES6+已经完全覆盖, 但正在逐步走向这种趋势。 太过直接的和DOM打交道并把它当成一种状态存储工具使我们陷入麻烦当中, 如我开头所说的, 用户体验期望加上复杂度都在上升。我们需要

管理前端开发的复杂度。

像我们之前讨论的状态其实是个大概念。网站构建将会首先需要考虑什么状态需要管理,从而建立对应状态的存储。光框架就有这些: Ember, React, Vue, Angular, Svelte等等。

无论哪种框架,他们都采用管理状态、组件以及处理DOM。 现在他们也在性能、功能和API易用性上激烈竞争。

TypeScript也似乎是个长期的赢家, 因为它可以和任何应用协作,同时稳定性也不赖,而且相对开发者有着良好的编辑器体验。

构建系统而不是网页

样式指南、设计系统、模式库, 这些正在成为web应用的标准部分。这些可能将会成为首要交付的部分。系统可以基于任何需求构建。网页的概念已经一去不返。 将一系列的组件拼装构建用户可见系统。组件拼装可以由用户体验设计师、交互设计师甚至是营销人员。

新的JavaScript趋势就是这样。

原生和Web之间界线日趋模糊

正如Sketch和Figma一样, 哪个更好? 其实我们在意他们的功能,而不是原生实现或者webapp应用。我应该用Slack还是TweetDeck原生APP, 或者只开个Tab页。无论哪种都可行,有时webapp比较好。我希望它是原生就因为它可以是我的dock工具条上的图标,而且可以持久化登录态,所以我会用Gmail的Mailplane和Trello的Paws图标。

我经常用一些应该是原生应用的APP, 最好发现在web上一样好甚至体验更好。看那些音视频APP, Skyepe就是全功能APP, Lightstream完全是个流媒体工具, Zencaster可以记录多轨道高质音频。这些都可以在浏览器中实现。

这些只是可以在Web中实现的几个例子。Web技术本身已经取得巨大进步。 服务化进程可以让我使用更重要的功能,像离线能力和消息推送,Web音频API, WEB支付API。WEB将会成为构建APP的主导平台。

URL地址依然重量级特性

web这个真的是走对路子。通过一种统一的方式切换至特定资源是很棒的。没有URL, 就没有人类迄今为止最重要创新之一: 搜索引擎。URL让分享和收藏成为可能。URL使得营销成为公平竞争的领域,任何人可以不受限制的访问任何URL。

性能十分重要

人们逐渐难以忍受低性能网站访问体验。每个人都想任何操作都是即时。那些很慢的网站将让人难堪。

CSS越来越模块化

当我们写样式的时候,总是要考虑很多选择。这块是不是要写成全局样式? 我还是要故意把这个样式写成整站全局?

又或者这只是个组件特定样式?CSS将会分成这两部分。组件特定样式将会内部封装同时和组件一起打包按需加载。

CSS预处理将会慢慢落幕

许多预处理器的重要特性已经加入到原生CSS, 比如: 变量, 或者更高级的构建过程(improt)已经能处理的更好。其实我们最终用来打包和封装CSS的工具,某种意义上,还是CSS预处理器。所以在需要预处理的场景还是得预处理器来做。在众多的预处理器的标准集合中,我

想我们主要会想念的是混入(Mixin)。如果原生CSS实现混入(或许是@apply)和扩展extend(或许是@extend), 将会加速淘汰目前预处理器的核心功能。

熟练掌握HTML和CSS依然很重要

搭建HTML的方式以及如何形成DOM将会持续变化。但是你仍然需要如何编写良好的HTML结构。你将需要知道如何编写开发者可用的,用户可访问的,易于编写样式的HTML结构。

浏览器加载和解析CSS的方式将会持续变化,但你仍然需要掌握如何使用CSS。你仍然需要知道如何实现布局,管理间距,调整字体,而且还得有审美品位。

构建过程颇具挑战

因为性能相当重要, 而且有很多巧妙的解决性能方式, 我们将会看到更多生产环节打包代码库的创新。像webpack这样的工具(tree shaking 和代码分割) 已经在打包方面做出了很多。但是使用自动化工具魔法般最终部署代码到浏览器和首屏加载优化, 按权重依次打包静态

资源、判断资源发送位置和方式、解决冗余资源发送方面仍然有很大的发展空间。

随着web平台不断地演进,(比如: Client Hints),构建过程和以前一样将会因此而改变同时最佳实践也会随之发展。

译者注

上一篇 下一篇

猜你喜欢

热点阅读