yeyeye0525
yeyeye0525
 # 新增emoji [基于twemoji](https://github.com/twitter/twemoji) emoji的图片引用暂时指向本地 可以在配置修改引用 `twemoji.parse(document.body, { base: '/public/libs/emoji-gh-pages/javascripts/', //emoji引用配置 size: '16x16' });` # 修复图片、链接插入位置bug  能否提个pull request @alsotang
 本文首发于:https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 ## 背景 bigo前端开始推广bff,hello农场作为首个bff落地项目,历经2个月,完成了从0-1的落地实践。 【node实战系列】按照小模块拆分,从开发者的角度讲叙,如何进行bff高可用编码。 本系列文章,基于eggjs框架编码,使用ts语法,为了提升阅读体验,建议大家先了解一下eggjs。 ## 系列文章 - [【node实战系列】编写一个重试装饰器](https://github.com/bigo-frontend/blog/issues/49) - [【node实战系列】自行实现应用缓存](https://github.com/bigo-frontend/blog/issues/53) - [【node实战系列】异步并发,自定义Promise.allSettled](https://github.com/bigo-frontend/blog/issues/56) - [【node实战系列】rpc与http协议通讯](https://github.com/bigo-frontend/blog/issues/64) - [【node实战系列】使用reqId跟踪全链路日志](https://github.com/bigo-frontend/blog/issues/65) - 【node实战系列】入参校验validate - 【node实战系列】异常中断 - 【node实战系列】base64编码 - 【node实战系列】服务发现 - 【node实战系列】编码与约定...
 本文首发于:https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 ## 背景 bigo前端开始推广bff,hello农场作为首个bff落地项目,历经2个月,完成了从0-1的落地实践。 【node实战系列】按照小模块拆分,从开发者的角度讲叙,如何进行bff高可用编码。 本系列文章,基于eggjs框架编码,使用ts语法,为了提升阅读体验,建议大家先了解一下eggjs。 ## 系列文章 - [【node实战系列】编写一个重试装饰器](https://github.com/bigo-frontend/blog/issues/49) - [【node实战系列】自行实现应用缓存](https://github.com/bigo-frontend/blog/issues/53) - [【node实战系列】异步并发,自定义Promise.allSettled](https://github.com/bigo-frontend/blog/issues/56) - [【node实战系列】rpc与http协议通讯](https://github.com/bigo-frontend/blog/issues/64) - 【node实战系列】使用reqId跟踪全流程日志 - 【node实战系列】入参校验validate - 【node实战系列】异常中断 - 【node实战系列】base64编码 - 【node实战系列】服务发现 - 【node实战系列】编码与约定...
 本文首发于:https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 ## 背景 bigo前端开始推广bff,hello农场作为首个bff落地项目,历经2个月,完成了从0-1的落地实践。 【node实战系列】按照小模块拆分,从开发者的角度讲叙,如何进行bff高可用编码。 本系列文章,基于eggjs框架编码,使用ts语法,为了提升阅读体验,建议大家先了解一下eggjs。 ## 系列文章 - [【node实战系列】编写一个重试装饰器](https://github.com/bigo-frontend/blog/issues/49) - [【node实战系列】自行实现应用缓存](https://github.com/bigo-frontend/blog/issues/53) - [【node实战系列】异步并发,自定义Promise.allSettled](https://github.com/bigo-frontend/blog/issues/56) - [【node实战系列】rpc与http协议通讯](https://github.com/bigo-frontend/blog/issues/64) - [【node实战系列】使用reqId跟踪全链路日志](https://github.com/bigo-frontend/blog/issues/65) - [【node实战系列】入参校验validate](https://github.com/bigo-frontend/blog/issues/70) - 【node实战系列】异常中断 - 【node实战系列】base64编码 - 【node实战系列】服务发现 - 【node实战系列】编码与约定...
 本文首发于:https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 ## 背景 bigo前端开始推广bff,hello农场作为首个bff落地项目,历经2个月,完成了从0-1的落地实践。 【node实战系列】按照小模块拆分,从开发者的角度讲叙,如何进行bff高可用编码。 本系列文章,基于eggjs框架编码,使用ts语法,为了提升阅读体验,建议大家先了解一下eggjs。 ## 系列文章 - [【node实战系列】编写一个重试装饰器](https://github.com/bigo-frontend/blog/issues/49) - [【node实战系列】自行实现应用缓存](https://github.com/bigo-frontend/blog/issues/53) - [【node实战系列】异步并发,自定义Promise.allSettled](https://github.com/bigo-frontend/blog/issues/56) - 【node实战系列】rpc与http协议通讯 - 【node实战系列】使用reqId跟踪全流程日志 - 【node实战系列】入参校验validate - 【node实战系列】异常中断 - 【node实战系列】base64编码 - 【node实战系列】服务发现 - 【node实战系列】编码与约定...
 本文首发于:https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 # 【node实战系列】自行实现应用缓存 ## 背景 bigo前端开始推广bff,hello农场作为首个bff落地项目,历经2个月,完成了从0-1的落地实践。 【node实战系列】按照小模块拆分,从开发者的角度讲叙,如何进行bff高可用编码。 本系列文章,基于eggjs框架编码,使用ts语法,为了提升阅读体验,建议大家先了解一下eggjs。 ## 系列文章 - [【node实战系列】编写一个重试装饰器](https://github.com/bigo-frontend/blog/issues/49) - [【node实战系列】自行实现应用缓存](https://github.com/bigo-frontend/blog/issues/53) - 【node实战系列】异步并发,自定义Promise.allSettled - 【node实战系列】rpc与http协议通讯 - 【node实战系列】使用reqId跟踪请求全流程日志 - 【node实战系列】入参校验validate - 【node实战系列】异常中断 - 【node实战系列】base64编码 - 【node实战系列】服务发现...
 本文首发于:https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 # 【node实战系列】编写一个重试装饰器 ## 背景 bigo前端开始推广bff,hello农场作为首个bff落地项目,历经2个月,完成了从0-1的落地实践。 【node实战系列】按照小模块拆分,从开发者的角度讲叙,如何进行bff高可用编码。 本系列文章,基于eggjs框架编码,使用ts语法,为了提升阅读体验,建议大家先了解一下eggjs。 ## 系列文章 [【node实战系列】编写一个重试装饰器](https://github.com/bigo-frontend/blog/issues/49) 【node实战系列】自行实现应用缓存 【node实战系列】异步并发,自定义Promise.allSettled 【node实战系列】rpc与http协议通讯 【node实战系列】使用reqId跟踪请求全流程日志 【node实战系列】入参校验validate 【node实战系列】异常中断 【node实战系列】base64编码 【node实战系列】服务发现 【node实战系列】编码与约定 【node实战系列】监控告警 【node实战系列】单元测试 【node实战系列】压测 【node实战系列】灰度 【node实战系列】文档 【node实战系列】系列小结 欢迎大家关注我们的github blog,持续更新。...
