- 有兴趣的可以点开思维导图目录,查看思维导图文件
.xmind,需要使用XMind软件打开编辑 - 在思维导图目录提供放大不失真的
svg文件
从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的其他原因
- Google把
Python作为公司层面的第三门编程语言,和C、Java并列(大厂背书) - 当时非常流行的
BitTorrent下载软件使用Python开发(成功实践) - 可以参考
BitTorrent源代码(可以学习)
日后的开发经历中,的确多多从BitTorrent源代码中受益。当时可以学习的资料非常用有限,中文资料稀缺到几乎可以说没有。
当时三个知识来源
Python官方,教父写的早期文档和各种PEPBitTorrent源代码
第一个版本开发出来,部署上线,即取得非常惊艳的效果,效率比其他语言开发的史前版本高出1个数量级,功能和处理逻辑复杂于史前版本,但是效率依旧高出一个数量级。
第二年开始重构,这个时候我已经非常熟悉Python的语言特性,也观摩过若干个知名开源项目的源代码。在重构中引入单元测试。
这段学习让我总结出来的方法论如下
- 选择合适的工具可以大幅度降低研发成本和确保交付品质
- 识别不同的知识来源,善用之
- 选择恰当的重构或优化时间点,避免早期重构和过度优化
BTW
- 感谢
Python之父 Guido van Rossum - 把单元测试技术介绍给我的哥们,名字叫黄冬,后来担任优酷土豆的CTO。
