有php/flutter/c++开发经验,参与过swoole开源项目的开发,使用h5 hybrid独立完成过交易所app,使用flutter独立完成过小说类app以及即时通讯app,对flutter框架源代码有一定的了解,开发过一些flutter的小工具。用easyswoole+dart独立完成小说app后端,数据库使用mongodb以及mysql,部分服务运行于amazon lambda,搜索服务使用elasticsearch,缓存采用redis。参与过php框架的开发(基于swoole),乐意学习新技术。
swoole: swoole是一个php的协程网络扩展,本人参与了swoole部分模块的开发以及单元测试/core tests的编写
交易所app:使用h5 hybrid开发的跨平台交易所app,内有快讯/新闻,交易下单,账户管理,钱包,行情模块,通过编写了一个js api兼容层实现在普通浏览器而非注入了api的app webview环境下运行
即时通讯app:使用flutter开发的IM app,采用mvvm架构,由于flutter并不支持双向绑定,使用了rxdart来代替,状态管理采用bloc,本地数据使用sqlite存储,支持语音,图片,视频等多种消息,使用http api+websocket与服务器进行通信,同时考虑了flutter web的支持,能在浏览器上运行不带本地存储外的全部功能。
小说app:原创小说app,客户端使用flutter实现,功能完整,开发时发现了flutter渲染排版文字上的性能问题(issue 30604),ui api仅支持在主isolate执行,经过对flutter源代码的研究及尝试多种方案将渲染排版时间控制在了100ms内,使阅读器能流畅运行,还发现了flutter在绘制贝塞尔曲线时的性能问题(issue 27453)。 后端主要采用php+dart开发,dart主要使用aot编译模式运行在amazon lambda上,php使用easyswoole框架,数据库采用mongodb对小说进行存储+mysql,缓存使用redis,搜索使用elasticsearch,针对小说内容的存储,开发了一种压缩算法来大大降低存储大小,先对内容进行变长编码,用大量小说数据集通过python进行分词,生成字/词频(只包含常出现的短词以及4000个常用汉字),以及每个字/词后可能接的字/词的词频,对其生成词典,频率越高,编码越短,因为未破坏语义,最后再使用zstd进行压缩。
使用flutter开发的IM app,采用mvvm架构,由于flutter并不支持双向绑定,使用了rxdart来代替,状态管理采用bloc,本地数据使用sqlite存储,支持语音,图片,视频等多种消息,使用http api+websocket与服务器进行通信,同时考虑了flutt
h5开发的交易所app,内有快讯/新闻,交易下单,账户管理,钱包,行情模块,通过编写了一个js api兼容层实现在普通浏览器而非注入了api的app webview环境下运行,app所有功能均为本人独立开发