29

不久前,我们发表了支付宝架构师冯大辉提出的问题,并邀请了腾讯的研发总监王速瑜先生做出回答,下面登出本次问答的节选,希望广大网友和读者们积极参与,提出你们想要问的问题。

WSY

王速瑜,腾讯 R&D研发总监,从事产品研发和管理工作,对互联网产品发展趋势、管理理念、技术架构有浓厚的兴趣和深入研究实践。目前主要关注敏捷开发、大规模应用架构、企业SAAS、Web2.0产品的相关技术和趋势。博客地址:http://blog.thinklet.net/mantian/

冯大辉:假设一家C2C 网站,DB中某表存储买卖双方交易的数据信息,对于一条交易来说,买卖双方数据具有一定程度的耦合性,比如卖家的状态更新对应买家的状态也会更新,对于一个中大规模的电子商务网站,架构师在设计中如何考虑数据分片的问题(假定该表随着数据的膨胀必须拆分)?

王速瑜:对于一个中大规模的电子商务网站,随着网站的不断发展,其相应的数据规模会不断膨胀。数据分片技术是使网站得于实现可扩展性的一种常用解决方案。对于C2C类型的网站,由于交易记录不容易进行水平的数据分割,因此对于这样的应用处理要在进行细分:

  1. 买卖双方交易的信息,具备较高的时效性,即交易全部完成后就不会再有更新,因此这部分数据可以与正在交易中的数据区分开来,并可以单独分表,定时归纳。具体的做法可以采用水平分割的数据分片技术,比如可以根据用户号码段范围进行切片,把不同的群体划分到不同的 DB 上,这样可以很好的进行横向水平扩展(Scale Out)。它可以很好的突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。
  2. 对于正在交易中的数据,主要根据时间进行分表。如果分的更细,则可以分三个表,但是这样在事务保证方面则要复杂很多,不建议这样做

冯大辉:技术团队在开发过程中是否进行集成测试? 进行与否的理由各是什么? 对于集成测试你是否有其他补充?

王速瑜:有进行集成测试,因为集成测试对于产品版本的发布是一环重要的保证。但是由于互联网产品研发的敏捷性,很难建立一套大而全的集成测试平台,而更多还是在功能级和模块级别上的集成测试。

互联网产品的测试跟传统的软件测试不太一样,互联网产品的特性是短平快,因此敏捷开发的理念在互联网产品研发中非常适合,腾讯很多团队都采用敏捷开发的实践,包括TDD,重构和持续集成。因此集成测试更多是体现在产品的每个小迭代和小发布中。互联网产品技术架构都是分层的,因此对于后台server的集成测试也很重要,这个在迭代过程的测试中容易被忽略。这一块往往需要开发额外的工具来辅助进行,比如对于协议接口的测试,通常会有一些小工具来辅助进行。

冯大辉:对于一个架构师来说,如何与冗杂的会议进行斗争? 你有哪些心得或者贵公司有哪些针对会议的策略呢?

王速瑜:对于架构师,参加会议是必然的,架构师往往都需要深入到具体的项目中去,在项目的开展过程,大概会有几类会议是由架构师发起或重点参与的,包括迭代0的架构设计讨论会、定期的架构和代码Review会等等,项目之外,架构师通常还会参加诸如行业级和公司级别的一些盛会和峰会。对于会议,更多还是抱着有益,高效的态度去参加。在实际工作当中,我觉得有以下几点是可以参考的:

  1. 涉及架构发展和改进的会议一定要进行, 而且要在产品研发过程中阶段性进行。有利于保证架构工作的可持续发展;
  2. 由架构师主导的会议,要把握高效会议的原则,包括会议前的充分准备工作、会议进程的把握、会后的关键事项跟进等等;
  3. 架构师要积极参加产品的讨论会,了解产品发展的规划和细节,有很多架构工作是需要技术与业务相平衡的,参加这样的会议有利于架构师更好理解业务和它的发展,从而为架构的平衡做出更好的判断;
  4. 架构师要扩展视野和保持不断学习的态度,因此行业技术盛会、公司技术峰会、产品月会等等类型的会议架构师要主动选择性去参加,可以保证架构师能了解技术趋势,提升自己的能力。
  5. 不必要的会议尽量不参加,可以采取其他沟通手段,如邮件,IM工具来替代,提升沟通的效率。

冯大辉:架构师是否有必要关注用户体验? 如何从架构师的层面关注用户体验?

