在2010年4月24日召开的Qcon 2010技术大会上,51CTO有幸专访人人网产品技术高级总监黄晶先生,请他来谈一谈WEB开发过程中会遇到的问题及数据库技术对人人网发展的影响。
    【51CTO专访】互联网中的开发工作一般都是当今最先进技术的试验场,程序员该如何摆正自己的态度,成为一个合格的WEB开发人员?而一个网站想做大做强,就需要拥有自己的一套体系框架来支持日益变化的市场需求。
    在专访的最开始,51CTO记者与黄晶先生讨论的是WEB网站开发过程中需求是千差万别的,在网站架构设计阶段应该采取什么样的措施实现随需应变的重构?人人网在发展过程中有哪些经验可以介绍?
    人人网黄晶
    人人网产品技术高级总监-黄晶(51CTO摄)
    在谈到人人网早期的开发时,黄晶先生提到当时主要是采用一些成熟的开发技术,比如StrutsHibernete等。但是到后面发现类似Hibernate这样的技术,在性能优化方面还是不太理想,还是需要开发出一套属于自己的框架来适应业务的发展。在这里51CTO记者也联想到51CTO网站本身也曾经历过这样一个发展过程,用户量在迅速上升,内容建设也日趋完善,但此时早期网站构建过程中的问题就暴露出来了。比如用户发现页面打开速度变慢,编辑登陆后台速度变慢,服务器已经无法存储海量的内容数据。这些网站飞速发展的阵痛也同样困扰着51CTO,不过及时改进系统,推出新的内容平台,也极大的改变着这些困难,最终我们有了质的飞跃。可以说WEB开发的经验是逐步积累的,中国的开发人员还是要有一定的耐心,相信困难都是可以克服的。
    延伸阅读
    Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。
    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
    WEB程序员要有持之以恒的学习能力
    在谈到对WEB开发人员的建议时,黄晶先生建议刚涉足WEB开发的程序员还是把基础打牢。比如对于HTTP协议,对于MVC等基础知识都要烂熟于心,一开始不用好高骛远的就开始钻研架构。在一定程度上来说,网站没有达到一定级别就研究架构没有多少实际意义。罗马并非一日建成,好的网站也不做不到一劳永逸。就算业内知名的Twitter,其工程师也在为应付频繁宕机而苦恼,处理好每一个细节是程序员首先应该做的。
    国内程序开发的另一大障碍就在于架构,很多团队没有自己的架构,也苦于没有好的架构可以借鉴。这可能与目前国内的市场环境有关,也与很多大网站为了保持自己的竞争优势而树立的技术壁垒。黄晶先生表示人人网目前构建的开放平台不光为国内开发团队分配收益,还会把一些好的控制方法和框架方法与大家分享,从而与大家共同发展。如果真的可以成为现实,那么首先就能为大家提供一些成熟的架构,便于大家更快的实现网站的功能,这也意味着能早一天从网站应用中赚取第一桶金。
    NoSQL让网站信息处理更高效
    NoSQL的火热让人们似乎看到关系型数据库即将崩溃一样,不过在数据库领域有着Oracle和IBM这样的“房地产开发商”,他们是不希望关系型数据库如同现在的中国房价一样出现“拐点”的。在WEB领域,NoSQL已经开始在Digg和Reddit这样的大网站投入实战。黄晶先生特别提示,NoSQL很适合处理目前互联网中这种琐碎而数量庞大的信息。比如×××发布的小消息,一天的数据条数很庞大,如果按照传统的关系型数据库处理就会严重影响效率。而在工业领域和金融领域,黄晶先生承认目前NoSQL还无法完全承担,需要继续发展。51CTO向您推荐《详解NoSQL数据库使用实例》以便于您更进一步了解NoSQL的配置使用。
    一个好的数据库管理员可以用20%的精力解决80%的性能问题,这样的素质很难培养。对于培养的问题,黄晶先生还是建议要有扎实的基础,对于数据存储的过程,查询的过程,数据库运作原理都有很清晰的了解。在数据库优化方面,人人网目前的SQL语句都会要求DBA去分析,讲清楚SQL语句的实现原理。同时他还警示,并不是所有的优化手段都是有效的,有时候DBA需要有决断能力。比如要重点解决那些使用频繁的SQL,因为他们会影响整个网站的反应速度。而对于使用不怎么多的SQL,如果无法优化,可以绕行。人人网在开发过程中就遇到过这样的问题,怎么优化都不行,最后他们单独用了一个后台和一个系统来运行这个应用,从时间效益上取得了最大的平衡。
    51CTO专访黄晶视频请见下一页