学习 Robot Framework IDE 的一些感受
程序员文章站
2022-06-09 14:11:01
...
前段时间学习了 Robot Framework IDE (RIDE) 的源码,还照着样实现了一个 .Net 平台的RIDE。
有几点感受比较深:
- 1. 动态和静态语言的区别
学习 RIDE 源码前几乎没有用动态语言编写过上规模的程序。对 RIDE 源码的学习,让我感受到:
- 1.1 Python 灵活的语言特性可以非常大的加快开发速度。
如:无需定义“接口”,就能将不同类型的数据传进同一个方法(只要参数类型已实现必需的那些属性或方法)。但这也可能会带来不小的问题:
- 1.2 (Duck Typing) 没有“接口”的约束,就会让其他程序员在扩展原有代码时非常困难。
例:
> 如果要增加一个新传入参数的类型,必需先了解这个新的类型必须实现那些属性或方法;
> 如果在接收参数的方法内增加了对参数其它属性或方法的调用,又要确保这些参数类型都已实现这些属性或方法 。
而“接口”正是对这些“必要条件”最好的说明书。
- 2. wxPython 和 Windows Forms 的具体差别
我在用 Windows Forms 重写 RIDE 的时候感觉,总体上两者使用方式很类似,但也有个别地方模仿起来会比较麻烦。例:
- 2.1 两者对事件触发时调用执行代码块的顺序可能差别会比较大。
如:wxPython 中有个 CallAfter 的方法,它允许一段方法在当前事件的所有代码执行完后,再执行指定的某段代码;这钟效果在 Windows Form 中模仿就比较麻烦,可能要自定义回调流程。
- 2.2 wxPython 在控件呈现前后的某些事件触发效果上会有些差异。
如:wxPython 中,如果在控件呈现前设置控件焦点,呈现后焦点不会改变;而 Windows Forms 中会在呈现后把焦点重新定位到默认控件上。
- 2.3 自带控件库的不对应带来迁移重写的麻烦
wxPython 中很多比较复杂的控件在 Windows Forms 并没有比较合适的替代品。这时候就只能自定义控件。这样工作量可能会很大,性能和易用性上也不一定理想(开发一款标准控件也不容易啊)。
在模仿RIDE的这个提示框时就做得不是很好(代码有点多):
上一篇: laravel框架之自帶登錄&註冊
下一篇: 基于SSM开发学生信息管理系统 源码 B