前端
- 使用mvvm框架,每个视图维护自己的数据模型,更专注于视图模型及状态,在框架的帮助下规范视图与后端的交互及减轻工作量
- 解耦前后端开发
我的选择是avalon.js
后端
业务入口
- 任意语言的web开发框架都可以
- 主要任务是把HTTPRequest转换为RequestContext
- 对RequestContext做基本的验证,如有效性、入口权限等
- 按照HTTP接口约定,调用相应的服务并返回Response
服务
服务要SOA化
- 爬虫服务使用Python,开发简单、相关类库丰富、可跨平台部署
- 搜索服务使用Java,目前在这块还没有实践经验,看好ElasticSearch
- 图片服务,任意带丰富图片处理类库的语言都可以
- 接口约定应该允许客户端用参数指定返回的图片的长宽
- 接口需要直接对外公开
- 邮件服务
数据库
方案一
方案二
- 任意对事务支持良好、可多线程访问的关系数据库
- redis用作nosql,主要处理key-value数据
- redis用作缓存
高并发读不是什么大问题,缓存+数据库集群能很好的解决。难点在于用数据库集群应付高并发写的同时需要保证ACID。
反向代理
毫无疑问是nginx
运维
运维也是开发的需求方
目标
- 掌握资源使用情况
- 限制应用可接触的资源
- 资源总量能迅速扩张
- 任何操作都能回滚(time machine机制)
- 任何操作都有历史记录
- 任何数据和操作都可视化
策略
目前我对Web开发的认识
原文:http://www.cnblogs.com/inside/p/4414821.html