淺析社交APP軟件開發(fā)流程
如今社交APP軟件很火,比如說微信,QQ,陌陌等等。社交APP到底是怎么樣開發(fā)的呢?廣州APP軟件開發(fā)公司黃先生簡單介紹下!
第一、語言:選用Python。
第二、存儲和數(shù)據(jù)訪問工具:這年代存儲面臨的選擇的確很多,但廣州APP軟件開發(fā)者黃先生還是選擇自己最為熟悉的MySQL,根據(jù)之前的經(jīng)驗,像是用戶表這種會保持不動,但是有些表,比如feed index在一開始就做了sharding的處理。另外很重要的東西就是數(shù)據(jù)訪問層的實現(xiàn)了,雖然有些東西,比如讀寫分離的支持,現(xiàn)在不會用到,但是覺著要支持,最起碼要考慮這種情況將來會發(fā)生,到時候不至于太苦逼的到處重寫代碼,另外對于sharding,要做到跟訪問通常的表類似的輕松,最后要帶點兒ORM功能。
第三、API Server:API全是RESTful的,用的web框架是web.py,目前調(diào)試階段還只是web.py直接對外給客戶端的同學(xué)做調(diào)試,上線后準備走Nginx的反向代理,另外最近也在研究這個項目:可以選擇Nginx + wsgi模塊 + web.py的模式,也可以是gunicorn + web.py, nginx再反向代理到gunicorn。
第四、消息隊列:個人對消息隊列選擇的觀點,一是穩(wěn)定,出了錯好恢復(fù),二是容易監(jiān)控,隊列堵了啊什么的我能很方便的監(jiān)控到,三是并發(fā)性,四是接口要容易使用。這四點,RabbitMQ明顯勝出。就選用RabbitMQ了。關(guān)于RabbitMQ使用的一些細節(jié),會在feed分發(fā)的時候做相關(guān)介紹。
第五、靜態(tài)存儲:做社交對圖片的質(zhì)量要求是很高的,多數(shù)都是會在后臺專門拿出機器搭image magic等切圖服務(wù),但對于初創(chuàng)的社交app,搞這種東西挺耗費資源的,考慮了性價比、APP軟件開發(fā)成本,就直接使用了又拍云的服務(wù),瞬間就搞定了圖片存儲和處理的問題。