阅读开源代码,拒绝做平庸的程序员

1. 拒绝平庸

我害怕成为平庸的程序员,只会增删改查,在别人讨论技术问题时,没有自己的意见可以发表,有技术难题时,都是别人去解决而自己只能被动等待工作的安排。

也曾下定决心,迎难而上,做一个有技术实力的程序员,可路在何方,怎样才能提升技术能力,扩展技术视野,增加技术深度呢?

答案是阅读开源项目代码

2. 阅读开源代码能够带来的收获

  1. 学习到书本上没有的知识,更贴近实战的技术,开拓技术视野
  2. 体验一项技术在项目里具体如何应用,远胜于学习理论一百次
  3. 学习设计模式,架构思路,跟着大神学习,难道还害怕没有提高么
  4. 积累解决问题的思路,方法,在工作中需要时提出你的解决方案
  5. 深度探索python技术,成为真正的大牛

阅读开源代码虽然好处多多,但也困难多多,首先,你需要找到合适的开源项目,其次,你需要耗费大量时间阅读并研究代码,有更便捷的方法么?

当然有,跟我一起阅读python开源项目源码。

3. 同志们,跟我来

我在知识星球上创建了一个python开源项目源码阅读的星球,在这里,我会持续更新发表对优秀python开源项目的解读文章。

加入星球,你将收获的,是开源项目抽丝剥茧后的精华与干货,你也可以与我讨论研究这些项目里的技术。

4. 已经发表的开源项目解读

4.1 montydb

montydb 是一个纯python实现的类mongodb数据库,其底层采用4种不同的存储介质,阅读该项目,你将收获如下知识:

  1. 通过属性运算符创建对象
  2. 抽象类如何在架构设计中起作用
  3. 如何实现mongodb的查询语法

4.2 pip-autoremove

使用pip卸载一个第三方库,这个库的依赖会遗留下来,但使用pip-autoremove卸载一个库,会连同其无价值的依赖一同删除。

学习该项目,你将会了解如何获取python的安装包信息以及如何获取到一个库的依赖信息,这对于你理解python如何管理第三方安装包十分有用。

4.3 flynt

python3 之后提供了f-string 这种字符串格式化技术,但很多2.7 版本的代码还是老式的格式化方法,例如使用% 和 format,flynt 可以帮你自动修改代码,将老式的格式化代码转化为f-string 形式,是不是特别神奇。

阅读该项目,你将接触并学习到ast抽象语法树模块,掌握这个模块,可算得上在技术上更上一层楼了,我利用该模块写过一个python代码检查程序,检查变量命名,函数命名,类命名是否符合要求。

后续,我将发表更多的开源项目解读文章,加入星球,阅读更多开源项目,早日成为技术大牛。