浅析社交APP软件开发流程
如今社交APP软件很火,比如说微信,QQ,陌陌等等。社交APP到底是怎么样开发的呢?广州APP软件开发公司黄先生简单介绍下!
第一、语言:选用Python。
第二、存储和数据访问工具:这年代存储面临的选择的确很多,但广州APP软件开发者黄先生还是选择自己最为熟悉的MySQL,根据之前的经验,像是用户表这种会保持不动,但是有些表,比如feed index在一开始就做了sharding的处理。另外很重要的东西就是数据访问层的实现了,虽然有些东西,比如读写分离的支持,现在不会用到,但是觉着要支持,最起码要考虑这种情况将来会发生,到时候不至于太苦逼的到处重写代码,另外对于sharding,要做到跟访问通常的表类似的轻松,最后要带点儿ORM功能。
第三、API Server:API全是RESTful的,用的web框架是web.py,目前调试阶段还只是web.py直接对外给客户端的同学做调试,上线后准备走Nginx的反向代理,另外最近也在研究这个项目:可以选择Nginx + wsgi模块 + web.py的模式,也可以是gunicorn + web.py, nginx再反向代理到gunicorn。
第四、消息队列:个人对消息队列选择的观点,一是稳定,出了错好恢复,二是容易监控,队列堵了啊什么的我能很方便的监控到,三是并发性,四是接口要容易使用。这四点,RabbitMQ明显胜出。就选用RabbitMQ了。关于RabbitMQ使用的一些细节,会在feed分发的时候做相关介绍。
第五、静态存储:做社交对图片的质量要求是很高的,多数都是会在后台专门拿出机器搭image magic等切图服务,但对于初创的社交app,搞这种东西挺耗费资源的,考虑了性价比、APP软件开发成本,就直接使用了又拍云的服务,瞬间就搞定了图片存储和处理的问题。