目录

Python 程序设计思维

自顶向下 和 自底向上

自顶向下(设计)

解决复杂问题的有效方法

将一个总问题表达为若干个小问题组成的形式

使用同样方法进一步分解小问题

直至,小问题可以用计算机简单明了的解决

自底向上(执行)

逐步组建复杂系统的有效测试方法

分单元测试,逐步组装

按照自顶向下相反的路径操作

直至,系统各部分以组装的思路都经过测试和验证

设计的时候,编码之前,先想好框架

调试的时候,逐渐测试各个单元

理解自顶向下的设计思维:分而治之

理解自底向上的执行思维:模块化集成

自顶向下是“系统”思维的简化

计算思维与程序设计

自古以来,人类拥有三种思维,而计算机思维是近代以来人类才掌握的思维。

逻辑思维:推理和演绎,数学为代表,A->B B->C A->C

实证思维:实验和验证,物理为代表,引力波<-实验

计算思维:设计和构造,计算机为代表,汉诺塔递归

当计算机被广泛使用,我们生活中出现了比人算力更加强大的设备的时候,计算思维才真真正正成为人类利用工具进行思维的一种方式。

逻辑运算更多的是 利用公式,进行推导

而计算思维 则是 更多的利用 模拟运算,模拟过程,如模拟求和,模拟移动汉诺塔

计算生态与Python语言

开源思想深入演化和发展,形成了计算生态

计算生态以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在竞争发展、相互依存和迅速更迭中完成信息技术的更新换代,形成了技术的自我演化路径。

以开源项目为代表的大量第三方库Python语言提供 >15万个第三方库;

库的建设经过野蛮生长和自然选择同一个功能,Python语言2个以上第三方库;

库之间相互关联使用,依存发展Python库间广泛联系,逐级封装;

社区庞大,新技术更迭迅速AlphaGo深度学习算法采用Python语言开源

现在已经不是刀耕火种的时代,我们需要站在巨人的肩膀上,学习 python的目的是为了快速解决问题。

用户体验与软件产品

编程只是手段,不是目的,程序最终为人类服务,所以我们要尽量考虑提高用户体验;

要是我们自己都不满意自己的产品,那么别人更加不会满意。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
提升用户体验的方法:
- 如果程序需要计算时间,可能产生等待,请增加进度展示
- 如果程序有若干步骤,需要提示用户,请增加进度展示
- 如果程序可能存在大量次数的循环,请增加进度展示
- 当获得用户输入,对合规性需要检查,需要异常处理
- 当读写文件时,对结果进行判断,需要异常处理
- 当进行输入输出时,对运算结果进行判断,需要异常处理
- 打印输出:特定位置,输出程序运行的过程信息
- 日志文件:对程序异常及用户使用进行定期记录
- 帮助信息:给用户多种方式提供帮助信息

基本的程序设计模式

从IPO开始…

确定IPO:明确计算部分及功能边界

编写程序**:将计算求解的设计变成现实

调试程序:确保程序按照正确逻辑能够正确运行 模块化设计

通过函数或对象封装将程序划分为模块及模块间的表达

具体包括:主程序、子程序和子程序间关系

分而治之:一种分而治之、分层抽象、体系化的设计思想

紧耦合:两个部分之间交流很多,无法独立存在

松耦合:两个部分之间交流较少,可以独立存在

模块内部紧耦合、模块之间松耦合 配置化设计

引擎+配置:程序执行和配置分离,将可选参数配置化 将程序开发变成配置文件编写,扩展功能而不修改程序 关键在于接口设计,清晰明了、灵活可扩展

应用开发的四个步骤:从应用需求到软件产品

1 、产品定义:对应用需求充分理解和明确定义 产品定义,而不仅是功能定义,要考虑商业模式

2、 系统架构:以系统方式思考产品的技术实现 系统架构,关注数据流、模块化、体系架构

3、 设计与实现:结合架构完成关键设计及系统实现 结合可扩展性、灵活性等进行设计优化

4 、用户体验:从用户角度思考应用效果 用户至上,体验优先,以用户为中心