设为首页 收藏本站
查看: 891|回复: 0

[经验分享] Python,简单的力量

[复制链接]

尚未签到

发表于 2017-4-22 13:54:28 | 显示全部楼层 |阅读模式
Python,简单的力量
2010年08月01日
  Python诞生已有20年的历史,目前国内的Python发展状况如何?与其他语言(平台)相比,Python有哪些显而易见的优点?豆瓣应用Python进行Web开发有哪些成功经验可以借鉴?带着这些问题,iyunv记者在Qcon 2010会场有幸采访到豆瓣网首席架构师洪强宁先生,由他来向我们讲解Python的Web开发之道。
  Python正在成为一门主流语言
  Python在国内的兴起已经有近五年的时间,在2004年底豆瓣刚刚开始起步的时候,国内Python用户已经初步形成一个小圈子,集中在CPUG社区(CPUG是中国第一个正式成立的Python社区,聚集了大量Python爱好者,为Python的普及和推广起到重要作用);现在,GPUG的老用户散布在国内各大软件公司,在他们的推动下,现在国内非常多的软件公司在使用Python。
  除了社区的推动,榜样的力量也很重要。随着豆瓣的成功,了解Python、学习和应用Python的人也越来越多,它已经不再是几年前的一门小众语言。洪强宁说:“Python在国内的使用已经像前几年在国外的发展一样,逐渐成为一门主流的语言”。
  Python简单的力量
  近年,Python的应用范围越来越广,也吸引了.NET和Java平台的注意,比如.NET平台上的IronPython和JVM上的Jython。Python的哪些特性吸引了这些平台对它的引入?
  “因为Python的简单,它比Java简单,比C#简单”,洪强宁说道:无论在JVM平台还是.NET平台,用Jython和IronPython来做开发,从开发效率上讲,Python的开发上是要比直接使用Java和C#的开发效率高。
  在.NET或Java平台,语言上的选择更多的是从性能角度来考虑,Java和C#在性能上的优势Python可能无法追赶,但从实现业务逻辑和功能的角度看,Java和C#可以做的,Python也可以做,而且更加简单。
  Python vs Ruby
  Python是一门动态语言,在开发效率上有着先天的优势;但我们也会想到近年大热的Ruby语言,同样具有动态特性,同样长于敏捷,它们两者之间有哪些差别呢?
  洪强宁指出,豆瓣在刚开始技术选型时考虑过Ruby,但在当时看来,Python的库要比Ruby更成熟;Ruby强于Rails框架的应用,但涉及到后台计算方面的能力,Python的优势更加明显。Python和Ruby两种语言本身没有好坏之分,两种语言都有非常成功的案例,都能做出好的Web应用,更多的选择还是开发者的个人喜好问题。
  豆瓣Python应用开发经验谈
  豆瓣是一个Web 2.0网站,这类网站的特点就是“Always Beta”,不断有新的产品和功能升级来为用户提供更好的服务。作为使用Python进行开发的网站,豆瓣有效的程序开发配置和版本控制值得我们学习。
  豆瓣的主要开发环境配置就是SVN+Trac+Bitten。豆瓣的版本管理系统使用的是Subversion(SVN),使用Trac来管理协同开发,同时使用Trac的Bitten插件进行持续集成。
  在开发模式方面,由于是Always Beta,豆瓣采用的方式是:站点运行在主分支上,开发者在开发新功能时会建立一个子分支,新功能开发并测试完成后,会更新服务器的主分支版本,之后上线。
  在开发框架方面,豆瓣主要使用Quixote(被称之为“堂吉诃德”,一个轻量级的Python Web框架,简单、高效,代码简洁);后台运行的Web服务主要使用Web.py(web.py也是一个Python的Web框架,简单且功能强大)。
  后记
  最近有一本新书叫《豆瓣,流行的秘密》,我想,豆瓣的流行不仅是依靠成功的产品,对于开发人员而言,产品的背后是实现它的技术――Python。在此次Qcon大会上,洪强宁先生与参会者分享了Python于Web 2.0网站的应用,强调了Python简单的特性。对于技术而言,简单也是一种力量。
  关于Python
  Python语言的历史可以参考iyunv的Python创始人小传《Guido Rossum:打造Google第三大开发语言》
  关于Subversion
  Subversion(简称SVN)是一款开源的版本控制管理系统,被认为是CVS的替代者。Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。
  关于Trac
  Trac是一个开源软件平台,集成了Wiki和问题跟踪管理系统。Trac以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件。Trac采用Python语言开发的,因此Trac的在运行的时候,需要有Python环境的支持。
  关于Quixote
  Quixote是一个Python的Web框架,它基于简单灵活的方案设计,可以进行快速地开发项目,而且使用很多Python第三方模块。通过恰当地配置,可以让Quixote发挥巨大能量,这使得它可以被用于大规模系统当中。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-367848-1-1.html 上篇帖子: Python多线程和Python的锁 下篇帖子: (Python编程)C扩展概览
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表