写出好代码的底层逻辑

3 月 21 日
阅读 4 分钟
207
程序员安身立命的手艺就是写代码,可多少人知道如何才能写出好的代码呢?这几年也做过很多次的代码 CR,可好代码的标准在哪里呢?我们在做 CR 的时候,其实只是停留在代码的表面,主要是跟规范相关的点:命名、代码行数、代码写法、注释如何,这些其实都是可以用 ESLint 做规范去解决的,也很容易形成习惯。如果在这个基...
封面图

前端数字图像处理指南

2 月 29 日
阅读 28 分钟
711
1、图像的基础知识1.1 位图和矢量图图片一般可以分为 位图 和 矢量图类别位图 Bitmap矢量图 Vector定义由像素点组成的图像,每个像素点都有自己的颜色和位置信息。由数学方程描述的图像,使用直线、曲线、多边形等数学形状来定义图像。常见格式JPEG、PNG、GIF 等SVG、AI 等清晰度具有分辨率的概念,图像清晰度取决于分辨...

浅析 BizCharts 双 Y 轴混合图刻度线对齐方法

2 月 1 日
阅读 4 分钟
496
现存许多图表产品在双 Y 轴混合图刻度线对齐上还存在不足,例如下图展示的 Ant Design Charts 和 Echarts。但 BizCharts 不仅可以自动实现双 Y 轴刻度线对齐,还能做到两侧 Y 轴刻度线随交互变化而变化。

AsyncContext:JavaScript 异步编程的新纪元

1 月 25 日
阅读 4 分钟
342
在现代的网络应用开发中,异步编程是一个基础且重要的概念。由于其能够在不阻塞主执行线程的情况下执行任务,异步操作成为构建高性能、能处理大量并发请求的应用程序的关键。然而,异步编程的管理尤其具有挑战性,特别是在需要在应用的不同部分间共享上下文时。例如,可能需要在异步操作间传递用户信息、跟踪信息或事务...

微前端核心系列(一)模块加载与System.js

1 月 19 日
阅读 14 分钟
381
本文作为微前端核心系列的开篇,并不急于深入主题去介绍微前端的应用,而是从微前端的基础即模块加载开始铺垫,因为认为微前端实际上做的第一件事其实就是组合"模块",将一群模块构建成应用。一个好的模块标准和流畅的模块调度,能够使上层应用事半功倍。

有限状态机——三生万物

1 月 4 日
阅读 8 分钟
508
有限状态机,又称有限状态自动机(FSA,finite-state automation),是表示有限个状态在这些状态之间的转移和动作等行为的数学计算模型,有限状态机是“自动机理论”中研究的一类自动机。

如何在线上使用 SourceMap

2023-12-28
阅读 8 分钟
671
1. 前言1.1 常见调试手段平日开发过程中,大家是如何调试线上问题的呢?采样后的众生相如下:酷酷派 😎:我没什么线上问题!!投机派 😏:通过报错的特殊标识在源码中定位学院派 🤓:使用 XSwitch 等代理工具将资源转发到本地硬核派 😫:直接看混淆后的代码一把梭...等等等等一下,还有没有人在用 SourceMap 调试啊?通过 So...

Canvas 轻量图文编辑器的一些实践

2023-12-14
阅读 11 分钟
896
简而言之,我们需要一个能够在 H5 端和桌面端使用的轻量级图文编辑器。具体的使用流程是在桌面端制作编辑模板(上传一张底图,指定编辑区域的大小),然后在 H5 端允许用户在模板的基础之上添加文本,图片,支持对文本图片的多种编辑等。

ThreeJS 中线的那些事

2022-03-25
阅读 17 分钟
6.9k
在可视化开发中,无论是二维的 canvas 还是三维开发,线条的绘制都是非常常见的,比如绘制城市之间的迁徙图、运动轨迹图等等。不管是在三维还是二维,所有物体都是由点构成、两点构成线、三点构成面。那么在 ThreeJS 中绘制一根简单的线的背后又有哪些故事呢,本文将逐一解开。

Midway 后端代码的设计建议

2022-03-21
阅读 10 分钟
2.7k
Midway 是阿里巴巴内部开发的基于 TypeScript 的 Node.js 研发框架,在集团内部,由于其集成了内部的各类基础服务与稳定性监控,同时支持 FaaS 函数部署,所以是内部 Node.js 应用研发的首选框架。

一种子图布局方法的实现

2022-03-14
阅读 4 分钟
2.7k
在风控领域图可视化场景中,由于可视化图中的节点多且关系复杂,导致用户很难看清节点之间的关联关系;通常我们会使用一些图布局算法对整张图进行布局,使整张图的关系更加清晰,便于用户分析。

