阅读开源代码,拒绝做平庸的程序员
1. 拒绝平庸
我害怕成为平庸的程序员,只会增删改查,在别人讨论技术问题时,没有自己的意见可以发表,有技术难题时,都是别人去解决而自己只能被动等待工作的安排。
也曾下定决心,迎难而上,做一个有技术实力的程序员,可路在何方,怎样才能提升技术能力,扩展技术视野,增加技术深度呢?
答案是阅读开源项目代码
2. 阅读开源代码能够带来的收获
学习到书本上没有的知识,更贴近实战的技术,开拓技术视野
体验一项技术在项目里具体如何应用,远胜于学习理论一百次
学习设计模式,架构思路,跟着大神学习,难道还害怕没有提高么
积累解决问题的思路,方法,在工作中需要时提出你的解决方案
深度探索python技术,成为真正的大牛
阅读开源代码虽然好处多多,但也困难多多,首先,你需要找到合适的开源项目,其次,你需要耗费大量时间阅读并研究代码,有更便捷的方法么?
当然有,跟我一起阅读python开源项目源码。
3. 同志们,跟我来
我在知识星球上创建了一个python开源项目源码阅读的星球,在这里,我会持续更新发表对优秀python开源项目的解读文章。
加入星球,你将收获的,是开源项目抽丝剥茧后的精华与干货,你也可以与我讨论研究这些项目里的技术。
4. 已经发表的开源项目解读
4.1 montydb
montydb 是一个纯python实现的类mongodb数据库,其底层采用4种不同的存储介质,阅读该项目,你将收获如下知识:
通过属性运算符创建对象
抽象类如何在架构设计中起作用
如何实现mongodb的查询语法
4.2 pip-autoremove
使用pip卸载一个第三方库,这个库的依赖会遗留下来,但使用pip-autoremove卸载一个库,会连同其无价值的依赖一同删除。
学习该项目,你将会了解如何获取python的安装包信息以及如何获取到一个库的依赖信息,这对于你理解python如何管理第三方安装包十分有用。
4.3 flynt
python3 之后提供了f-string 这种字符串格式化技术,但很多2.7 版本的代码还是老式的格式化方法,例如使用% 和 format,flynt 可以帮你自动修改代码,将老式的格式化代码转化为f-string 形式,是不是特别神奇。
阅读该项目,你将接触并学习到ast抽象语法树模块,掌握这个模块,可算得上在技术上更上一层楼了,我利用该模块写过一个python代码检查程序,检查变量命名,函数命名,类命名是否符合要求。
后续,我将发表更多的开源项目解读文章,加入星球,阅读更多开源项目,早日成为技术大牛。