--- theme: smartblue ---  本文首发于:https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 # 如何写好eggjs单元测试 ## 前言 笔者在平时面试前端同学时,经常遇到候选人有nodejs开发经验,但是很少有编写单元测试。 希望写下这篇文章,让大家多重视单元测试,交付高质量的代码。 ``` 如果你的项目单元测试分支规范率达到80%以上,我就认为这个同学的代码质量意识特别好。 ``` ## 为什么要单元测试 如测试金字塔,单元测试是底座。  引用eggjs官网的话[猛戳这里](https://eggjs.org/zh-cn/core/unittest.html) - 你的代码质量如何度量? - 你是如何保证代码质量? - 你敢随时重构代码吗? - 你是如何确保重构的代码依然保持正确性? -...
 本文首发于:https://github.com/bigo-frontend/blog/ 欢迎关注、转载。 # ⚡️利用expect,提升小小的幸福感 笔者经常要使用公司跳板机,登陆到目标服务器,查看日志等操作。 要重复的复制ssh命令、ip地址等。 每天来回的重复,是否有工具能够让重复的事情机器做呢? 经过翻阅资料,找到了一个很好的解决方案,基于expect,实现ssh自动交互。 使用expect后,自动帮我们连接服务器,输入密码,交互输入令牌验证码,跳转目标ip,一键登录。 如果要批量登录机器,是不是一下子效率就提升上来了。😁😁😁 ## 什么是expect expect是一个用来处理交互的命令。 借助expect,我们可以将交互过程写在一个脚本上,使之自动化完成。譬如ssh登录,ftp登录等场景。 ### 四个命令 expect中最关键的四个命令是`send,expect,spawn,interact`。 - send:用于向进程发送字符串 - expect:从进程接收字符串 - spawn:启动新的进程 - interact:允许用户交互 #### send命令 send命令接收一个字符串参数,并将该参数发送到进程。 ```...
### 前言 现在市面上比较流行前端搭建,通过可视化拖拽,快速生成页面,配置简单的数据源以及交互事件,就能快速交付业务。 但是前端搭建业务落地成本高,需要维护大量业务组件,并且基于其render引擎,很难二次编码,定制开发。故对于大型、复杂前端页面,前端搭建不是很好的解决方案。 另外纯手工开发前端页面时,对于多变的产品需求,每次都要走代码变更,测试回归,发布上线。费时费力,效能低下,并且有发布风险。 bigo属于出海业务,前端页面需要适配多语言,之前多语言是静态json打包到前端项目,多语言会经常修改,也导致频繁发布。 综上,亟需一个简单的前端配置系统,对前端内容进行配置化,包括但不限于:多语言、图片、文案、链接、时间、活动开关、业务逻辑等。前端开发基于配置进行逻辑对接,内容由产品、运营同学维护,分工明确,形成需求闭环,实现一键变更。 ### 项目命名 pear:bigo中文名百果园,常被人戏称卖水果的(脑壳痛),我们内部也喜欢水果命名系统,pear:梨,与键值对(key-value pair)的pair发音相同 ### 使用流程 #### 业务开发阶段 #### 需求变更阶段 ### 实现方案 #### 业务前端视角研发流程: 1.基于业务需求编写schema配置 2.维护json的value 3.下发json数据 4.业务代码对接json数据 #### 基于json-schema描述json配置 为了让生成的json便于维护,我们基于UForm,以jsonSchema生成表单模板,具体请点击[传送门](https://uformjs.org/#/MpI2Ij/dNFzFyTb),而不是直接编辑json文件。  ####...