Python 程序设计思维
自顶向下 和 自底向上
自顶向下(设计)
解决复杂问题的有效方法
将一个总问题表达为若干个小问题组成的形式
使用同样方法进一步分解小问题
直至,小问题可以用计算机简单明了的解决
自底向上(执行)
逐步组建复杂系统的有效测试方法
分单元测试,逐步组装
按照自顶向下相反的路径操作
直至,系统各部分以组装的思路都经过测试和验证
设计的时候,编码之前,先想好框架
调试的时候,逐渐测试各个单元
理解自顶向下的设计思维:分而治之
理解自底向上的执行思维:模块化集成
自顶向下是“系统”思维的简化
计算思维与程序设计
自古以来,人类拥有三种思维,而计算机思维是近代以来人类才掌握的思维。
逻辑思维:推理和演绎,数学为代表,A->B B->C A->C
实证思维:实验和验证,物理为代表,引力波<-实验
计算思维:设计和构造,计算机为代表,汉诺塔递归
当计算机被广泛使用,我们生活中出现了比人算力更加强大的设备的时候,计算思维才真真正正成为人类利用工具进行思维的一种方式。
逻辑运算更多的是 利用公式,进行推导
而计算思维 则是 更多的利用 模拟运算,模拟过程,如模拟求和,模拟移动汉诺塔
计算生态与Python语言
开源思想深入演化和发展,形成了计算生态
计算生态以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在竞争发展、相互依存和迅速更迭中完成信息技术的更新换代,形成了技术的自我演化路径。
以开源项目为代表的大量第三方库Python语言提供 >15万个第三方库;
库的建设经过野蛮生长和自然选择同一个功能,Python语言2个以上第三方库;
库之间相互关联使用,依存发展Python库间广泛联系,逐级封装;
社区庞大,新技术更迭迅速AlphaGo深度学习算法采用Python语言开源
现在已经不是刀耕火种的时代,我们需要站在巨人的肩膀上,学习 python的目的是为了快速解决问题。
用户体验与软件产品
编程只是手段,不是目的,程序最终为人类服务,所以我们要尽量考虑提高用户体验;
要是我们自己都不满意自己的产品,那么别人更加不会满意。
|
|
基本的程序设计模式
从IPO开始…
确定IPO:明确计算部分及功能边界
编写程序**:将计算求解的设计变成现实
调试程序:确保程序按照正确逻辑能够正确运行 模块化设计
通过函数或对象封装将程序划分为模块及模块间的表达
具体包括:主程序、子程序和子程序间关系
分而治之:一种分而治之、分层抽象、体系化的设计思想
紧耦合:两个部分之间交流很多,无法独立存在
松耦合:两个部分之间交流较少,可以独立存在
模块内部紧耦合、模块之间松耦合 配置化设计
引擎+配置:程序执行和配置分离,将可选参数配置化 将程序开发变成配置文件编写,扩展功能而不修改程序 关键在于接口设计,清晰明了、灵活可扩展
应用开发的四个步骤:从应用需求到软件产品
1 、产品定义:对应用需求充分理解和明确定义 产品定义,而不仅是功能定义,要考虑商业模式
2、 系统架构:以系统方式思考产品的技术实现 系统架构,关注数据流、模块化、体系架构
3、 设计与实现:结合架构完成关键设计及系统实现 结合可扩展性、灵活性等进行设计优化
4 、用户体验:从用户角度思考应用效果 用户至上,体验优先,以用户为中心