Movatterモバイル変換


[0]ホーム

URL:


登录/注册
下载豆瓣客户端
豆瓣6.0 全新发布×

豆瓣

扫码直接下载

iPhone·Android
豆瓣读书
搜索:

编写高质量代码:改善Python程序的91个建议

编写高质量代码:改善Python程序的91个建议
作者: 赖勇浩 / 张颖
出版社:机械工业出版社
出版年: 2014-6
页数: 272
定价: 59.00元
装帧: 平装
丛书: Effective系列丛书
ISBN: 9787111467045
豆瓣评分
5星
19.2%
4星
47.1%
3星
28.8%
2星
2.9%
1星
1.9%
评价:

内容简介  · · · · · ·

在通往“Python技术殿堂”的路上,本书将为你编写健壮、优雅、高质量的Python代码提供切实帮助!内容全部由Python编码的最佳实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出91条宝贵的建议。每条建议对应Python程序员可能会遇到的一个问题。本书不仅以建议的方式从正反两方面给出了被实践证明为十分优秀的解决方案或非常糟糕的解决方案,而且分析了问题产生的根源,会使人有一种醍醐灌顶的感觉,豁然开朗。

《编写高质量代码:改善Python程序的91个建议》针对每个问题所选择的应用场景都非常典型,给出的建议也都与实践紧密结合。书中的每一条建议都可能在你的下一行代码、下一个应用或下一个项目中显露锋芒。建议你将本书搁置在手边,随时查阅,相信这么做一定能使你的学...

(展开全部)

在通往“Python技术殿堂”的路上,本书将为你编写健壮、优雅、高质量的Python代码提供切实帮助!内容全部由Python编码的最佳实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出91条宝贵的建议。每条建议对应Python程序员可能会遇到的一个问题。本书不仅以建议的方式从正反两方面给出了被实践证明为十分优秀的解决方案或非常糟糕的解决方案,而且分析了问题产生的根源,会使人有一种醍醐灌顶的感觉,豁然开朗。

《编写高质量代码:改善Python程序的91个建议》针对每个问题所选择的应用场景都非常典型,给出的建议也都与实践紧密结合。书中的每一条建议都可能在你的下一行代码、下一个应用或下一个项目中显露锋芒。建议你将本书搁置在手边,随时查阅,相信这么做一定能使你的学习和开发工作事半功倍。

作者简介  · · · · · ·

张颖,资深软件开发工程师,精通Java、Python、Perl等技术,以及多种脚本语言,有多年开发经验。曾就职于阿尔卡特朗讯上海公司的LTE无线事业部,现就职于IBM CSTL,工作期间获得过多种奖励,并于2012年获得一项云计算相关的专利。

赖勇浩,资深软件开发工程师,自2006年起以编写Python代码为生,现已创业。在Python领域有深厚的积累,CSDN博客专家,博客浏览量超过200万。也是珠三角技术沙龙创始人之一,从2009年起担任沙龙组委,长年活跃在社区第一线,在国内Python圈子里有较高的知名度和影响力。有超过7年的游戏开发经验,擅长Python、C++等网游相关的技术,曾就职于网易等网游研发厂商;现专注于中国彩票事业,开发互联网、电话和自助终端彩票销售平台,以促进行业信息化为己任。

目录  · · · · · ·

