谈谈国内前端的三大怪啖

因为工作的原因,我和一些国外的工程师们有些交流。他们对于国内环境不了解,有时候会问出一些有趣的问题,大概是这些问题的启发,让我反复在思考一些更为深入的问题。

今天聊三个事情:

  • 小程序
  • 微前端
  • 模块加载

今天这个 Antd 是非换不可吗?

最近在思考一个可有可无的问题:

“我们是不是要换一个组件库?”

简单同步一下背景,我效力于 Lazada 商家前端团队。从接手系统以来(近 2 年) 就一直使用着 Alibaba Fusion 这套组件库。据我所知淘系都是在使用这套组件库进行业务开发,已经有 7 ~ 10 年了吧。我们团队花了 2 年时间从 @alife/next(内部版本已经不更新) 升级到了 @alifd/next,并在此之上建立了一套前端组件库体系。将 Lazada Seller Center 改了模样,在 Fusion 的基础上建立了一套支持整个 Lazada B 端业务的设计规范和业务组件库,覆盖页面 500+。

Formily 2.0 深度实践

Formily 作为阿里巴巴旗下开源的一套非常火热的表单解决方案,目前已有 7.8k Star,针对表单这一领域场景,以非常完整、高效、先进的方式解决了开发表单过程中能遇到的几乎全部问题。

面向企业级表单的专业解决方案,专业!

Formily 2.0 正式发布至今已有 7 个月,作为 Contributor 之一,我将以一个企业级复杂度的表单——商品发布,作为应用场景做一个实践总结。

引入Vite = 多一个月

Vite 在21 ~ 22年在前端界可谓风生水起,颠覆传统也不为过。
20年4月,尤雨溪发推说:“我感觉我再也回不到Webpack了”,Webpack作者用中文直呼:大哥… 在22年的今天,我们再看这个Twitter是不是感觉这声 “大哥” 喊得歇斯底里 😂。

到底Vite有什么魔力,可以让全世界的前端开发者们争先恐后的投入怀抱呢?
如果只说一个特点,那就是 “快”,不是传统概念的那种快个百分之多少,是tm的几十倍几百倍的快!

端上的插件设计

在设计一套客户端软件,尤其是基础模块时,我们通常会考虑到扩展性。而插件机制是一套非常好的解决思路,可以让其他开发者按照我们预期的路径进行功能扩展。

那么在软件初期,我们要如何设计一套较为完善的插件模式呢?本篇将会从我个人对插件的懵懂认知开始,逐步介绍如何形成一个较为完善的解决思路。

Plugin(Plug-in, addin, add-in, addon 或 add-on)是一种计算机应用程序,它和主应用程序(host application)互相交互,以提供特定的功能。

数据模型在电商前端领域的应用

Vmo 是我在 18 年发布的一个工具库,用于快速创建数据模型,当时我写了一篇文章:Vmo 前端数据模型设计

在社区得到过一段时间的关注,当时我还在 xx 兔,从事三维装修相关的项目。在图形学的背景基础及海量复杂的数据的情况下,自然而然在前端则会衍生出一种数据处理、解析、消费的技术方案,也种下了我对数据模型概念的种子。

简单举个例子:

如何接"地气"的接入微前端

微前端,这个概念已经在国内不止一次的登上各大热门话题,它所解决的问题也很明显,这几个微前端所提到的痛点在我们团队所维护的项目中也是非常凸显。

但我始终认为,一个新的技术、浪潮,每每被讨论最热门的一定是他背后所代表的杰出思考。

“微前端就是…xx 框架,xx 技术”

为你的JavaScript库赋予插件能力

最近在做一个中台框架的设计开发,在做了主框架的基础能力后,思考在框架落实真实业务需求过程中,需要对主框架功能有非常多的定制化内容存在。如果在主体框架中做了哪怕一点业务改动,都可能会对后面的拓展性及灵活性有所限制。

所以为了让主体框架做的更加灵活、扩展性更搞,在主框架有了基础能力后,就不再对主框架做任何非主框架能力的业务功能开发。

要为主框架不断的”开槽”

JavaScript 常见设计模式

设计模式,这一话题一直都是程序员谈论的”高端”话题之一。许多程序员从设计模式中学到了设计软件的灵感和解决方案。

有人认为设计模式只在 C++或者 Java 中有用武之地,JavaScript 这种动态语言根本就没有设计模式一说。

那么,什么是设计模式?

JavaScript面向对象和模块化

在一次面试过程中,一位已经有 5 年工作经验的前端,在回答面试问题时这样说到。

问:你能说说 JS 的面向对象和设计模式吗?
回答说:这些内容主要是后端的 Java,C#这种高级语言才会用到的,前端一般我们没有用到。

对于这样的回答,不禁让我有点无话可说,JS 中是否有必要使用面向对象以及设计模式呢?我列举了以下几个场景:

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×