如何实现一个朋友圈--简介篇

背景

由于本人在带一个小朋友学习编程,从去年12份到现在算起已经有半年多了, 主要学习的技术栈是java。到了收获的季节,想让它做一个项目把以前学习的知识点串起来。一直在为选什么项目纠结,最后把目标落在朋友圈上,为什么不选其它项目,例如图书管理系统呢?不是因为简单, 对于初学者来说没有简单的项目, 好多人包括自己当初都有-“这东西太简单了,烂大街了,没有技术含量”-的想法。只有你认真去做,你才真正能get到相应技能。理由如下:

  1. 产品大家都很熟悉,交流成本低(我们不在同城)

  2. 包括前端、后端以及它们之间数据交互;比较全面覆盖技术栈

3. 发现朋友圈对细节的处理,把产品做到极致,这也是马化腾、张小龙等牛x之处,也是腾讯生存之道。

  1. 可以进行扩展, 简单能用—支持高并发、低延时—多区域同步

技术选型

下面谈谈都用那些技术栈

前端

前端APP用android开发,整体框架要符合mvp模式,中间肯定会涉及到各种自定义控件开发,其中也包括视频、图片预览。

后端

主要语言用java开发,http响应服务用nginx搭建,部分考虑性能问题的用C++,主要用于高并发响应的地方。用于这个项目不是一个人参与,用Github托管代码,为方便以后review code以及协同开发。

功能介绍

重要功能大家应该很熟悉了, 分别有发布、点赞/评论、刷新朋友圈。如果要做一个商用的系统,后台开发还是比较麻烦的, 要考虑突发事件, 比如最近的陆家嘴事件, 你就会发现, 这个时候服务器的峰值可能最高。

发布内容包括大量的图片和视频,而且又都是静态数据, 可以通过cdn进行缓存。多个数据中心间的数据同步问题,包括国内、国外的用户。

为了避免增加学习难度,秉承着“万丈高楼平地起”原则, 这个项目我们就做个单节点服务。

项目计划

由于平时需要上班,只能利用休息时间,计划8-10周完成

JasonThink wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!