狠狠撸

狠狠撸Share a Scribd company logo
Python  开发的风格与建议 编码风格、技术选择与一些建议 Kingsoft KSO
Python  编码的一些惯例 使用四空格而非  tab  缩进 为函数和类编写  docstring 尽可能使用  utf8 import this... 管理好命名 善用语法糖 Kingsoft KSO
一些好用的语法糖 隐式拆装 a, b = b, a 列表推导 [diff(x, y) for x, y in box if x<y] d = dict((x, y) for x, y in box if x<y) str.join ', '.join(['a', 'b', 'c']) 生成器  yield 线性迭代逻辑 修饰 实现业务正交分解 Kingsoft KSO
Pythonic  是什么? 追求简单、易读的编码风格。 使用轻而浅层的代码组织。 善用文档和测试功能。 工作过程自动化。 重视文档。 Kingsoft KSO
选择 Python ,使用 Python 现代软件开发,编程语言的选择,包括了语言的运行时和语言的选择。 用好一门语言,要了解和运用好它的语法,也同样要能掌控它的运行时。 灵活运用知识和技术,不拘泥于某一种模式。 在全局高度设计架构,跳出框架限制。 Kingsoft KSO
常见  Web  框架 Django webpy zope turbogears pylons web2py tornado ... Kingsoft KSO
Web  框架选择 Web  框架的选择,通常应该基于应用的特色、框架的社区活跃程度、文档、扩展性。 每一个框架都声称自己够快。 最快的不一定是最好用的,甚至不一定是“最快的”。 最“易用”的同样未必是最易用的。 能否与前端的应用服务器和后端的存储层灵活高效的结果,是非常重要的指标。 Kingsoft KSO
ORM 的争议 ORM 的水准取决于三个方向:连接池、建模能力、 SQL 生成能力。 不需要追求最强的通用性,因为在实际工作中,最难迁移的就是数据库。 ORM 不一定慢,专业的 ORM 工具可以生成很高质量的 SQL ,并且可能拥有非常好的连接池机制。 好的 ORM 可以帮助我们更好的建立具有伸缩能力的存储层,控制事务,提高代码的可维护性。 好的 ORM 本身应该具有足够的弹性,允许我们穿透封装,直接使用底层的功能。  Kingsoft KSO
ORM 的争议 ORM 很可能会给开发带来负作用 糟糕的连接池…… storm 糟糕的建模机制…… storm web2py dal 糟糕的 SQL 生成机制…… web2py dal Kingsoft KSO
唯一推荐的  Python ORM ! SQLAlchemy  是  Python  平台上最为优秀的  ORM  框架,在我心目中这是一个全能的强大工具 建模能力强,可以在应用层建立分布式存储 广泛支持所有主流数据库,对各自的特殊特性支持很好 SQL 生成机制非常好,复杂查询也可以生成高质量代码 内置成熟的连接池 对日志和调试友好 Pythonic Kingsoft KSO
测试驱动开发? 积极使用  doctest  和  unit test ,可以有效控制代码质量。 开发人员额外编写测试代码,确实会付出一定时间 ,但是对于一定复杂度以上的程序,确实是值得的。 好的代码组织应该能更方便的测试  Kingsoft KSO
一些野生程序的山寨体悟 代码即文档 docstring +  注释  +  高可读性的代码 测试即设计 编写测试代码不仅为了测试,也帮助理清设计的思路 享受动态类型 不追求“严谨”的重型设计,将安全保护放在运行时边界 面向数据结构编程 掌握文本处理技术 行文本 正则 管道 ... Kingsoft KSO
一些野生程序的山寨体悟 运行时的架构比开发时的代码组织重要 运行时接口比开发时接口重要 在 Python 中慎用多线程 熟悉 Python 的组件,用好互联网资源
刘鑫 [email_address] Kingsoft KSO
Ad

Recommended

