• 项目经历

    在校项目

    "蓝桥杯" 全国软件设计大赛上海区一等奖(C 语言组和 Java 组, 2013年/2014年);

    "TI杯" 全国大学生电子设计大赛三等奖(开关电源设计, 2014年);

    上海纽约大学全球"黑客马拉松"赞助商特别奖(手势识别 PPT 遥控器, 2015年);

     

    上海电信实习(掌上营业厅项目组, Struts + Spring + Hibernate, 2015年)

    撸卡漫画项目

    15年秋本科毕业加入上海摩游, 担任服务端开发.

    独立完成撸卡漫画管理后台和数据接口的Beta版本.

    技术选型: ThinkPHP3.2.3 + Mysql, 使用文件缓存.

     

    团队扩充后, 负责撸卡漫画项目社区模块, 包括用户系统/评论系统/消息系统.

    改用自主开发的 PHP 框架, 使用 Redis 做缓存. 查询先到 Redis , 若没有命中则查询 Mysql , 有结果则装填 Redis 并自动过期, 没结果则在 Redis 中设置"倒刺"标志, 以免重复查询 Mysql .

     

    负责统计系统, 基于 Redis 的 MQ 接受 log 数据, 清洗整理后存入 Mysql. 定时任务每日每月生成报表数据.

    个人项目: Secretube

    一个方便管理 Shadowsocks 账户的平台.

     

    基于 Rails5.1, 封装了常用 Docker Remote API .

    每个用户的每条线路都是一个 Docker Container , 端口映射到 Daemon 宿主机上.

    Rails APP 通过双向 TLS 跟 Docker Daemon 通信, 保证接口安全性.

    有简单的计费系统, 受雷神网游加速器启发, 按秒计费. 在用户关闭服务时进行结算; 在开启服务时设置最大可用时长的结算定时任务; 每天凌晨检查结算状态.

    后续计划加入集群部署和提高系统可靠性.

    个人项目: Same 模仿 Web版

    Same 是一款设计优雅的基于兴趣分组的社交 APP, Oh-Same 是模仿其原生 App所做的 WebApp.

    本项目采用前后端分离的组织方式, 前端采用 ReactJS, 后端采用 Ruby on Rails 5.1.2, 聊天模块采用 reactor 模式的 websocket.

     

    ## 前端

    > ReactJS Redux ES6 Webpack2

    选用 ReactJS 是主要基于模块化的需求, 每个功能是一个独立组件, 代码结构清晰的同时又方便组件重用. 单向数据流逻辑简单, 容易编码也容易 debug.

    后续计划: 状态管理优化; 缓存优化;

     

    ## 后端

    > Rails-API

    Rails 在这个项目中只负责 API, 没有 render 的需求, 所以砍掉了许多用于视图渲染的默认中间件.

    后续计划: 缓存优化;

     

    ## 实时聊天

    > EventMachine

    基于 reactor 的并发模型处理 websocket 连接. 利用 Redis 的 SUB/PUB 功能完成聊天通道, 考虑之后将 Redis 换成 RabbitMQ, 把聊天模块单独剥离出来.

    薄荷网

    薄荷网应用BU成员, 负责薄荷APP新版本需求开发, 以及各种第三方合作活动页面.

    薄荷网多年来一直采用 Ruby on Rails 技术栈. 在压力最大的 passport 子项目中使用GRPC(gruf), 其他子项目使用 Rails 的经典组件.

     

    工作内容包括:

    薄荷APP新版本功能开发, 2~3周一个迭代.

    合作商促销活动的开发, 包括前端页面和后端逻辑, 也包括与设计师和需求方协作.