美文网首页
交互式程序的规范

交互式程序的规范

作者: 扫地专业高级研究生 | 来源:发表于2021-12-06 22:38 被阅读0次

前要

前段时间,由于工作的需要,开始着手开发一些项目相关的小工具,用来实现将一些文档转换为项目中必须要的配置文件,从而减少一些不必要的重复性的工作,腾出更多的时间来在业务功能上的思考。小工具功能单一,仅需要读取特定规范的文档,读取其中有效的值,装配到预先的配置模版上就好了。一个简单的流程,也没有做必要的拆分,也就一次性的在几个方法中开发完毕,自己使用简单。但考虑到工具使用方便,不需要预装环境,有采用pyinstaller将其转换为exe可执行文件,以命令行的形式可以交互式的进行选择生成制定的文档。从而使得工具原本是一个简单的功能代码,成为了一个交互式的工具。


问题

交互式工具的开发,也就是在某个时刻需要等待用户键盘输入命令,才往下执行的程序。从实现上面只需要使用python的raw_input方法即可,而转换原功能代码,只需要将其中需要外部传入的变量的地方加上即可。功能实现简单,但在开发过程中,却陷入到了交互式编程的困境当中:

1,交互式程序需要预判一些用户非法输入,并确定这些输入是直接过滤,还是进行检查后作为控制条件

2,交互式程序需要考虑用户输入的控制条件,进行停留,回退,跳转,翻页,退出等操作,这些操作不光导致页面展示的变化,也导致提供功能的变化。笼统来说就是流程控制。

这两个问题是十分明显的问题,虽然在不断的修改和调试后成功完成了实现,但代码却存在着一下问题:

1,为了实现对用户非法输入的控制,通过while循环使界面停留在指定的提示内容,直到用户输入合法的命令

2,为了实现长控制链的灵活回退和翻页,不断的在一个while循环中嵌套while循环每个while循环内实现自己功能以及他的子功能,整个程序运行在若干个while循环的嵌套下,分不清楚哪一步是哪一步,流程控制起来也相对复杂,功能和控制流相互交杂,程序看起来非常混乱,为后续拓展开发增加了工作量。


规范化

由于以上的原因,为了简化开发过程,加速功能集成。分析交互式编程中的几个重要的流程,拆分出展示,控制,功能公布分,流程大概为先展示再控制再功能。在展示部分又分为单行提示输入或分页选择输入,规范了在用户之前的提示内容以及输入形式,并单独集成了分页选择部分。控制部分则缩小了校验范围采用单while循环校验普通的非法输入,并对控制命令(quit-返回,exit-退出)做出识别,在控制阶段即将完成通用的校验。当然业务校验也属于控制阶段的一步,为了达到控制的规范化,特别对功能阶段的输出结果进行校验,从而判断是否进行流程控制。功能部分因为无法完全将控制拆分出来,所以在原功能代码中,需要对结果进行专门处理,从而达到后续的控制效果。

代码实现,采用了python的装饰器模式,以上流程进行封装,实现展示+控制+功能的集成。重写主流程控制方法,规范其传入参数为展示参数+位置参数+输出参数,并在该方法上加@装饰器来达到应用装饰器的目的。装饰器展示展示参数+当前位置,并校验输入后将合法的输入传给功能代码,功能代码执行功能后返回。最后实现功能呢。

相较于前面的杂乱的代码,经过规范后的代码更简洁,控制流程也更加清晰,开发中可以复用以前的大部分代码,除了一些特定的控制输出外,基本不需要做任何的改动,从而使得集成其他工具简单快速。


感想

编程规范相较于直接编写代码能够提高代码的质量,逻辑更加清晰,拓展更加容易,也更容易进行查错。所以建议广大农民工在编写代码之前,可以先着手分析代码的原有规范,按照原有规范编程,更能够提高效率和减少错误。

相关文章

  • 交互式程序的规范

    前要 前段时间,由于工作的需要,开始着手开发一些项目相关的小工具,用来实现将一些文档转换为项目中必须要的配置文件,...

  • 4、第一个Python程序

    运行程序的两种方式: 交互式运行Python语句 保存源文件运行程序 一、交互式运行Python语句 超级计算器:...

  • LUA学习二 基本语法

    编程方式 交互式编程 Lua支持交互式编程 ,通过lua 或者lua -i进入: 脚本式编程 将 Lua 程序代码...

  • ishell:创建交互式cli应用程序库

    ishell是一个用于创建交互式cli应用程序的交互式shell库。 最近在研究supervisor的源码,参考s...

  • 小程序flex布局

    小程序开发规范 在学习小程序时,规范是特别重要的。 目录的规范,所有组件要放在components目录下,所有图片...

  • 02-scala入门

    第一个Scala程序 交互式编程 交互式编程不需要创建脚本文件,可以通过以下名调用: '''$ scalascal...

  • 2018-10-31

    Python交互式程序与While循环 (1)用户输入——input() message=input('show ...

  • 03、python基础语法

    第一个 Python 程序 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编...

  • 【Python】07 用户输入和while循环

    前言:函数input(),使用while循环让程序不断地运行,编写交互式程序 7.1 函数input() 接受一个...

  • 编码规范

    程序编码规范: 命名规约:

网友评论

      本文标题:交互式程序的规范

      本文链接:https://www.haomeiwen.com/subject/qzvnxrtx.html