PDF
C python 原始碼解析 投影片
kao kuo-tung
?
PDF
用颁测迟丑辞苍封装肠++代码为辫测迟丑辞苍模块的一点经验
Leo Zhou
?
PDF
笔测迟丑辞苍学习笔记
Lingfei Kong
?
PDF
A brief introduction to Python
bugway
?
PPTX
Pythonic
small fish
?
PDF
Python speed up with numba
Jiang Wu
?
PPT
Python Basic
雨蒼 林
?
PPTX
Xenogenetics for PL/SQL - infusing with Java best practices
Lucas Jellema
?
PDF
Jaskell Core Parsec
March Liu
?
PDF
轻量级文本工具集
March Liu
?
PDF
奇点与未来
March Liu
?
PDF
尼尔盖曼的美国众神
March Liu
?
PDF
创业项目中常见的技术和管理债务
March Liu
?
PPT
滨迟工程师的职业成长
March Liu
?
PDF
Xcode tutorial
March Liu
?
PDF
Socrates Used PostgreSQL and SQLAlchemy
March Liu
?
PDF
PostgreSQL 9 1 新特性
March Liu
?
PDF
Emacs Introduction
March Liu
?
PDF
软件开发工程化的个人体验
March Liu
?
PDF
笔测迟丑辞苍速成指南
March Liu
?
PDF
Python 数据库技术第三讲
March Liu
?
PDF
Python 数据库技术讲座(二)
March Liu
?
PDF
Python 数据库技术讲座(一)
March Liu
?
PDF
Python 数据库技术
March Liu
?
PDF
PostgreSQL 9 的 standby 集群实践
March Liu
?
PDF
PostgreSQL 9 Standby
March Liu
?
PPT
基于 PostgreSQL 的关系型数据库方案
March Liu
?
PDF
About Me
March Liu
?

More Related Content

More from March Liu (20)

PDF
Jaskell Core Parsec
March Liu
?
PDF
轻量级文本工具集
March Liu
?
PDF
奇点与未来
March Liu
?
PDF
尼尔盖曼的美国众神
March Liu
?
PDF
创业项目中常见的技术和管理债务
March Liu
?
PPT
滨迟工程师的职业成长
March Liu
?
PDF
Xcode tutorial
March Liu
?
PDF
Socrates Used PostgreSQL and SQLAlchemy
March Liu
?
PDF
PostgreSQL 9 1 新特性
March Liu
?
PDF
Emacs Introduction
March Liu
?
PDF
软件开发工程化的个人体验
March Liu
?
PDF
笔测迟丑辞苍速成指南
March Liu
?
PDF
Python 数据库技术第三讲
March Liu
?
PDF
Python 数据库技术讲座(二)
March Liu
?
PDF
Python 数据库技术讲座(一)
March Liu
?
PDF
Python 数据库技术
March Liu
?
PDF
PostgreSQL 9 的 standby 集群实践
March Liu
?
PDF
PostgreSQL 9 Standby
March Liu
?
PPT
基于 PostgreSQL 的关系型数据库方案
March Liu
?
PDF
About Me
March Liu
?
Jaskell Core Parsec
March Liu
?
轻量级文本工具集
March Liu
?
奇点与未来
March Liu
?
尼尔盖曼的美国众神
March Liu
?
创业项目中常见的技术和管理债务
March Liu
?
滨迟工程师的职业成长
March Liu
?
Xcode tutorial
March Liu
?
Socrates Used PostgreSQL and SQLAlchemy
March Liu
?
PostgreSQL 9 1 新特性
March Liu
?
Emacs Introduction
March Liu
?
软件开发工程化的个人体验
March Liu
?
笔测迟丑辞苍速成指南
March Liu
?
Python 数据库技术第三讲
March Liu
?
Python 数据库技术讲座(二)
March Liu
?
Python 数据库技术讲座(一)
March Liu
?
Python 数据库技术
March Liu
?
PostgreSQL 9 的 standby 集群实践
March Liu
?
PostgreSQL 9 Standby
March Liu
?
基于 PostgreSQL 的关系型数据库方案
March Liu
?
About Me
March Liu
?

