发表于:2022-09-02

想做一个 nginx 管理平台,以高可拓展性作为战略方向。 由此需要设计一个非常非常灵活的可拓展界面,以及插件系统。 为什么要搞这件事? * nginx 配置麻烦 * 中小型公司一般就几台或者一台 nginx 处理前后端资源,不易于管理 * 对外可生产环境使用,对内可测试开发使用,通过njs进行拓展(一个小型网关?) 目录结构 * 插件市场 * 编写插件模块 * 管理插件模...

发表于:2022-08-31

长期更新 更新时间:20220831 从目前看前端大致分为,传统意义的前端,辅助传统意义的前端的工具层,纯后端。 flowchart BT 纯后端-->node工具层-->前端 前端 前端就是传统意义的界面,这部分包含 flowchart TB 前端-->监控埋点 & 组件库 & 开发框架 & 样式框架 & 工具库 * 监控埋点 * 来说b端可有可无,但是仍需要请求层监...

发表于:2022-06-18

代码生成 定义关键字及符号映射 src=lua-lexer.js src=lua-token.js src=lua-parser.js src=lua-gen-js.js drawCode function drawCode(code, dom, idx) { let str = `<textarea id="code-${idx}" clas...

发表于:2022-06-05

动手写个词法解析器,词法解析非常简单其关键处理问题在于 * 字符串 * 数字 * 关键字与符号 定义关键字及符号映射 src=lua-lexer.js src=lua-token.js src=lua-parser.js drawJson function drawAttrs(attrs) { let attrStr = "<ul class='...

发表于:2022-06-02

一个变成语言基本分为 4 部分,入口,块,语句,表达式 其中入口便是程序开始部分 约定 :: 代表定义, {} 代表 0 次或者多次, [] 代表 0 - 1 次 人类自己制造的编程语言,不同于自然语言,相对简单的多,基本就是一个有穷状态机。 gammer ::= block block ::= {stat} [retStat] // 返回 retStat ::= return [expL...

发表于:2022-05-28

动手写个词法解析器,词法解析非常简单其关键处理问题在于 * 字符串 * 数字 * 关键字与符号 定义关键字及符号映射 src=lua-lexer.js '\u{1f481}' '\x61' '\97' 'a' [[a]] 1 1.1 1.1e-1 1.1e+1 .1 local abc = 123; if(abc="123"){ print(abc) } string='1...

发表于:2022-03-08

内容 getCurrentTime const getCurrentTime = () => performance.now(); define("getCurrentTime", getCurrentTime); sleep const getCurrentTime = require("getCurrentTime"); const sleep = (tm) => { le...

发表于:2022-02-27

hook的使用,实现了useState,useReduce,useEffect <div id="app"></div> 代码 let currentComponent; let currentIndex; const components = []; class Component { __hooks = { _hookList: [], _effectHoo...

发表于:2022-02-10

本文对建站做了一种 demo 实现,并不代表能够应对真正生产环境的复杂场景 调研大量建站平台,发现大部分建站界面长的几乎一致,数据结构层也基本一致,那么就想到一个问题,能不能把通用的数据层/视图层抽离,作为基础,通过动态加载组件的方式满足不同的页面搭建场景。 最开始的想法是通过 rollup + systemjs 的方式,编译组件,然后动态加载组件,但是会有一些问题,比如依赖库共享问题,组件间...