前 言
第1章 引论 1
建议1:理解Pythonic概念 1
建议2:编写Pythonic代码 5
建议3:理解Python与C语言的不同之处 8
建议4:在代码中适当添加注释 10
· · · · · · (更多)
前 言
第1章 引论 1
建议1:理解Pythonic概念 1
建议2:编写Pythonic代码 5
建议3:理解Python与C语言的不同之处 8
建议4:在代码中适当添加注释 10
建议5:通过适当添加空行使代码布局更为优雅、合理 12
建议6:编写函数的4个原则 15
建议7:将常量集中到一个文件 18
第2章 编程惯用法 20
建议8:利用assert语句来发现问题 20
建议9:数据交换值的时候不推荐使用中间变量 22
建议10:充分利用Lazy evaluation的特性 24
建议11:理解枚举替代实现的缺陷 25
建议12:不推荐使用type来进行类型检查 27
建议13:尽量转换为浮点类型后再做除法 29
建议14:警惕eval()的安全漏洞 31
建议15:使用enumerate()获取序列迭代的索引和值 33
建议16:分清==与is的适用场景 35
建议17:考虑兼容性,尽可能使用Unicode 37
建议18:构建合理的包层次来管理module 42
第3章 基础语法 45
建议19:有节制地使用from...import语句 45
建议20:优先使用absolute import来导入模块 48
建议21:i+=1不等于++i 50
建议22:使用with自动关闭资源 50
建议23:使用else子句简化循环(异常处理) 53
建议24:遵循异常处理的几点基本原则 55
建议25:避免finally中可能发生的陷阱 59
建议26:深入理解None,正确判断对象是否为空 60
建议27:连接字符串应优先使用join而不是+ 62
建议28:格式化字符串时尽量使用.format方式而不是% 64
建议29:区别对待可变对象和不可变对象 68
建议30:[]、()和{}:一致的容器初始化形式 71
建议31:记住函数传参既不是传值也不是传引用 73
建议32:警惕默认参数潜在的问题 77
建议33:慎用变长参数 78
建议34:深入理解str()和repr()的区别 80
建议35:分清staticmethod和classmethod的适用场景 82
第4章 库 86
建议36:掌握字符串的基本用法 86
建议37:按需选择sort()或者sorted() 89
建议38:使用copy模块深拷贝对象 92
建议39:使用Counter进行计数统计 95
建议40:深入掌握ConfigParser 97
建议41:使用argparse处理命令行参数 99
建议42:使用pandas处理大型CSV文件 103
建议43:一般情况使用ElementTree解析XML 107
建议44:理解模块pickle优劣 111
建议45:序列化的另一个不错的选择——JSON 113
建议46:使用traceback获取栈信息 116
建议47:使用logging记录日志信息 119
建议48:使用threading模块编写多线程程序 122
建议49:使用Queue使多线程编程更安全 125
第5章 设计模式 129
建议50:利用模块实现单例模式 129
建议51:用mixin模式让程序更加灵活 132
建议52:用发布订阅模式实现松耦合 134
建议53:用状态模式美化代码 137
第6章 内部机制 141
建议54:理解built-in objects 141
建议55:__init__()不是构造方法 143
建议56:理解名字查找机制 147
建议57:为什么需要self参数 151
建议58:理解MRO与多继承 154
建议59:理解描述符机制 157
建议60:区别__getattr__()和__getattribute__()方法 160
建议61:使用更为安全的property 164
建议62:掌握metaclass 169
建议63:熟悉Python对象协议 176
建议64:利用操作符重载实现中缀语法 179
建议65:熟悉 Python 的迭代器协议 181
建议66:熟悉 Python 的生成器 185
建议67:基于生成器的协程及greenlet 188
建议68:理解GIL的局限性 192
建议69:对象的管理与垃圾回收 194
第7章 使用工具辅助项目开发 197
建议70:从PyPI安装包 197
建议71:使用pip和yolk安装、管理包 199
建议72:做paster创建包 202
建议73:理解单元测试概念 209
建议74:为包编写单元测试 212
建议75:利用测试驱动开发提高代码的可测性 216
建议76:使用Pylint检查代码风格 218
建议77:进行高效的代码审查 221
建议78:将包发布到PyPI 224
第8章 性能剖析与优化 227
建议79:了解代码优化的基本原则 227
建议80:借助性能优化工具 228
建议81:利用cProfile定位性能瓶颈 229
建议82:使用memory_profiler 和 objgraph 剖析内存使用 235
建议83:努力降低算法复杂度 237
建议84:掌握循环优化的基本技巧 238
建议85:使用生成器提高效率 240
建议86:使用不同的数据结构优化性能 243
建议87:充分利用set的优势 245
建议88:使用multiprocessing克服GIL的缺陷 248
建议89:使用线程池提高效率 254
建议90:使用C/C++模块扩展提高性能 257
建议91:使用 Cython 编写扩展模块 259
· · · · · · (收起)

