联系方式
- 手机: 13313316369
- Email : [email protected]
- QQ/微信号: 967168 / 13313316369
个人信息
- 贾攀 / 男 / 1992
- 本科 / 河北工程大学 计算机科学与技术
- 工作经验: 1 年
- 开发经验: 3 年
- Github :https://github.com/Panmax
- 博客:http://panmax.love/
- 期望职位: Python 工程师
- 期望薪资:税前月薪 15K~25k
- 期望城市:北京
工作经历
北京魔镜最美网络科技有限公司 ( 2015 年 11 月 ~ 今)
职位: 后端负责人
魔镜 APP 1.0 (不是那个做 VR 的魔镜)
这个 APP 有个功能和 探探 非常类似,提供其他用户上传的照片展示给用户来做评价,上滑喜欢、下滑无感,评价过的照片不会再次出现,这个功能在发布后发现了不少问题,比如用户评价 1 次,可能因为网络等其他导致并发的原因记录两条数据,后来我采取的方案是用 Redis 的 Pub/Sub 模式,用户在投票后,主服务器发出通知交给另一台服务器处理任务,最终解决了这个问题。
还有个问题是如何让用户看到过的照片不再出现在评分界面,解决这个问题的办法是给每个用户在 Redis 中生成一个缓存队列,记录每个用户还没看过的照片,用户每看一张照片,就从队列里移除一个元素,有新照片产生时,往队列增加一个元素,同时控制队列的长度和过期时间。详细优化细节见 Blog: 记一次业务逻辑优化
魔镜 APP 1.3
这个版本最重要的功能是用户动态,类似与 Ins 里的动态,可以看关注用户新发的照片、给哪些照片点过赞等等。实现方式是每个用户有动作发生是会记录一条 Feed 数据 存在数据库中,同时通知任务服务器执行新增 Feed 的任务,离线服务器需要将关注他的人查找出来,然后给这些人的 Feed 队列 新增数据, Feed 的队列使用的 Sorted Set 数据类型,采用时间戳作为 Key 。通过编写这个模块,熟悉了 Feed 的主流实现方式(推、拉),和 Redis 中 Sorted Set 的使用。
魔镜 APP 下载连接: http://d.amojing.com/
北京医道互联科技有限公司 ( 2015 年 6 月 ~ 11 月 )
职位: Python 工程师
我爱好医生 2.0
此项目有两个版本,分为医生版和患者版,我为这两个版本客户端提供接口,使用 Flask 作为 Web 框架,接口遵循 RestfulApi 规范,使用 Celery 为任务队列,使用阿里云的 kvstore 作为键值存储,本地测试时使用 Redis 。关系型数据库用的 MySQL 。 我在这个项目中熟悉了 Restful 规范,对接口开发有了新的认识。对接口安全性有了一定的了解,了解了 token 的机制。并且明白了如何与客户端如何配合进行工作、如何编写出让客户端小伙伴满意的接口。
好医生官网 App
这个项目是为我们的母公司进行 App 开发同时将我们已有的部分功能融入进去,我在这个项目中的工作是为客户端提供接口还有与母公司数据进行打通,在这个项目中我们遇到最大的问题就是账户同步问题,因为母公司的账户体系比较复杂,并且下边站点也很多,而且母公司给我们提供的支持也不够,在这个项目中我们想让用户可以用母公司的帐号登录 App 后同时可以使用我们自己的已有功能,经过讨论后,最终采用了我提出的策略:每次用户在登录时,服务器通过母公司提供的接口,将用户资料拉取过来,如果我们库中不存在该帐号则进行新建,如果存在则将我们库中的资料进行更新,这样可以解决的问题是用户在母公司网页上更新资料后,我们这可以得到最新的资料。如果用户使用我们的 App 修改资料的话,我们会修改我们库中的资料,并且调用母公司的修改接口进行资料修改。最终顺利完成了账户体系的对接工作。
我爱好医生 3.0
这个项目中我担任后端负责人,在这个项目中我们要实现一个医生为患者填写病历的功能,并且能够为每种疾病生成出不同的病历表单方便医生填写,为此我编写了一套问诊表单动态生成、存储、填写、渲染结果的系统,为此次版本做出了很大的贡献,并且采用了一点 git 的思想,将每次医生的填写结果生成新的 head ,每个病历的信息都指向最新的 head ,这样可以方便历史记录的保存和今后也许会用到的回滚历史的功能。这个系统我部署在现在很流行的 LeanCloud 上,并且已开源在 GitHub 。
河北小林网络科技有限公司 ( 2014 年 12 月 ~ 2015 年 6 月 )
职位: 客户端实习
乐搜搜(现改名为:来客搜搜)
使用 Hybird App 技术进行 App 开发,采用 Ionic 前端框架,采用 PhoneGap 为中间件和手机进行硬件交互,编写多平台 App ,我在这个项目中担任客户端开发人员,在这个项目中掌握了 AngualrJS 的使用。
开源项目和作品
开源项目
- LeanCloud-medical:部署在 leancloud 上的一个用于生成医生问诊表单的系统(这个系统之前一直在我自己的 coding 私有库中维护,近期为了应聘需要才移植到 GitHub 上)。
- KDDZ:为一个做手机配件销售的商户开发的一套进销存系统,此项目至今再用,部署在 SAE 云(之前一直在使用 SAE 的 SVN 进行项目维护)。
- XLHW:与上一个项目类似,多店铺商品管理的系统。
技术文章
其他作品
- 矿院树洞:调用新浪微博接口,使用微信发微博。用户关注我的公众微信,在微信中发布的内容可以自动发表在一个名为《矿院树洞》的新浪微博中,可以实现匿名发表。
- Java Web 电子购物商城。
- 工程小助手:独立编写服务于学生的公众微信。
- 河北工程大学图书荐购系统。
- 邯郸移动、邯郸甲客公司微信开发。
技能清单
- Web 开发: Python / Java
- 客户端开发: React Native
- Web 框架: Django / Flask
- 前端框架: Bootstrap / AngularJS / Query / HTML / CSS / React / Vue.js
- 前端工具: PhoneGap
- 数据库相关: MySQL / SQLite / Redis
- 版本管理: SVN / Git
- 单元测试: unittest
- 云平台: SAE / BAE / LeanCloud
人品清单
- 有良好的编码规范
- 有良好的合作意识
- 有很好的自学能力和自控力
- 自认为有 geek 精神
- 喜欢读书与慢跑
- 人际关系良好,待人诚恳
致谢
感谢您花时间阅读我的简历,期待能有机会和您共事。