InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

QCon北京报道:豆瓣首席架构师洪强宁谈Python语言

作者 高昂 发布于 2010年5月1日

领域
架构 & 设计,
企业架构,
语言 & 开发
主题
架构 ,
Web 2.0 ,
Web框架
标签
QCon ,
Python

在4月23日至25日召开的QCon Beijing 2010大会上,来自豆瓣网的洪强宁为与会开发者分享了Python语言用于Web 2.0网站开发的经验。豆瓣网从开发初期,便选用Python作为主要的网站构建语言,同时Python也是目前豆瓣网使用最广泛,基础最深厚的语言。作为豆瓣网首席架构师,洪强宁和他带领的技术团队在网站开发过程中,在Python语言使用方面积累了大量经验,同时在网站架构、性能、可伸缩性方面进行了深入研究。

在QCon大会期间,InfoQ中文站编辑就Python语言本身的特性,Python在Web 2.0站点开发中的适用性,以及豆瓣网的BeansDB开源项目等内容,对洪强宁进行了访谈。就Python语言在Web 2.0网站开发方面的生产率,洪强宁谈到:

Python语法简明,具备很强的易用性,能够帮助开发团队以最为高效率的速度完成工作任务。对于刚开始使用Python工作的程序员,完成Hello World例子不会超过1分钟,学习编写文本处理工具用一个下午的时间即可,而完成一个实用程序的编写,即便是新手,也仅需要一周的时间。

我在2002年开始接触Python,从2004年到现在基本完全使用Python进行工作。Python语言在降低工作成本方面有着显著的效果,同时,由于Python语言存在如强制缩进这样的约定,能够在一定程度上避免程序员编写代码的个人风格化,以保证代码始终具备良好的可读性。目前,豆瓣网目前约有近六成的代码是使用Python语言编写,另外不到三成使用C语言,其次是JavaScript代码,还有少量代码使用 C++,Erlang,Go,Pyrex,R以及Shell编写。

在QCon演讲中,洪强宁和观众分享了Python语言的特点及优势,并结合豆瓣开发过程中的多个实际案例,阐述Python如何做到简化常见的开发场景,并使豆瓣网能够充分适应Web 2.0时代所带来的快速变化。就Python语言的适用范围,洪强宁谈到:

Python 具有非常宽广的适用面,对于Web 2.0网站来说,从Web应用开发到离线计算,从运维脚本到数据分析,都能够使用Python来完成。同时Python具有非常丰富的资源,其标准库所包含的内置模块超过200个,Pyhton的包索引PyPI中包含接近一万个Packages,面向的领域包含网络处理、数据库、桌面开发、游戏、科学计算、安全、文本处理等在内的各个层面,同时语言本身具备很好的拓展性,能够在Python脚本中调用c/c++的库,对语言功能进行扩充。

对于Web开发来说,Python有着众多的框架,往往让刚开始上手的开发者难以选择。对与网站Web开发框架的选择,洪强宁谈到:

由于Python社区的历史问题,积累了众多Python语言实现的Web开发框架,如Django、TurboGears、Quixote等,这些Web 开发框架各有自己独到的优势,同时也各自吸引了一批坚定的开发者为其不断添砖加瓦,从某种程度上,削弱了Python社区的凝聚力。相对于Ruby社区,几乎所有的Web开发都使用Ruby on Rails完成,凝聚了开发者的力量。但Python不乏功能强大的基础框架,在Python语言实现的WSGI(Web服务网关接口)帮助下,开发人员甚至可以在数小时之内编码实现一个自己的Web框架,来完成最大自主程度的Web开发工作。

近期豆瓣网将基于Dynamo简化开发的BeansDB贡献给开源社区。BeansDB提供高可用性的分布式KeyValue存储系统,采用HashTree和简化的版本号来快速同步保证最终一致性。就BeansDB的技术实现和应用场景,洪强宁谈到:

BeansDB采用类似Memcached的去中心化结构,在客户端实现数据路由。目前提供了Python版本的客户端,其它语言的客户端可以由Memcached的客户端改造得到。同时提供BeansDB状态查看,以及各个节点的数据分布和同步进度查询功能。BeansDB的典型应用体现在图片文件、小媒体文件、大文本字段等多媒体数据的存储。BeansDB的易用性和高可用性体现在部分节点出现故障时不影响数据服务的正常访问,同时通过哈希树实现快速完整数据同步。

豆瓣网以多年Python开发的实践经验,为Python语言在国内Web 2.0站点开发中的应用给出了最佳成功案例,也吸引了一批Web 2.0站点的开发者将Python列为首选语言。期待明年的QCon大会,来自豆瓣网的工程师能够为开发者分享更有价值的开发经验。

高昂 是IEEE-CS、CCF会员,博士研究生,关注开源软件发展与进步。

没有视频啊 发表人 withyou gakaki 发表于
等了好久了,还没出。 发表人 hu chenvii 发表于
  1. 返回顶部

    没有视频啊

    发表人 withyou gakaki

    只有slidershare的一个ppt 好少啊 太少了 要视频 要视频

  2. 返回顶部

    等了好久了,还没出。

    发表人 hu chenvii

    RT。求视频

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffery Richter:Windows 8是微软的重中之重

Jeffery Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffery Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。