Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Python  开发的风格与建议 编码风格、技术选择与一些建议 Kingsoft KOS
Python  编码的一些惯例 <ul><li>使用四空格而非  tab  缩进 </li></ul><ul><li>为函数和类编写  docstring </li></ul><ul><li>尽可能使用  utf8 </li></ul><ul>...
一些好用的语法糖 <ul><li>隐式拆装 </li></ul><ul><ul><li>a, b = b, a </li></ul></ul><ul><li>列表推导 </li></ul><ul><ul><li>[diff(x, y) for ...
Pythonic  是什么? <ul><li>追求简单、易读的编码风格。 </li></ul><ul><li>使用轻而浅层的代码组织。 </li></ul><ul><li>善用文档和测试功能。 </li></ul><ul><li>工作过程自动化...
选择 Python ,使用 Python <ul><li>现代软件开发,编程语言的选择,包括了语言的运行时和语言的选择。 </li></ul><ul><li>用好一门语言,要了解和运用好它的语法,也同样要能掌控它的运行时。 </li></ul>...
常见  Web  框架 <ul><li>Django </li></ul><ul><li>webpy </li></ul><ul><li>zope </li></ul><ul><li>turbogears </li></ul><ul><li>p...
Web  框架选择 <ul><li>Web  框架的选择,通常应该基于应用的特色、框架的社区活跃程度、文档、扩展性。 </li></ul><ul><li>每一个框架都声称自己够快。 </li></ul><ul><li>最快的不一定是最好用的,甚...
ORM 的争议 <ul><li>ORM 的水准取决于三个方向:连接池、建模能力、 SQL 生成能力。 </li></ul><ul><li>不需要追求最强的通用性,因为在实际工作中,最难迁移的就是数据库。 </li></ul><ul><li>OR...
ORM 的争议 <ul><li>ORM 很可能会给开发带来负作用 </li></ul><ul><li>糟糕的连接池…… </li></ul><ul><ul><li>storm </li></ul></ul><ul><li>糟糕的建模机制…… <...
唯一推荐的  Python ORM ! <ul><li>SQLAlchemy  是  Python  平台上最为优秀的  ORM  框架,在我心目中这是一个全能的强大工具 </li></ul><ul><li>建模能力强,可以在应用层建立分布式存...
测试驱动开发? <ul><li>积极使用  doctest  和  unit test ,可以有效控制代码质量。 </li></ul><ul><li>开发人员额外编写测试代码,确实会付出一定时间 ,但是对于一定复杂度以上的程序,确实是值得的。 ...
一些野生程序的山寨体悟 <ul><li>代码即文档 </li></ul><ul><ul><li>docstring +  注释  +  高可读性的代码 </li></ul></ul><ul><li>测试即设计 </li></ul><ul><ul...
一些野生程序的山寨体悟 <ul><li>运行时的架构比开发时的代码组织重要 </li></ul><ul><li>运行时接口比开发时接口重要 </li></ul><ul><li>在 Python 中慎用多线程 </li></ul><ul><li>...
刘鑫 [email_address] Kingsoft KOS
Nächste SlideShare
Wird geladen in …5
×

3 Python开发风格与建议

2.448 Aufrufe

Veröffentlicht am

Python 开发中一些值得关注的语法、框架、设计思想

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

3 Python开发风格与建议

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

×