# 2023.12月阅读收录
## [《11 Python Coding Habits That Make You A Bad Programmer》](https://readmedium.com/11-python-coding-habits-that-make-you-a-bad-programmer-5e3306077686)
> 对比介绍了一些python中的小tricks
- 使用map()、filter()替代for-loop,提高循环效率
- 显示指明except的异常,而不是裸except
- 减少硬编码:
```python
# bad
area = 3.14 * r * r
#good
PI = 3.14
area = PI * r * r
```
etc..
## [PEP 636: python3.10 match/case语句](https://peps.python.org/pep-0636/)
```python
match params:
case opt1:
...
# 或,注意条件中只能有一个变量,否则程序无法确认执行语句中绑定哪个
case opt2 | opt3:
...
# as 捕获匹配,多个或选项,通过as绑定,让执行语句明确选项
case (param1 | param2 | param3) as final_param:
...
# if 条件
case val if xxx:
...
# json字段匹配,键必须是文字,值可以是任何模式
case {"code": code, "data": some_data}:
...
# 通配符,都未匹配上
case _:
...
```
## [系统设计法则](https://medium.com/@aqilzeka99/golden-rules-for-system-design-interview-c233295701e2)
## [python微服务框架pyNest](https://medium.com/@itay2803/stop-using-raw-fastapi-this-is-how-microservices-created-with-python-in-2024-a3ffbf57d103)
## [python 管道](https://medium.com/@ayush-thakur02/wait-what-are-pipelines-in-python-628f4b5021fd)
> 多数据的循环操作,使用for-loop会占用大量的篇幅,而实际做的事情很少,使用lambda写成one-line的式子,可读性会变差,推荐使用pipe,既增加可读性,减少代码编写,且减少了内存占用提高了效率
## [python 6种字典的用法](https://python.plainenglish.io/6-types-of-python-dictionaries-how-to-choose-the-right-one-bc0d5299f0f6)
- dict:普通字典,O(1)查找复杂度
- defaultDict:能够在取不到值时,返回一个默认值,而避免报错
- Counter:为传入的键自动计数
- userDict:可以通过`__setitem__`方法,定制化存入的键、值操作
- chainMap:合并(没有真正实施)多个字典,并在查询时,返回查到的第一个
- orderDict:按照字典插入的顺序存储键、值
## [类实现的SOLID原则](https://realpython.com/solid-principles-python/)
- 单一职责:一个类只负责一件事
- 开闭原则:类应该支持扩展而不是反复修改(利用抽象类)
- 里氏替换:子类应尽可能表现的像其基类,而不打破使用者对其的期望
- 接口隔离原则:类中不应包含其不强制使用的方法或属性,应该拆开为更具体的类
- 依赖倒置原则:程序应该依赖于抽象接口,而不是具体实现,这样可以降低模块间的耦合
2023.12月阅读收录