学习 Robot Framework IDE 的一些感受

前段时间学习了 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的这个提示框时就做得不是很好(代码有点多):



 

  • 大小: 44.7 KB
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页