王速瑜:非常有必要。保证用户体验是所有软件最重要的目标,特别是互联网产品,如果该目标无法实现,再好的架构也没有存在的意义。因此如何在满足用户体验的前提下进行架构设计是架构师的必要素质。

产品的用户体验包括几个方面:产品的功能便利性、产品可用性、性能、安全性等等。例如:枪战类的游戏,需要优先保证其实时性。而在C2C订单交易中则优先保证其金钱的安全性。因此如何从架构层面就去关注用户体验非常重要。对于架构师来说,通常有以下几点是需要注意的:

  1. 用户体验表现在外表,但来源与内在。比如互联网服务的性能设计,能否让用户在1秒内使用你的产品,将是保证用户继续使用产品的关键所在。架构上如何做得在海量用户的前提下很高的性能,就应该是架构师首要关注的点;
  2. 用户体验与架构设计有时候会对立矛盾,架构师需要平衡。比如为了某个用户体验,可能需要架构上做出重点的调整,可能会带来巨大的运营成本。这个时候就需要架构师来Trade-Off了,柔性可用依然是可以采取的架构原则;
  3. 一切以用户体验和价值为核心是每个架构师在架构互联网服务的基本准则。互联网服务不同于传统软件,UGC型的互联网产品更是如此,没有用户参与,再好的架构都是无益的,因此架构设计需要围绕用户体验和价值来持续进行。

 

本次“架构师接龙”全文,请见2009年08期《程序员》杂志。

转播到腾讯微博

----->立刻申请加入《程序员》杂志读者俱乐部,与杂志编辑直接交流,参与选题,优先投稿

19 Responses to “冯大辉 vs. 王速瑜:支付宝架构师对话腾讯研发总监”

  1. 没有明天 说道:

    我怀着崇拜的心情来看.
    没有学到丝毫有价值的东西.

  2. kazaff 说道:

    自己火候不到,很多都没懂~
    不过,继续关注

  3. jiakuan 说道:

    实践性很强的话题,学习中。。。估计没有实践过的人很难理解。。。但不同的架构师一定有基于自己的经验的答案,没有最好,只有通过交流,互相融合互相提升到更好。

  4. cssrain 说道:

    失误。 理论性太强。

  5. MacroPolo 说道:

    第一次接触到涉及架构师的思想,学校到了很多东西。这些东西不仅仅是架构师需要的,在软件设计的各个部分都或多或少需要

  6. www 说道:

    太空。都是大道理。

  7. www 说道:

    太空了。都是大道理。

  8. jingqiao1023 说道:

    看似教条和书面的理论性言论,实际是在实践中都是非常中肯和实用的。对构架缺少实践的同学可以通过第一个问答学习构架的实际应用案例,只要你注册过支付宝,进行过淘宝交易的应该可以理解。

  9. cf_hz_sl 说道:

    尚未到达那个程度,不过也是比较好的铺垫

  10. 周天 说道:

    走过场啦,哪有真心说上几句话的。

  11. fc_lamp 说道:

    。。En。。。活到老学到老。。。

  12. l 说道:

    国内的构架师就会说一些大话,空话。不知道是为了保密还是其他原因。

  13. nbby 说道:

    我怀着崇拜的心情来看.
    没有学到丝毫有价值的东西.

    国内的构架师就会说一些大话,空话。不知道是为了保密还是其他原因。

    看到这篇文章,我的感受就是上面的两句话。shit!

  14. what 说道:

    什么啊,讲大道理啊,没有一点实用价值。这些东西应该更适合上教材,更适合学生考试

  15. [...] 《架构师接龙第一期》 2009 年08 月刊 [...]

  16. jay 说道:

    只是没有人愿意认输

  17. monclers 说道:

    你们都好厉害啊!

  18. I truly have acquired a complete lot from you.Thanks for sharing.So countless individuals have arrive for your blog.

  19. We are very happy to discount louboutins welcome Marine Vacth as a new ambassadress. Recognising emerging talent has always been part of the spirit of Yves Saint Yves Saint Laurent Pumps Laurent,” commented Deputy General Manager of Yves Saint Laurent, Nathalie Duran. “Marine charmed us Yves Saint Laurent Sandals with her grace and sparkling presence, as well as Yves Saint Laurent Slingbacks her determined and audacious personality.”

请评论

preload preload preload
京ICP备06065162