Zong
お任せ

お任せとは、料理人に注文を委託するという日本料理の用語である。

おまかせスタイルを注文したお客様は、メニューに無いような料理が提供される事を期待して注文を行う。一般的にはアラカルトで注文した料理より値段の高い料理が提供される。

近年、日本料理の浸透とともに、この用語も浸透した。

这个月是我们的结婚纪念日,同样的在这个月老婆也带我去尝试了お任せ~

很开心~~嘿嘿

任务进度

  • 「日本語学習計画」:语法及词汇 第1页
  • 「计算机图形学」:材质与外观
  • 「锻炼身体」:步行、上楼梯、Just Dance、健身环 待加强
  • 「ECMA-262」:6.2.4 The Reference Specification Type
  • 「Rust语言圣经(Rust教程 Rust Course)」:11.5.1. 数据布局和基本操作
  • 「Rust By Practice( Rust 练习实践 )」:4.1 数值类型

低代码建设

这个月主要负责画布和一些低代码业务侧的能力建设,画布新增功能可支持渲染父或子内容,因为原子组件的加入和考虑到画布未来能力的扩展,也正在进行画布的重构工作。

JavaScript Macro

受到 Rust 学习带来的影响,发现 JavaScript 没有宏这个概念,其实从某种角度来说 JavaScript 并不需要宏的存在,因为与其他语言有所区别,浏览器是包含编译和运行的。

当然了,我们想尝试和不需要并不冲突。

为了实现这个目标,并且更了解 AST,那么我就想着实现 JavaScript 宏看一看。

于是乎,我就创建了一个仓库开始折腾 zongzi531/js.macro

Macro in JavaScript powered by Babel.

基于 Babel 提供的能力,利用操作 AST 来实现自己的 JavaScript 宏吧。

目前我的设想是可以声明变量,截止到儿童节(可能是我想端午节放假了吧……),只实现了一个很基础的能力。

import { define } from '@zong/js.macro'

define`
  @a:1;
  @b:2;
`

我的设计是:

  1. @ 等价于 const
  2. @ 后为需要声明的变量名称;
  3. : 等价于 =
  4. : 后为变量的初始值;
  5. ; 表示声明完成;

最后代码经过 Babel 编译后得到的代码内容是:

const a = 1;
const b = 2;

当然, define 宏目前功能还有很多局限性,我没有进行对应的处理。

后面计划实现的能力:

  1. 支持 let 声明 (mut@/@@) ;
  2. ; 结尾为可选项;
  3. 支持没有初始值;
  4. 若没有初始值则必须以 let 进行声明的校验;
  5. 初始值支持变量等其他 JavaScript 使用方式;
  6. ESLint 插件 —— 上下文声明变量重复检查;

同时计划输出文章和内部分享。

马上端午节了,放假咯~跑