Python编程之美(最佳实践指南)
作者简介
Kenneth Reitz Python界的大神、Python软件基金会会员,因众多开源项目而闻名(其中***的是“ Requests: HTTP for Humans”),高颜值的摄影爱好者,电子音乐制作师,健身减肥成功的励志男……曾任Heroku公司Python架构负责人,现任职于DigitalOcean。 Tanya Schlusser 数据决策方向的独立顾问,为学生和企业团队提供的数据科学培训时长已超过1000小时,并照顾患有阿兹海默症的妈妈。 译者简介: 夏永锋 百度**研发工程师,曾就职于腾讯,对Python、GO、J**A开发均有较丰富的实战经验,长期从事后台开发、大数据处理方面的工作。爱好编程和技术翻译。
内容简介
**序一 我从2011 年开始学习和使用Python,印象里那个时候掌握Python 语言基本是BAT 等大型企业岗位要求里面的附加条件。由于Python 语法简单很容易上手,再加上极好的代码可读性、丰富和强大的数据结构和内置标准库、良好的社区生态能极大地提升开发效率等优势,我能清晰感*到这些年Python 越来越*到**企业和开发者的青睐,而据我所知**外知名的大型互联网公司或多或少都在使用Python,甚至很多公司的主要技术栈是Python。 作为一个Python 开发者,我**幸运。因为本书的社区开源项目“The Hitchhiker’s Guide to Python!”也是2011 年由Kenneth Reitz 发起的,虽然我2012 年才知道这个学习指南,但是必须承认书中的内容对我学习和实践Python 有**大的帮助,直到现在我还是会时常翻阅本书。 和我学习Python 时相比,现在的环境实在好得太多了:有很多Python 书籍、网上资源、国外的视频课程等,但是其中由一线开发者编写、与实践结合、代码能称为“Pythonic”的书籍却凤毛麟角,而这本《Python 编程之美:*佳实践指南》就是这样的一本书。它是一本Python 安装、配置和使用的*佳实践手册,涉及开发环境和部署、编写符合Pythonic 品味的代码、各应用场景下主流的Python 解决方案、学习资源**等多个方面,有足够的广度也有合适的深度。这是我**喜欢的一种学习指南的写作风格,如果有*佳实践会直接告诉你应该这么做,不应该怎么做,或者会告诉你这个应用场景下都有哪些技术选型,它们各自的优缺点及选择建议。这本书会告诉你怎么用,但是*多的是引路,如果你希望深入学习还是要自己搜索相关资源。 我认为其中*有价值的内容之一是教你编写高质量Python 代码这部分,书中有**多的场景对应实践及建议,尤其是作者对“Python 之禅”的理解**透彻,作者的理解和经验对于初学者养成良好的编程习惯,以及培养“Pythonic”品味是**有意义的。 还有一个章节是教你阅读高质量的代码。成为一名**程序员的秘诀之一就是阅读、理解其他优质项目中好的代码,吸收并应用到自己的工作中来。书中列的几个开源项目都是质量**高的开源项目,在这个章节中作者把自己阅读代码的思路、方法和技巧分享出来,告诉你为什么这么设计,这么做的优点是什么等,而不是只看代码。另外也清晰地把项目结构图呈现出来,有极强的学习价值。 对初学者来说这是一本**的学习指南,但是也建议每个Python 开发者都读这本书!*后我也期望**会有越来越多的一线开发者写技术图书,分享自己使用Python 的相关经验和技巧,让优质的Python 书籍越来越多! 董伟明 豆瓣**产品开发工程师、《Python Web 开发实战》作者 **序二 这本书的关键词是“实践”和“指南”。 我曾经被多次拷问: √ “已经学习了Python 基础知识,后续应该做什么呢?” √“Python 中有那么多模块和包,我应该选择使用哪一个呢?” √ “什么样的代码才是所谓‘优雅’的呢?” √ “怎样提高自己的编程水平?” √ “我不会阅读代码,怎么办?” √…… 对于初学者而言,遇到上述问题很正常,关键是怎么解决问题。 《Python 编程之美:*佳实践指南》一书帮助开发者破解了一些常见疑惑,提供了具有实践价值的指南。 编程,是一个实践性很强的工作。学习了某种语言的基本知识之后,能够写出一些程序,但是否写得好,则是另外一个话题了,况且,实践中也很难确立“好”的标准,如何才能写得“*好”? 一要多写。业精于勤,荒于嬉。不论是各种研究结果还是个人经验,都认同这样的结论:实践性强的技能都要不断地,甚至是重复地做。所以,我经常唠叨“(代)码不离手”,有的人理解、有的人嫌弃、有的人漠视,至少我观察到身边的这三类人在几年之后,他们的“某些属性”的“值”差别不小。 二要思考。行成于思,毁于随。韩愈老先生的两句话,放到这里都很适合。有开发者,写代码多年,但习惯以“时间紧、任务重、给钱少”为思考原点,拒*主动优化代码——通常老板也不给时间优化代码,你手不在敲代码,他就在亏钱。结果,本来是以智力活动为主的“开发者”,在主客观因素的裹挟下成了以机械*作为主的“搬砖工”,因此慨叹“程序员是吃青春饭的”。所幸,在本书中有“编写高质量的代码”“阅读高质量的代码”“交付高质量的代码”三方面的内容,为我们提供了一个“思考”的范例。高质量的代码*非一朝一夕能够实现的,需要长期积淀。如此,“年龄”就不再是开发者的魔障了。 三要学习。学而不思则罔,思而不学则殆。学习的方式有多种,“读书”则是一种重要的方式,相比“碎片化”学习的一知半解,完整地读一本书则会让开发者在思维、知识、技能等维度有系统地提升。比如本书中的“高质量的代码”部分不仅仅是实践经验的总结,也应该是开发者的行动指南;而在第三部分“场景化指南”中,则为开发者较为系统地列举了各种应用场景中会用到的工具——名为“指南”,很恰当。 就个人来看,本书比较适合“入门”之后阅读,读者可以根据具体的应用场景循“指南”而深入。 齐伟 “ 跟老齐学Python”系列图书作者 **序三 判断一门编程语言是不是流行,可以观察该语言相关图书的多寡,虽然市面上已有众多Python 相关的书籍,但我仍有充分的理由来**本书,原因如下。 **,本书的作者之一Kenneth Reitz 先生是大名鼎鼎的Requests 库的作者,仅凭此一点,本书的质量就有了充分的保证。 第二,根据本人多年从事软件开发和Python 培训的经验,很多通过自学或培训、刚刚转行成功的程序员,虽然学会了用写代码来解决具体问题,但对下一步的学习和成长方向比较迷茫。如果在这个阶段能在公司遇到一位好的导师,那么三生有幸,他会引导你快速地成长,独立上手开发项目。但是,如果没有遇到这样的导师,又该怎么办呢?这本《Python 编程之美:*佳实践指南》刚好可以履行起这样一位导师的职责:书中丰富的内容、详尽的指导能让你快速补上运用Python 开发项目的知识短板。 第三,本书用两章的篇幅着重阐述了如何编写、阅读高质量的代码,这对于每一位Python 开发人员都是极有价值的。 在第4 章“编写高质量的代码”中,作者从代码风格、组织好项目的结构、测试代码、文档、*志等方面全面讲解如何写出高质量的代码。刚踏入软件开发的朋友们,如果还没有养成写测试、*志的习惯,**可以从这里完整地补充相关知识点。 在第5 章“阅读高质量的代码”中,按照第4 章编写高质量的代码的原则,引导读者阅读6 个**的项目(HowDoI、Diamond、Ta**ib、Requests、Werkzeug、Flask),学习开源项目的架构设计、书写Python 风格的代码——小到命名风格、大到实现特定需求的数据结构和算法等。 本书还简明扼要地阐述了软件交付、Web 应用、持续集成、分布式系统等方面的知识,虽然不是特别详细,但足以引导读者了解Python 项目开发的方方面面,对Python 的开发过程有全局、清晰的认识。此外,读者还可以借助本书提供的资源链接,运用搜素引擎来拓展自己的知识面。 综上,我认为本书值得每一位初级程序员拥有,如果读者能把从中学到的知识娴熟地应用到*常开发中,那么个人成长的价值就远远超出本书微薄的定价了。 黄哥 知乎专栏“通过Python 学会编程”作者 本书由Python社区的大神Kenneth Reitz发起并组织编写,由社区数百名开发者集体奉献。*大的特色在于,近乎完整地总结了在Python编程中会用到的各种实践技巧和经验,涵盖众多主流的应用场景,并告诉你如何提高效率、避免踩坑、编写高质量的代码。 本书涉及开发环境和部署、编写符合Pythonic品味的代码、各应用场景下主流的Python解决方案、学习资源**等多个方面,有足够的广度也有合适的深度。不仅如此,书中还分享了阅读代码的思路、方法和技巧,告诉你为什么这么设计……并清晰地呈现了项目结构图,有极强的学习价值。 它就像一位导师,从你步入Python编程开发的大门时起,便详细地告诉你哪些应该做,哪些不应该做以及为什么这样选择,如何做技术选型、各自的优缺点……让你在零起步的基础上,便能安心地、迅速地上手实践。 本书不仅适合初学者入门,也适合**人士作为案头参考。