3 Python开发风格与建议

  • 1. Python 开发的风格与建议 编码风格、技术选择与一些建议 Kingsoft KSO
  • 2. Python 编码的一些惯例 使用四空格而非 tab 缩进 为函数和类编写 docstring 尽可能使用 utf8 import this... 管理好命名 善用语法糖 Kingsoft KSO
  • 3. 一些好用的语法糖 隐式拆装 a, b = b, a 列表推导 [diff(x, y) for x, y in box if x<y] d = dict((x, y) for x, y in box if x<y) str.join ', '.join(['a', 'b', 'c']) 生成器 yield 线性迭代逻辑 修饰 实现业务正交分解 Kingsoft KSO
  • 4. Pythonic 是什么? 追求简单、易读的编码风格。 使用轻而浅层的代码组织。 善用文档和测试功能。 工作过程自动化。 重视文档。 Kingsoft KSO
  • 5. 选择 Python ,使用 Python 现代软件开发,编程语言的选择,包括了语言的运行时和语言的选择。 用好一门语言,要了解和运用好它的语法,也同样要能掌控它的运行时。 灵活运用知识和技术,不拘泥于某一种模式。 在全局高度设计架构,跳出框架限制。 Kingsoft KSO
  • 6. 常见 Web 框架 Django webpy zope turbogears pylons web2py tornado ... Kingsoft KSO
  • 7. Web 框架选择 Web 框架的选择,通常应该基于应用的特色、框架的社区活跃程度、文档、扩展性。 每一个框架都声称自己够快。 最快的不一定是最好用的,甚至不一定是“最快的”。 最“易用”的同样未必是最易用的。 能否与前端的应用服务器和后端的存储层灵活高效的结果,是非常重要的指标。 Kingsoft KSO
  • 8. ORM 的争议 ORM 的水准取决于三个方向:连接池、建模能力、 SQL 生成能力。 不需要追求最强的通用性,因为在实际工作中,最难迁移的就是数据库。 ORM 不一定慢,专业的 ORM 工具可以生成很高质量的 SQL ,并且可能拥有非常好的连接池机制。 好的 ORM 可以帮助我们更好的建立具有伸缩能力的存储层,控制事务,提高代码的可维护性。 好的 ORM 本身应该具有足够的弹性,允许我们穿透封装,直接使用底层的功能。 Kingsoft KSO
  • 9. ORM 的争议 ORM 很可能会给开发带来负作用 糟糕的连接池…… storm 糟糕的建模机制…… storm web2py dal 糟糕的 SQL 生成机制…… web2py dal Kingsoft KSO
  • 10. 唯一推荐的 Python ORM ! SQLAlchemy 是 Python 平台上最为优秀的 ORM 框架,在我心目中这是一个全能的强大工具 建模能力强,可以在应用层建立分布式存储 广泛支持所有主流数据库,对各自的特殊特性支持很好 SQL 生成机制非常好,复杂查询也可以生成高质量代码 内置成熟的连接池 对日志和调试友好 Pythonic Kingsoft KSO
  • 11. 测试驱动开发? 积极使用 doctest 和 unit test ,可以有效控制代码质量。 开发人员额外编写测试代码,确实会付出一定时间 ,但是对于一定复杂度以上的程序,确实是值得的。 好的代码组织应该能更方便的测试 Kingsoft KSO
  • 12. 一些野生程序的山寨体悟 代码即文档 docstring + 注释 + 高可读性的代码 测试即设计 编写测试代码不仅为了测试,也帮助理清设计的思路 享受动态类型 不追求“严谨”的重型设计,将安全保护放在运行时边界 面向数据结构编程 掌握文本处理技术 行文本 正则 管道 ... Kingsoft KSO