写出好代码的底层逻辑

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

前端数字图像处理指南

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

成为自己(二):鸿蒙 Harmony 系统篇

2 月 23 日
阅读 5 分钟
301
写完了《工具篇》,我们再来看看 HarmonyOS 的系统结构,为什么不先说编码而选择系统先进行介绍?俗话说,编程语言只是一个工具,工具多种多样,而工具作用的对象才是最需要先了解的,这样可以做到有的放矢(先找钉子,再用趁手锤子),在编码学习的时候也可以相互映照,起得事半功倍的效果。所以思路上,是先介绍《系统...

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

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

AsyncContext:JavaScript 异步编程的新纪元

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

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

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

如何用 Canvas 实现 PS 的液化功能

1 月 12 日
阅读 13 分钟
840
最近在做业务需求时,需要实现对图片的液化功能,类似于美图秀秀的瘦脸功能。这已经不仅是图片缩放、拖动、剪裁这类对图片整体的操作了,而是需要对图片的像素进行一系列的计算和修改,那么该怎么实现这个功能呢?
封面图

有限状态机——三生万物

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

如何在线上使用 SourceMap

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

成为自己:鸿蒙 Harmony 工具篇

2023-12-21
阅读 10 分钟
506
「华为手机」、「鸿蒙系统」自发布以来,一直伴随着讨论、争议,直到今年华为通过 Mate60 手机和神秘的 “4.999G” 芯片打破僵局,再一次站在了科技界直至全社会的聚光灯下。「打破封锁」?「轻舟已过万重山」?「遥遥领先」?面对所有的赞叹声和质疑声,华为交出了自己的一份答卷,现在我们剥离掉所有的光环,从实际出发...

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

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

每个人都应该懂点攻防

2022-03-31
阅读 15 分钟
2.5k
网络如此发达的今天,攻击无处不在,而每一次攻击的成功往往造成信息的泄漏,严重者甚至带来经济的损失。所以作为技术人员,我们每个人都应该懂一点攻防;这样做虽然无法做到完全保护个人隐私,但对增强个人安全意识还是有帮助的。

ThreeJS 中线的那些事

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

Midway 后端代码的设计建议

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

2023 校招——来自阿里正经的招聘贴

2022-03-15
阅读 3 分钟
1.9k
这是一个正经的招聘贴。这是一个正经的招聘贴。这是一个正经的招聘贴。团队介绍在山的那边,海的那边,有这样一个团队,他们颜值超高,已知 cos 0 = 1,那么 cos 美女 = ?别人上班他们玩桌游 他们定期组织团队活动,宝,团队的荣耀,你确定不加入?他们和谐友爱、互相关心,团队为一位不愿透漏姓名的同学送上生日祝福一...

一种子图布局方法的实现

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

如何在 ThreeJS 中实现辉光效果

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

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

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

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

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

Android 突破屏幕刷新的桎梏

2022-01-14
阅读 7 分钟
4.7k
随着智能手机的普及,现代生活中,我们渐渐摆脱不了对手机的依赖。出行、购物、医疗、住房、社交等社会各个层面的需求都离不开借助智能手机去实现更高效、便捷的目的。短短十几年,依托于智能手机的发展也出现了层出不穷的互联网公司、手机品牌厂商以及数不清的应用程序,而随着相关互联网产业市场渐渐达到人口瓶颈,基...

我们需要怎样的 Service

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

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

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

一条曲线的诞生

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

Node.js 断路器简介

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

责任链模式探究

2021-09-24
阅读 6 分钟
3.2k
责任链模式(又称职责链模式,The Chain of Responsibility Pattern),作为开发设计中常用的代码设计模式之一,属于行为模式中的一种,历来被我们开发所熟悉。

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

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

当设计模式遇上 Hooks

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