- 1、本文档共70页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
复杂Rails系统架构优化
从1到30 :如何将单一系统切分成相互协作的小应用集群
Jonathan Palley ,idapted CTO
郭磊, idapted 系统架构师
© 2010 Idapted, Ltd.
从一个故事开始
双“楼”记
2009 上海
莲花河畔景苑
1909 北京
故宫
1
30
什么是“1”?
单一Rails应用
(尤其是指大型Rails应用,涉及到多种角色、
非常广泛的业务功能)
问题
困惑的新员工
难以测试/维护/扩展
什么是“30 ”?
一组应用
独立
无缝连接
每个应用的基本特征
• 独立的数据库
• 能够独立运行(处理完整的业务流程)
• 轻量级(一个开发者维护)
• 高内聚低耦合
如何实现?
UI一致性
• 共享CSS/JS/Styleguide
• Gem 中公用方法
interface
所有应用使用同一基础CSS/JS
保证所有应用的风格一致
%= idp_include_js_css %
# =
script src =/assets/javascripts/frame.js type=text/javascript /script
link href=/assets/stylesheets/frame.css media=screen rel=stylesheet
type=text/css /
interface
CSS 框架
interface
Gem 中的公用Helper方法
Model的查询
interface
View:
%=
search_form_for(HistoryRecord, :interaction_id, :released,[:rating,
{:collection=assess_ratings}],[:mark_spot_num,{:range=true}],
[:created_at, {:ampm=true}])
%
Controller:
@ history_records = HistoryRbo_search(params)
interface
开发周期
1. 在某一应用中实现方法
2. 放到公用gem 中
interface data
data
应用间如何共享数据?
- 只读数据库
- Services
data
示例
user
用户信息
course purchase
课程管
文档评论(0)