# 预定义并保留中间产物

  • 把每一部分撰写为模块,以控制文件串联各模块

  • 由于代码在不同情况下运行,会在不同的步骤报错,为了方便调试和节约时间,要确保注释掉一些模块后,剩下的模块仍可以正常

  • 这要求每个模块的中间产物保留,而非以变量的形式储存

  • 由于该模块已注释所以要求在控制文件的开头定义好这些中间产物的路径,方便用定义读取

  • 如果存在 if 等情况判断语句,注释掉某模块后会出现缩进报错,此时可添加 if 1: 来解决

  • 模块级别预定义和保留中间产物,模块内的函数级别只返回变量。所以写一个模块时,要考虑这个可执行功能的范围,尽量边界清晰。

  • 同时要保证注释之后,中途某一变量传递未中断或者被替代,因此各变量应当在一开始就被固定,不要轻易改动,改动的变量需要改名名称,避免和通用的全局固定变量混在一起

# 每个模块可独立执行和调用

  • 每个模块的功能应该独当一面,定义合理的参数输入以便能够独立使用

  • 即每个模块都有合适的接口和输出

  • gui 界面调用这些接口,从而显示出文字和图像,完成界面可视化

# 日志记录

  • 不同模块报错输出不同的编码
  • 用 traceback 模块捕捉全部的错误,方便定位,这样就无需插入 print 去捕捉错误了
  • 某一模块输出内容过多,可以单独拉出来作为一个日志

# 平台兼容性

  • 如果需要跨平台,尽量少使用该平台的指令,去用 python 实现
  • 对于 windows 平台,实际上有 git,估计也能用 linux 的 shell 指令
  • 如果 shell 指令非常便捷省事,可用上,跨平台时再用 python 语法替换