王速瑜,腾讯 R&D研发总监,从事产品研发和管理工作,对互联网产品发展趋势、管理理念、技术架构有浓厚的兴趣和深入研究实践。目前主要关注敏捷开发
、大规模应用架构、企业SAAS、Web
2.0产品的相关技术和趋势。博客地址:http://blog.thinklet.net/mantian/
冯大辉
:假设一家C2C 网站,DB中某表存储买卖双方交易的数据
信息,对于一条交易来说,买卖双方数据具有一定程度的耦合性,比如卖家的状态更新对应买家的状态也会更新,对于一个中大规模的电子商务
网站,架构师
在设计
中如何考虑数据分片的问题
(假定该表随着数据的膨胀必须拆分)?
王速瑜
:对于一个中大规模的电子商务网站,随着网站的不断发展,其相应的数据规模会不断膨胀。数据分片技术是使网站得于实现可扩展性的一种常用解决
方案。对于C2C类型的网站,由于交易记录不容易进行水平的数据分割,因此对于这样的应用处理要在进行细分:
- 买卖双方交易的信息,具备较高的时效性,即交易全部完成后就不会再有更新,因此这
部分数据可以与正在交易中的数据区分开来,并可以单独分表,定时归纳。具体的做法可以采用水平分割的数据分片技术,比如可以根据用户号码段范围进行切片,
把不同的群体划分到不同的 DB 上,这样可以很好的进行横向水平扩展(Scale Out)。它可以很好的突破单节点数据库
服务器的 I/O 能力限制,解决数据库扩展性问题。
- 对于正在交易中的数据,主要根据时间进行分表。如果分的更细,则可以分三个表,但是这样在事务保证方面则要复杂很多,不建议这样做
冯大辉
:技术团队在开发过程中是否进行集成测试? 进行与否的理由各是什么? 对于集成测试你是否有其他补充?
王速瑜
:有进行集成测试,因为集成测试对于产品版本的发布是一环重要的保证。但是由于互联网产品研发的敏捷性,很难建立一套大而全的集成测试平台,而更多还是在功能级和模块级别上的集成测试。
互联网产品的测试跟传统的软件
测
试不太一样,互联网产品的特性是短平快,因此敏捷开发的理念在互联网产品研发中非常适合,腾讯很多团队都采用敏捷开发的实践,包括TDD,重构和持续集
成。因此集成测试更多是体现在产品的每个小迭代和小发布中。互联网产品技术架构都是分层的,因此对于后台server的集成测试也很重要,这个在迭代过程
的测试中容易被忽略。这一块往往需要开发额外的工具来辅助进行,比如对于协议接口的测试,通常会有一些小工具来辅助进行。
冯大辉
:对于一个架构师来说,如何与冗杂的会议进行斗争? 你有哪些心得或者贵公司有哪些针对会议的策略呢?
王速瑜
:对于架构师,参加会议是必然的,架构师往往都需要深入到具体的项目中去,在项目的开展过程,大概会有几类会议是由架构师发起或重点参与的,包括迭代0的架构设计讨论会、定期的架构和代码
Review会等等,项目之外,架构师通常还会参加诸如行业级和公司级别的一些盛会和峰会。对于会议,更多还是抱着有益,高效的态度去参加。在实际工作当中,我觉得有以下几点是可以参考的:
- 涉及架构发展和改进的会议一定要进行, 而且要在产品研发过程中阶段性进行。有利于保证架构工作的可持续发展;
- 由架构师主导的会议,要把握高效会议的原则,包括会议前的充分准备工作、会议进程的把握、会后的关键事项跟进等等;
- 架构师要积极参加产品的讨论会,了解产品发展的规划和细节,有很多架构工作是需要技术与业务相平衡的,参加这样的会议有利于架构师更好理解业务和它的发展,从而为架构的平衡做出更好的判断;
- 架构师要扩展视野和保持不断学习
的态度,因此行业技术盛会、公司技术峰会、产品月会等等类型的会议架构师要主动选择性去参加,可以保证架构师能了解技术趋势,提升自己的能力。
- 不必要的会议尽量不参加,可以采取其他沟通手段,如邮件,IM工具来替代,提升沟通的效率。
冯大辉
:架构师是否有必要关注用户体验? 如何从架构师的层面关注用户体验?
王速瑜
:非常有必要。保证用户体验是所有软件最重要的目标,特别是互联网产品,如果该目标无法实现,再好的架构也没有存在的意义。因此如何在满足用户体验的前提下进行架构设计是架构师的必要素质。
产品的用户体验包括几个方面:产品的功能便利性、产品可用性、性能、安全性等等。例如:枪战类的游戏,需要优先保证其实时性。而在C2C订单交易中则优先保证其金钱的安全性。因此如何从架构层面就去关注用户体验非常重要。对于架构师来说,通常有以下几点是需要注意的:
- 用户体验表现在外表,但来源与内在。比如互联网服务的性能设计,能否让用户在1秒内使用你的产品,将是保证用户继续使用产品的关键所在。架构上如何做得在海量用户的前提下很高的性能,就应该是架构师首要关注的点;
- 用户体验与架构设计有时候会对立矛盾,架构师需要平衡。比如为了某个用户体验,可能需要架构上做出重点的调整,可能会带来巨大的运营成本。这个时候就需要架构师来Trade-Off了,柔性可用依然是可以采取的架构原则;
- 一切以用户体验和价值为核心是每个架构师在架构互联网服务的基本准则。互联网服务不同于传统软件,UGC型的互联网产品更是如此,没有用户参与,再好的架构都是无益的,因此架构设计需要围绕用户体验和价值来持续进行。
转自:http://www.programmer.com.cn/427/
分享到:
相关推荐
【phpChina培训教程PCTI教材内部资料1】 在深入探讨这份珍贵的phpChina培训教程之前,首先要明白PHP(PHP:Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适用于Web开发,可嵌入到HTML中。phpChina...
关于【标签】“PHPChina 课堂范例”,这表明这些文件是PHPChina教学资源的一部分,可能来自于线下的课堂培训或在线课程。这些范例不仅适合初学者,也对有一定经验的开发者有价值,他们可以通过这些例子来复习、巩固...
8. **20 CMS项目.ppt**:内容管理系统(CMS)项目实践部分,可能包括开源CMS如WordPress、Drupal的使用,以及自定义开发CMS的核心架构和功能实现。 9. **9 文件操作.ppt**:文件操作是PHP编程中不可或缺的一部分,...
phpchina杂志
### PHPChina 留言本实例 - 关键技术知识点解析 #### 1. 设计数据库 在本项目中,数据库的设计至关重要,因为它直接关系到应用的性能和扩展性。 - **数据库选择**: 使用的是MySQL数据库,并创建了一个名为`gb`的新...
PCTP(Professional Certified Trainer Program)是由PHPChina提供的高级培训课程,旨在提升学员在PHP领域的专业技能。课程内容涵盖了从基础到高级的各种主题,确保参与者能深入理解和掌握PHP开发的关键技术。 ...
该杂志由开源社区门户PHPChina与一批技术爱好者共同创立,体现了开源精神和社会责任感。 - **内容特色**:《PHPer》杂志内容涵盖了PHP技术的各个方面,包括但不限于新手入门指南、高级编程技巧、开源项目介绍等,...
【PHPChina电子杂志第四期】是一本专注于PHP技术的电子期刊,旨在为读者提供丰富的PHP编程知识和最新的行业动态。这期杂志以“火红”的主题呈现,寓意着PHP技术的热情与活力,预示着在即将到来的盛夏时节,PHP开发者...
【PHPChina的日历壁纸】是专门为PHPer们设计的一款实用且富有创意的桌面壁纸,它不仅具有美化桌面的功能,还提供了日历功能,方便开发者在编程工作中快速查看日期,提高工作效率。这款壁纸的设计充分考虑了程序员的...
《PHPChina PHP杂志》是一本专注于PHP编程语言的专业杂志,旨在深入探讨PHP技术,分享PHP开发的最佳实践,以及提供最新的PHP行业动态。该杂志以PHP为核心,涵盖了与Web开发相关的各种话题,包括但不限于PHP语法、...
本文将深入探讨"zend phpchina PCTP"认证培训中提到的几种设计模式,包括工厂方法、单例模式、观察者...在"zend phpchina PCTP"认证培训中,深入学习和实践这些设计模式,将有助于提升个人的编程水平和项目实施能力。
PHPChina的“PHP进阶学习”系列教程针对这一主题进行了深入讲解,旨在帮助开发者提升在PHP环境下的正则表达式应用能力。 首先,我们需要了解正则表达式的基础概念。正则表达式由一系列字符和特殊符号组成,用于定义...
本案例由phpchina老师编写,涵盖了单一文件上传和多文件上传,并使用类进行封装,提供了一种高效且可复用的解决方案。 首先,我们要理解PHP文件上传的基本原理。在HTML表单中,我们需要使用`<input type="file">`...
这一过程构成了典型的Web应用三层架构模型。 【PHP标记风格】 PHP支持四种不同的标记风格: 1. XML风格:`<?php ... ?>`,这是推荐的默认风格,不会干扰XML文档。 2. 简短风格:`<? ... ?>`,简洁但可能在某些情况...
PHPCHINA全国巡展回顾............................................ 2 新闻摘要........................................................ 12 新闻专题........................................................
### 算法学习之路 #### 初级阶段 在学习算法的初级阶段,重点在于理解算法的基本概念和常见数据结构。初级阶段的算法学习者需要掌握基础的算法原理和思想,比如递归、分治、动态规划等。为了方便练习,文中提到了...
... 什么是会话控制? 会话控制是指在网站中跟踪一个用户的状态,能够在多个页面中使用同一个变量。...cookie 和 session 的用法: cookie 和 session 都可以暂时保存在多个页面中使用的变量。...cookie 存放在客户端浏览器...
在PHPCHINA上的讨论中,提到了两种常见的URL映射实现方式。 1. **mod_rewrite**:这是Apache服务器上的一个模块,用于重写URL,可以将用户请求的美观URL转换为内部可执行的格式。例如,将`example....