如何在 ThreeJS 中实现辉光效果

2022-02-28
阅读 13 分钟
11.1k
在游戏中,我们经常可以见到外发光的效果。典型的比如室内场景下的吊灯、电子设备屏幕、室外夜晚的路灯、车灯等等。这些场景的共性是他们提供了亮度和气氛的强烈视觉信息。在实际生活中,这些辉光是由于光线在大气或我们的眼睛中散射而造成的。但是渲染这些物体到屏幕上后,它所达到眼睛的光强是有限的。因此,需要人为...

GIF 格式解析之表情包是如何动起来的

2022-02-10
阅读 4 分钟
3.5k
作为破除人类交流困境的神器,没有什么场景是一张表情包不能表达的。想像一下,当你正同时打开 N 个 VSCode 疯狂打码的时候,DING~ 的一声脆响,产品经理发来一条消息:昨天提的那几个 bug 修复好了吗?​

你的网页有多快 — 从 DOMReady 到 Element Timing

2022-01-26
阅读 6 分钟
2.9k
总所周知,写文章需要一个标题。虽然我们搞代码的人一般都喜欢单刀直入,但是受制于文体的约束和发表载体的要求,有时不得不想一个标题。而起一个标题,不亚于起一个函数名或者变量名。单就这篇文章,我就有好几个草稿标题,例如:《页面加载指标演进之路》,《Element Timing:一种全新的页面速度指标》,《如何最准确...

我们需要怎样的 Service

2022-01-10
阅读 5 分钟
5.6k
14 世纪,英格兰的逻辑学家奥卡姆在他的《箴言书注》中说「不要浪费过多的东西,去做那些用较少的东西同样可以做好的事情」。后来这句话被简化为「奥卡姆剃刀原理」,即:如无必要,勿增实体。奥卡姆剃刀在各个领域都有他的运用,他不是一个公理,没有严谨的推导过程,但他却是一个在实践中被证明非常有效的解决问题的手...

业务复杂度不够,如何深挖

2021-12-23
阅读 3 分钟
6.1k
“我做的事情,复杂度不太够,可怎么办呀” 这样一句感叹,可能是大厂前端部分同学在工作中总有一天会听到的心声。因为在这里,有无数的人会问你:“做成这个事情,你在里面做了什么?”“你做和他做,有什么不同?”等等。每个人都想做牛逼的事,一鸣惊人,可似乎牛逼的事情就这么多,我手上的事情怎么就牛逼不起来呢,听起来...

关于组件文档从编写到生成的那些事

2021-12-10
阅读 9 分钟
4.7k
说到前端领域的组件,Vue 技术体系下有 Element UI,React 技术体系下有 Ant Design,这些都是当前的前端攻城狮们都免不了要实际使用到的基础组件库。而在实际工作中,我们也总免不了要根据自己的工作内容,整理一些适合自己业务风格的一套组件库,基础组件部分可以基于上面开源的组件库以及 less 框架等多主题样式方案...

你了解 Preserve log 吗?

2021-11-29
阅读 3 分钟
5.3k
最近在做公司内部的项目,测试在测试过程中发现接口请求完成之后没有带过相关的数据,随后打开控制台查看是否是接口问题,发现接口报如下的异常,状态码是 200,但返回的内容显示不出来,而且控制台是提前打开 Preserve log 的,理论上之前发送的请求是应该会有记录的,但结果确看不到 Response。经过排查过后发现是对 P...

机器学习可视分析框架设计与实现

2021-11-05
阅读 6 分钟
2.9k
数据可视化本质就是将数据转换为视觉编码,可视化擅长探索数据、科学洞察、交流和教育领域。可视化与统计学有区别又有联系,区别在于前者没有必要明确问题,后者则研究一个特定的问题;联系在于合作伙伴关系。可视化通过视觉编码吸引观众的注意力,进而将数据传递给观察者,另外通过计算机等媒介交互式探索分析数据。好...

一条曲线的诞生

2021-10-29
阅读 14 分钟
4.3k
在图可视化领域有着大量和曲线相关的场景,然而想要得到一条合适的曲线却并不容易。笔者最近在使用 AntV G6 的时候,就遇到了这样的问题。形状扁平,箭头方向和连线趋势不一致,连线起点和终点被隐藏等等,好看的曲线总是相似的,而丑陋的曲线却各有各的问题。如何得到一条好看的曲线呢 ?来一探究竟吧。

Node.js 断路器简介

