
## Python 工程师的代码工具箱

<div align="center">
<big><big> 代码为啥要这样写，我要这样写代码 </big></big>
</div>

初学编程者完成一门学校的标准课程学习后，会发现成熟的开源项目代码使用了完全不同课堂教学练习的代码风格。而且总有一些模式(或者叫风格等等)反复出现。这些重复的模式是集体智慧的结晶，工程学上的最佳实践。本代码仓库对此做简单探索，用以提升 “编程思维” 之外的另外一个重要基础编码能力。


### 本项目的模块说明
A 代码模式
用一个简单任务，展示各种软件工程需求（完成任务简单、可读性强、可复用高、维护成本低等）下的代码写法

B 面向对象设计模式
用一个业务场景复现面向对象的经典设计模式

C 高性能编程
考虑执行时间快，资源占用少的一些思路、办法和结论

D 制造工业级代码
问题同 A ，以构建工业级的代码为目标，用多种方式做了优化提升演示

### 阅读引导
原则上 C 语言的基础语法能完成所有编程逻辑书写。但是，代码到一定规模产生了复杂性，使得审核、修改和维护困难 。
应对复杂性，编程语言主要从下面两个思路出发解决问题 ：

一是应用程序设计的工程化思想：
- 封装，分层抽象,使用者只描述“做什么”而非“怎么做”，减轻编程过程的认知负荷。
- 约束类型，减少运行时错误，方便调试追踪。
- 错误处理，方便调试追踪。
- 形成最佳实践共识并命名，降低理解、交流成本。

二是增强编程语言的能力：
- 发明新的表达结构，增强语言的表达能力, 比如函数式，装饰器，异步，并发与并行 。
- 元编程,程序在运行时修改自身,增强语言的自由度。