戴天宇

前端工程师

qrcode-dtysky

邮箱 : dtysky@outlook.com

电话 : 15851837800

博客 : dtysky.moe

Github : dtysky

知乎: H光大小姐

履历

2011 - 2015, 东南大学,测控技术与仪器,本科
2014.10 - 2015.06,Xilinx上海,研发实习生
2015.07 - 2015.09,华为南研所,FPGA逻辑工程师
2015.10 - 2016.07,上海禾赛光电科技,软件工程师
2016.08 - 现在,Bilibili,前端工程师,大型活动负责人

个人介绍

热爱技术,喜欢折腾,硬件开发出生,对计算机底层有着不错的了解。平时工作之外,自己也一直在学习。喜欢写文章和PPT分享技术心得,热心于开源事业,Github发布过不少轮子。

熟悉原生的JS、HTML、CSS开发和响应式设计。精通单页应用开发,常用技术栈为React + Typescript + React-router + Redux,对Canvas和WebGL以及框架(PIXI.js、three.js等)比较熟练。熟练使用Webpack规范构建中大型应用,用Grunt/Gulp进行自动化任务,结合Jasmine、Karma等框架做单元测试,对FP、MVC、MVVM、组件化以及RXJS等思想有着深刻了解。传统DOM开发之外,熟练使用PIXI.js和白鹭引擎实现游戏,并实战过商业项目。在中间层,熟练使用Node.js,Express.js框架也驾轻就熟。有图像处理背景,还喜欢了解各种语言,比如自身软件是Python出生,也关注过Lisp、Ruby、C#、C++等,使用Electron开发过桌面应用。

工作项目

Bilibili圣诞《Jingle Beats》

项目前端负责人、开发者、原案。一个HTML5的音游,基于引擎pixi.js,输出了技术心得Bilibili圣诞游戏剖析-用pixi.js实现鬼畜音游

访问页面(移动端专用)

Bilibili七夕游戏《Double;7》

项目前端负责人、开发者、原案、制作进行。一个HTML5的Galgame,基于游戏引擎Egret,使用了陀螺仪、WebSocket等技术,自己设计了一套DSL并写了插件egret-galgame,并输出了技术心得Bilibili《七夕之约 - Double;7》技术剖析

访问页面(移动端专用)

BML2017主视觉

项目前端负责人和开发者。一个酷炫的主视觉,技术栈为React + Typescript + Less,用到大量DOM动画和H5视频,PC和移动端双端适配,包含一个复杂的贴吧性质的讨论区。同时输出了技术心得BML2017主视觉技术剖析

访问页面(建议PC端)

Bilibili活动管理后台

核心开发者和架构者之一。大型活动管理后台,包括一个复杂CMS,数据源聚合管理,权限系统和发布系统。全栈开发,前端技术栈为React + Redux + React-router + Immutable,后端技术栈为Node + Express。

激光雷达上位机

一人负责所有开发。一个用于展示激光雷达的3D数据的桌面应用,包括实时显示、数据录制、数据回放。Electron + React + Three.js实现。程序采用UDP通信,对二进制数据流进行处理,当性能遇到瓶颈时,我编写了C++的Node.js扩展来提高效率。

界面预览

业余项目

D2-2017前端论坛嘉宾

代表B站,在D2-2017前端论坛进行了分享,中心主题和PPT在这里:D2-现代前端-对视觉和交互的探索

HAlbum

一个3D相册,基于Three.js和物理引擎Physi.js,表现为一个房间内散落在各处的、可打开和闭合的一张张照片。实现了可配置的照片,包含相框、图片和留言文本,并实现了可配置的墙面和家具,均为实时渲染。还支持VR模式。在D2分享的最后进行了展示。

kanata

一个纯前端实现、无依赖的图像处理库,纯TypeScript编写,并在计划WebAssembly的版本。主要包含一个ImageCore和若干点操作、几何变换、直方图操作和局部滤波器。kanata本身支持单操作引用,设计上支持流式处理,为敏感的性能做了一些优化,优于市面上很多库。目前已然实现了许多操作并搭好了测试框架、写了一部分测试,剩下的操作正在实现中。

Live DemoGithub

hana-ui

已完成并在内部系统可用、部分外部系统可用,开源准备中。和两位队友一起实现的一个React UIKit,作为本项目的负责人,我设计项目框架,完成了项目开发、文档和DEMO的整体结构。除了设计,我也承担了相当的组件开发,在这个过程中我对React、工程化和样式的理解都大有进步。

hana-ui官网Github

MoeNotes

正在使用Redux + RXJS重构。为了满足自己记笔记并快速转移到Blog的需求,我所开发的一个本地日记写作软件,它使用Markdown作为笔记编写语言,提供类似于onenote的分类体验。基于Electron,React.js作为视图框架,jasmine为测试框架,grunt+babel+webpack作为构建工具,trivel-ci自动化测试。包括增强版Markdown解析、文件树管理、主题自定义和写作模式切换等功能。

MoteNotesGithub

BlogReworPro

重构BlogRework ,Blog的第四次重构,主要是重写了前端、修了一些后端的BUG,跟进ES6,用Eslint和Flow约束代码规范,上了React最佳实践全家桶并且实现了完美的服务端渲染,加了Memory Cache,样式换成了less,DOM语义化也做了,构建工具也换成了gulp。

详细介绍Github

FPGA Image Library

毕业设计,一个开源的FPGA图像处理库,将一些图像处理操作在FPGA上实现,拥有自己设计的、完整的基于Python的软件和基于SystemVerilog的硬件测试框架。

论文Github

游戏剧本解析器:

一个分离剧本和代码的解析器,用于将自己设计的DSL解析成Ren'py的脚本,使用不少元编程技巧、设计模式,提供了用户扩展功能,并包括一个Sublime输入辅助插件。

Gal2Renpy

体三维显示器:

一个分辨率很高的、由二维LED点阵旋转的三维显示器,完全自主完成了PCB、机械、FPGA、上位机四个部分。

详细介绍控制PCB机械