微信开发时,大家都使用什么样的技术架构?

anegret
  • 27

我自己曾经使用 Ionic + Phalcon 开发过,也使用过 jQuery/Zepto + HTML + CSS + Phalcon 开发过,还有 Bootstrap + Phalcon ,也改过盗版的小猪CMS,也用 Go 开发过,但是一直都不怎么满意,不知道大家都是使用的什么样儿的技术架构来做微信公众号的开发,如果你有好的建议,希望您能说明,该技术架构具体使用到的技术(比如:AngularJS + Bootstrap 作前端框架,ThinkPHP 写后端服务器程序)以及为什么做这样的选择,同时请说明相比于其它同类技术,有何优缺点。

回复
阅读 12.2k
2 个回答

前端不推荐用 Bootstrap 等响应式的 CSS 框架,微信是 Mobile Only 的,做好 Mobile 就好。其他就不同业务不同团队,不同的做法吧。

说说我们

前端

因为微信需求频繁变化快,主要是支持运营的工作,所以采用了PHP 渲染页面并没有采用团队擅长的 Javascript 渲染。CSS 方便使用 Sass + CSS,另外便是使用了 normalize.css

后端

首先采用nignx处理前端流量,紧接着是一个自己开发的微信路由,根据不同的events、文本内容和不同的公众账号分发给不同的应用程序进行处理。应用采用 Node.js 和 PHP 开发。

hero
  • 524

用的Django+uwsgi+Nginx.

前端:
我的前端开始的时候是自己写的CSS,没有使用任何的框架,因为页面内容不复杂,只做了简单的响应式,但是发现针对不同的手机,例如华为,三星,自己写的响应式貌似不到位,就会出现错位的现象,后来引入了pure.css加上自己的CSS,情况有了很大的改观,虽然说微信是手机优先,但是现在ipad上也有了pad版的微信了,所以不得不考虑下响应式布局,引入一些轻量级的框架还是有必要的,另外现在微信也退出了自己的WeUI样式库,可以参考下,WeUI

后端:
没什么说的,用的是Django,因为平时工作用的就是Django,不过用Django很讨厌的就是比较庞大吧,每次部署之前都要handle一大堆东西,然后才能跑通一个项目的最基本要素,所以现在我除了在用Django意外,也考虑开始采用Tornado框架了,另外我在后端先是把微信的API全部封装了一遍,这样可以方便他人调用,以及自己内部调用,已开源.
如果不是什么大型项目就是自己写着玩儿的话,不需要用Ningx,uwsgi,直接用python manage.py runserver就可以进行测试了,但是微信只允许你跑在80端口,所以运行的时候要sudo python manage.py runserver.

数据库:
数据库用的mysql,就够了,配下catch-size提高查询的效率,如果数据量比较大了,就考虑用memcached这种东西了,但是mencached单机的情况下并没有什么卵用,除非你考虑集群了,用这玩意儿还行,不然只会比你不加memcached更慢,配完以后一定要监控下查询命中率,看看有没有提高,公司最近在重写Django的ORM,是用的NoSQL重写的,虽然我觉得完全没必要..当然公司业务不是做微信,当然是企业级应用的话,就上主-从,内存数据库,分布式等高大上的东西了

存储:
用的七牛云存储,牛厂的部分文档有些不到位,

服务器:
租的阿里云,如果是国内服务,还是比较快的,租Linode的速度跟不上,个人觉得.

宣传栏