这个 APP 有个功能和 探探 非常类似,提供其他用户上传的照片展示给用户来做评价,上滑喜欢、下滑无感,评价过的照片不会再次出现,这个功能在发布后发现了不少问题,比如用户评价 1 次,可能因为网络等其他导致并发的原因记录两条数据,后来我采取的方案是用 Redis 的 Pub/Sub 模式,用户在投票后,主服务器发出通知交给另一台服务器处理任务,最终解决了这个问题。
还有个问题是如何让用户看到过的照片不再出现在评分界面,解决这个问题的办法是给每个用户在 Redis 中生成一个缓存队列,记录每个用户还没看过的照片,用户每看一张照片,就从队列里移除一个元素,有新照片产生时,往队列增加一个元素,同时控制队列的长度和过期时间。详细优化细节见 Blog: 记一次业务逻辑优化
这个版本最重要的功能是用户动态,类似与 Ins 里的动态,可以看关注用户新发的照片、给哪些照片点过赞等等。实现方式是每个用户有动作发生是会记录一条 Feed 数据 存在数据库中,同时通知任务服务器执行新增 Feed 的任务,离线服务器需要将关注他的人查找出来,然后给这些人的 Feed 队列 新增数据, Feed 的队列使用的 Sorted Set 数据类型,采用时间戳作为 Key 。通过编写这个模块,熟悉了 Feed 的主流实现方式(推、拉),和 Redis 中 Sorted Set 的使用。
魔镜 APP 下载连接: http://d.amojing.com/
此项目有两个版本,分为医生版和患者版,我为这两个版本客户端提供接口,使用 Flask 作为 Web 框架,接口遵循 RestfulApi 规范,使用 Celery 为任务队列,使用阿里云的 kvstore 作为键值存储,本地测试时使用 Redis 。关系型数据库用的 MySQL 。 我在这个项目中熟悉了 Restful 规范,对接口开发有了新的认识。对接口安全性有了一定的了解,了解了 token 的机制。并且明白了如何与客户端如何配合进行工作、如何编写出让客户端小伙伴满意的接口。
这个项目是为我们的母公司进行 App 开发同时将我们已有的部分功能融入进去,我在这个项目中的工作是为客户端提供接口还有与母公司数据进行打通,在这个项目中我们遇到最大的问题就是账户同步问题,因为母公司的账户体系比较复杂,并且下边站点也很多,而且母公司给我们提供的支持也不够,在这个项目中我们想让用户可以用母公司的帐号登录 App 后同时可以使用我们自己的已有功能,经过讨论后,最终采用了我提出的策略:每次用户在登录时,服务器通过母公司提供的接口,将用户资料拉取过来,如果我们库中不存在该帐号则进行新建,如果存在则将我们库中的资料进行更新,这样可以解决的问题是用户在母公司网页上更新资料后,我们这可以得到最新的资料。如果用户使用我们的 App 修改资料的话,我们会修改我们库中的资料,并且调用母公司的修改接口进行资料修改。最终顺利完成了账户体系的对接工作。
这个项目中我担任后端负责人,在这个项目中我们要实现一个医生为患者填写病历的功能,并且能够为每种疾病生成出不同的病历表单方便医生填写,为此我编写了一套问诊表单动态生成、存储、填写、渲染结果的系统,为此次版本做出了很大的贡献,并且采用了一点 git 的思想,将每次医生的填写结果生成新的 head ,每个病历的信息都指向最新的 head ,这样可以方便历史记录的保存和今后也许会用到的回滚历史的功能。这个系统我部署在现在很流行的 LeanCloud 上,并且已开源在 GitHub 。
使用 Hybird App 技术进行 App 开发,采用 Ionic 前端框架,采用 PhoneGap 为中间件和手机进行硬件交互,编写多平台 App ,我在这个项目中担任客户端开发人员,在这个项目中掌握了 AngualrJS 的使用。
感谢您花时间阅读我的简历,期待能有机会和您共事。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.