【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

  • 2010-05-01
  • 本文字数:1692 字

    阅读完需:约 6 分钟

在 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 大会,来自豆瓣网的工程师能够为开发者分享更有价值的开发经验。

2010-05-01 06:096158
用户头像

发布了 74 篇内容, 共 11.6 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

ArrayList 与 LinkedList 的方法及其区别

爱好编程进阶

程序员 后端开发

OpenHarmony加速行业应用落地,多款软件发行版正在通过兼容性测评

OpenHarmony开发者

OpenHarmony

APICloud数据云3.0使用教程

YonBuilder低代码开发平台

后端开发 APP开发 APICloud 数据云

OpenMLDB:线上线下一致的生产级特征计算平台

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

(项目实战)如何结合k8s和pipeline的流水线,并通过k8s接口完成镜像升级

爱好编程进阶

Java 程序员 后端开发

2021金三银四巨作!10万字!阿里高工纯手码JDK源码笔记 带你飙向实战

爱好编程进阶

Java 程序员 后端开发

30岁码农的一次面试经历:不委屈自己

爱好编程进阶

Java 程序员 后端开发

@产品部 -- 腾讯策划部是如何培养用户的《王者荣耀

爱好编程进阶

Java 程序员 后端开发

替代 Elasticsearch,TDengine 助力四维图新将存储空间利用率提升 8 倍

TDengine

数据库 tdengine

敏捷开发中如何从容应对需求变更?

华为云开发者联盟

敏捷开发 需求 软件开发 需求变更

2020最新互联网数据调查显示,Kotlin-势必取代-Java?

爱好编程进阶

Java 程序员 后端开发

C语言总结_语句、运算符

DS小龙哥

4月月更

企业知识库建立的目的及意义

小炮

知识库

5年Java后台经验程序员,历经6面,跳槽腾讯

爱好编程进阶

Java 程序员 后端开发

985毕业,半路出家28岁进军Java,坚持了三年现如今年薪36W

爱好编程进阶

Java 程序员 后端开发

灵感乍现!造了个与众不同的Dubbo注册中心扩展轮子

捉虫大师

Java dubbo 注册中心 4月月更

2021金三银四吃透这份Java面试突击手册!成功跳槽涨薪30K

爱好编程进阶

Java 程序员 后端开发

架构实战营 - 总结

李大虾

#架构实战营 「架构实战营」

AOP实战篇 如何轻松实现日志功能,戳这

爱好编程进阶

Java 程序员 后端开发

Tomcat:网络请求原理分析

IT巅峰技术

使用 GoRouter 进行 Flutter 导航:Go 与 Push

坚果

4月月更

17 网站架构的伸缩性设计

爱好编程进阶

Java 程序员 后端开发

20万+字,熬夜整理了一份程序员不可或缺的软技能高分原创电子书送给你

爱好编程进阶

Java 程序员 后端开发

21年GitHub标星19

爱好编程进阶

Java 程序员 后端开发

己酉篇 「反元富民」《「內元宇宙」聯載》

因田木

元宇宙

16 条 yyds 的代码规范

爱好编程进阶

Java 程序员 后端开发

BIO、NIO、AIO 介绍和适用场景分析

爱好编程进阶

Java 程序员 后端开发

电商秒杀系统架构设计

李大虾

#架构实战营 「架构实战营」

80+产品正通过兼容性测试,OpenHarmony生态蓬勃发展

OpenHarmony开发者

OpenHarmony

SAP 云平台(Cloud Platform)架构概述

Jerry Wang

云计算 云平台 SAP 云计算架构师 4月月更

BATJAndroid高级工程师大厂面试题集合之Java-基础面试知识点

爱好编程进阶

Java 程序员 后端开发

QCon北京报道:豆瓣首席架构师洪强宁谈Python语言_Web框架_高昂_InfoQ精选文章