2021-10-15
阅读 4 分钟
4k
当我们使用传统的 CS 架构时,服务端由于故障等原因将请求堵塞,可能会导致客户端的请求失去响应,进而在一段时间后导致一批用户无法获得服务。而这种情况可能影响范围是有限,可以预估的。然而,在微服务体系下,您的服务器可能依赖了若干其他微服务,而这些微服务又依赖其它更多的微服务,这种情况下,某个服务对于下...

从底层实现看 React 表单方案演进(上)

2021-09-09
阅读 9 分钟
4k
表单对我们来说是个熟悉的不能再熟悉的概念了,常见于各种信息输入的地方,通过表单用户可以提交数据、修改数据或者实现其他更复杂的交互。今天我们在这里聊聊开发中使用的各种 Form 方案是如何演进的。按照维基百科上的定义来说:网页表单(英语:WebForms)的作用是可以将用户输入的数据,发送到服务器进行处理。而百...

当设计模式遇上 Hooks

2021-08-13
阅读 12 分钟
5.7k
「设计模式」是一个老生常谈的话题,但更多是集中在面向对象语言领域,如 C++,Java 等。前端领域对于设计模式的探讨热度并不是很高,很多人觉得对于 JavaScript 这种典型的面向过程的语言来说,设计模式的价值很难体现。之前我持有类似的观点,对于设计模式的理解仅停留在概念层面,没有深入去了解其在前端工程中的实践...

宝,阿里秋招门票请签收

2021-08-09
阅读 3 分钟
2.1k
都说秋招是金七银八,八月份发招聘帖的我们是几个意思,其实也没啥意思,单纯就是老板把这事给忘了 orz…… 突然想起自己还有不少 hc,于是决定为难本胖虎来社区捞些小鲜肉。

谈谈水印实现的几种方式

2021-07-29
阅读 8 分钟
8.5k
日常工作中,经常会遇到很多敏感的数据,为防止数据的泄露,我们要在数据上做一些”包装“。目的就是让那些有心泄露数据的”不法分子“迫于严重的”舆论压力“而放弃不法行为,使之”犯罪未遂“,达到不战而屈人之兵的效果。而在安全部门工作的我们,数据安全的观念早已深入骨髓,每个文字,每张图片,都要留心是否有泄露的风险...

一种前端项目依赖管理的未曾设想的道路

2021-07-15
阅读 5 分钟
2.8k
内容简介(方便想要快速了解文章内容结论的同学)先上结论,Node.js 将依赖分为 dependency 与 devDependency 两部分,但是却公用同一个 node_modules 文件夹的方式,在当下越来越复杂的前端项目开发过程中,已经不适用了。工具依赖与业务依赖共用同一个 node_modules 文件夹,会使得开发与构建过程变得低效与脆弱,包括...

如何解决 WebGL 绘制地理信息的精度损失问题

2021-07-12
阅读 7 分钟
4.3k
Deck.GL 是 Uber 开源的地理数据渲染框架,在使用 Deck.GL 绘制热力图的时候,发现不断放大地图时,地图层明显地抖动,且热力的聚合结果也有问题。下面的 demo 展示了这个现象,黄色图层是热力图图层,黑点代表原始数据,显然不断放大地图时,热力图的点并没有和原始数据点对应,且在不断抖动。

前端白屏监控探索

2021-06-24
阅读 10 分钟
7.5k
不知从什么时候开始,前端白屏问题成为一个非常普遍的话题,'白屏' 甚至成为了前端 bug 的代名词:_喂,你的页面白了。_而且,'白' 这一现象似乎对于用户体感上来说更加强,回忆起 windows 系统的崩溃 '蓝屏':  可以说是非常相似了,甚至能明白了白屏这个词汇是如何统一出来的。那么,体感如此强烈的现象势必会给用户带...

大道理小聪明系列 - Redux + Hooks 工程实践一则

2021-05-24
阅读 6 分钟
2.8k
“都 1202 年了怎么还有人在用 Redux”——这大概不少人看到这篇文章的第一反应。首先先表明一下,这篇文章并不讨论是不是应该使用 Redux,这是一个比较大的话题,应该单独水一篇。而且社区已经存在许许多多的讨论了,你总能从几篇高赞的文章中找到一些优缺点的对比图,然后结合你项目的场景最终作出决定。我们来随便举几个...

插件式可扩展架构设计心得

2021-05-14
阅读 10 分钟
4.5k
大家可能不知道,鄙人之前人送外号“过度设计”。作为一个自信的研发人员,我总是希望我开发的系统可以解决之后所有的问题,用一套抽象可以覆盖之后所有的扩展场景。当然最终往往能够证明我的愚昧与思虑不足。先知曾说过“当一个东西什么都可以做时,他往往什么都做不了”。过度的抽象,过度的开放性,往往让接触他的人无所...