查看: 4318|回复: 3

豆瓣首席架构师洪强宁谈Python语言

[复制链接]
论坛徽章:
63
2010广州亚运会纪念徽章:台球
日期:2010-10-18 12:43:48茶鸡蛋
日期:2013-01-09 10:59:002013年新春福章
日期:2013-02-25 14:51:24奥运会纪念徽章:帆船
日期:2013-04-02 17:07:052013年新春福章
日期:2013-04-08 17:42:48奥运纪念徽章
日期:2013-07-18 13:55:12优秀写手
日期:2013-12-18 09:29:10马上有车
日期:2014-03-20 16:13:24马上有房
日期:2014-03-20 16:14:11马上有钱
日期:2014-03-20 16:14:11
跳转到指定楼层
1#
发表于 2010-5-1 19:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在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大会,来自豆瓣网的工程师能够为开发者分享更有价值的开发经验。
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
2#
发表于 2010-5-2 10:21 | 只看该作者
我喜欢Python

使用道具 举报

回复
论坛徽章:
131
乌索普
日期:2017-09-26 13:06:30马上加薪
日期:2014-11-22 01:34:242014年世界杯参赛球队: 尼日利亚
日期:2014-06-17 15:23:23马上有对象
日期:2014-05-11 19:35:172014年新春福章
日期:2014-04-04 16:16:58马上有对象
日期:2014-03-08 16:50:54马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
3#
发表于 2010-5-3 10:32 | 只看该作者
nice job

使用道具 举报

回复
论坛徽章:
350
2006年度最佳版主
日期:2007-01-24 12:56:49NBA大富翁
日期:2008-04-21 22:57:29地主之星
日期:2008-11-17 19:37:352008年度最佳版主
日期:2009-03-26 09:33:53股神
日期:2009-04-01 10:05:56NBA季后赛大富翁
日期:2009-06-16 11:48:01NBA季后赛大富翁
日期:2009-06-16 11:48:01ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05
4#
发表于 2010-5-16 08:02 | 只看该作者
ERLANG和scala这类语言应该更受关注!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表