原文摘录   · · · · · · (全部 )

  • 在单核CPU中,GIL对多线程的执行并没有太大影响,因为单核上的多线程本质上就是顺序执行的。 (查看原文)
    jeff2014-11-09 07:39:34
    —— 引自章节:建议68:理解GIL的局限性
  • 一般来说代码审查会上有4类角色:仲裁者、会议记录者、被评审开发人员和评审者。 (查看原文)
    jeff2014-11-12 21:46:57
    —— 引自章节:建议77:进行高效的代码审查

>全部原文摘录

丛书信息  · · · · · ·

  Effective系列丛书(共13册),这套丛书还有《Effective Debugging》《Effective Python》《More Effective C#(原书第2版)》《Effective C#(原书第3版)》《Effective SQL》等。

喜欢读"编写高质量代码:改善Python程序的91个建议"的人也喜欢的电子书  · · · · · ·

支持 Web、iPhone、iPad、Android 阅读器
我来说两句

短评  · · · · · · (全部 163 条 )

我要写书评

编写高质量代码:改善Python程序的91个建议的书评 · · · · · ·(全部 7 条 )

SUN2014-07-01 23:50:42

尝试用非Pythonic的方法解释Pythonic

`while (True)`,为什么不是`while True`?为什么不是`while 1`? 实参里的`foo = bar`,为什么不是`foo=bar`? 排版混用制表和空格? 混用`# coding: utf-8`和`# -*- coding: utf-8 -*-`? 尝试用非Pythonic的方法解释Pythonic,可见一斑  (展开)
WangShuo2014-07-09 16:03:09

建议37

使用了 from operator import itemgetter 居然还用 operator.itemgetter 调用方法,感觉代码都没运行过... 针对字典 mydict 的 value 结构 [n,m] 中的 n 按照从小到大的顺序排列 粘贴的结果都不是预期的,完全说不通... 应该是 sorted(mydict.iteritems(), key=lambda (k,v): ...  (展开)
nopainnogain2020-02-18 16:11:22

7.5好书

提供了很多新的理解,很好的例子的佐证,很受益 有些示例代码写的有点乱,可以抽象出更简洁的代码; 代码有一些bug,好像没有新版所以无法修订 14年的书,需要更新不少了,有些python2的部分可以扔掉 有些地方可以详细一些,有些说显然,易得。。我觉得不如把答案放上去,说个...  (展开)
zhengyang2015-11-07 11:11:15

系统能力提升

接触python两年时间,之前只看一些基础性的编程书籍,没有往稍微高阶能力去拓展,花了国庆7天闲暇时间阅读了本书,感觉收获颇多... 对于刚入这行的同学还是非常推荐阅读本书,工作中与团队合作还是需要书中涉及的知识点。我非常认同编码前学习编程规范的论点,无论新人还是老人...  (展开)
酋长2015-09-09 09:38:10

写的很好,作者是难得的中国人

作者是难得的中国人,写的很实用,有点意思,对于提高自己对python的认识很有帮助. 对于python的内部机制有简明的介绍,对于一些容易搞混的概念也有很详细的对比. 总体感觉此书正如python的风格,简介明了,没有多余的废话.  (展开)
涅瓦纳2015-04-03 16:43:59

编写高质量代码:改善Python程序的91个建议

在通往“Python技术殿堂”的路上,本书将为你编写健壮、优雅、高质量的Python代码提供切实帮助!内容全部由Python编码的最佳实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出91...  (展开)

> 更多书评 7篇

论坛  · · · · · ·

在这本书的论坛里发言

当前版本有售  · · · · · ·

以下书单推荐  · · · · · · (全部 )

谁读这本书?  · · · · · ·

收拾心情
收拾心情
10月1日 想读


山雨溪云
山雨溪云
9月13日 读过


Seekiu
Seekiu
9月10日 读过


凌飞羽
凌飞羽
7月24日 在读


>107人在读

>425人读过

>795人想读

二手市场  · · · · · ·

订阅关于编写高质量代码:改善Python程序的91个建议的评论:
feed: rss 2.0

© 2005-2025 douban.com, all rights reserved 北京豆网科技有限公司关于豆瓣 ·在豆瓣工作 ·联系我们 ·法律声明 ·帮助中心 ·图书馆合作 ·移动应用

[8]ページ先頭

©2009-2025 Movatter.jp