Python 程序设计思维

  1. 自顶向下 和 自底向上
    自顶向下(设计)
    解决复杂问题的有效方法

    • 将一个总问题表达为若干个小问题组成的形式
    • 使用同样方法进一步分解小问题
    • 直至,小问题可以用计算机简单明了的解决

    自底向上(执行)
    逐步组建复杂系统的有效测试方法

    • 分单元测试,逐步组装
    • 按照自顶向下相反的路径操作
    • 直至,系统各部分以组装的思路都经过测试和验证

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

    《Python 程序设计思维》 image.png
    《Python 程序设计思维》 image.png

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

    理解自顶向下的设计思维:分而治之
    理解自底向上的执行思维:模块化集成
    自顶向下是“系统”思维的简化

  2. 计算思维与程序设计

    • 逻辑思维:推理和演绎,数学为代表,A->B B->C A->C
    • 实证思维:实验和验证,物理为代表,引力波<-实验
    • 计算思维:设计和构造,计算机为代表,汉诺塔递归

      《Python 程序设计思维》 image.png
      《Python 程序设计思维》 image.png

    当计算机被广泛使用,我们生活中出现了比人算力更加强大的设备的时候,计算思维才真真正正成为人类利用工具进行思维的一种方式。
    逻辑运算更多的是 利用公式,进行推导
    而计算思维 则是 更多的利用 模拟运算,模拟过程,如模拟求和,模拟移动汉诺塔

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

    以开源项目为代表的大量第三方库Python语言提供 >15万个第三方库;
    库的建设经过野蛮生长和自然选择同一个功能,Python语言2个以上第三方库;
    库之间相互关联使用,依存发展Python库间广泛联系,逐级封装;
    社区庞大,新技术更迭迅速AlphaGo深度学习算法采用Python语言开源;

    《Python 程序设计思维》 image.png

    学习 python,不是一行一行代码,而是站在巨人的肩膀上

  2. 用户体验与软件产品
    编程只是手段,不是目的,程序最终为人类服务,所以我们要尽量考虑提高用户体验;
    要是我们自己都不满意自己的产品,那么别人更加不会满意

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

    • 确定IPO:明确计算部分及功能边界
    • 编写程序:将计算求解的设计变成现实
    • 调试程序:确保程序按照正确逻辑能够正确运行

    模块化设计

    • 通过函数或对象封装将程序划分为模块及模块间的表达
    • 具体包括:主程序、子程序和子程序间关系
    • 分而治之:一种分而治之、分层抽象、体系化的设计思想
    • 紧耦合:两个部分之间交流很多,无法独立存在
    • 松耦合:两个部分之间交流较少,可以独立存在
    • 模块内部紧耦合、模块之间松耦合

    配置化设计

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

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

    • 1 产品定义:对应用需求充分理解和明确定义
      产品定义,而不仅是功能定义,要考虑商业模式
    • 2 系统架构:以系统方式思考产品的技术实现
      系统架构,关注数据流、模块化、体系架构
    • 3 设计与实现:结合架构完成关键设计及系统实现
      结合可扩展性、灵活性等进行设计优化
    • 4 用户体验:从用户角度思考应用效果
      用户至上,体验优先,以用户为中心
    原文作者:小星star
    原文地址: https://www.jianshu.com/p/b1db6721e688
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