Python知识图谱

Python从初级到高级.jpg

Python 2.3开始使用至今,整理历年经验所得,知识图谱,希望有助于学习Python的同学。

写了二十万行左右的Python代码,是Python让我得以在帝都安身立命。

技术选型

当时选择Python引入到项目团队中来,考察了当时可以接触到的几乎所有的编程语言,比如C, C++, Java, Perl, PHP, Delphi, Pascal, 甚至研究能不能使用 Masm 写出来一套满足项目需要的基础框架出来。

项目需要大量的数据处理,需要应对高频的新需求,需要跨平台迁移到不同的Linux或AIX上面运行。

提出了著名的3C原则, C Complete,能不能覆盖绝大部分的问题域, C Cost,成本,既包含开发成本也包括运维成本,也包含迭代成本,C Change,快速应对变化。

基于上述3C原则,特别最后一个C,我决定选择了Python

选择Python的其他原因

  1. Google把Python作为公司层面的第三门编程语言,和C、Java并列(大厂背书)
  2. 当时非常流行的BitTorrent下载软件使用Python开发(成功实践)
  3. 可以参考BitTorrent源代码(可以学习)

知识来源

日后的开发经历中,的确多多从BitTorrent源代码中受益。当时可以学习的资料非常用有限,中文资料稀缺到几乎可以说没有。

当时三个知识来源

  1. Python官方,教父写的早期文档和各种PEP
  2. Google
  3. BitTorrent源代码

方法论

第一个版本开发出来,部署上线,即取得非常惊艳的效果,效率比其他语言开发的史前版本高出1个数量级,功能和处理逻辑复杂于史前版本,但是效率依旧高出一个数量级。

第二年开始重构,这个时候我已经非常熟悉Python的语言特性,也观摩过若干个知名开源项目的源代码。在重构中引入单元测试。

这段学习让我总结出来的方法论如下

  1. 选择合适的工具可以大幅度降低研发成本和确保交付品质
  2. 识别不同的知识来源,善用之
  3. 选择恰当的重构或优化时间点,避免早期重构和过度优化

获奖感言

BTW

  1. 感谢Python 之父 Guido van Rossum
  2. 把单元测试技术介绍给我的哥们,名字叫黄冬,后来担任优酷土豆的CTO。

你可能感兴趣的:(Python知识图谱)