欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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


学习 Robot Framework IDE 的一些感受
            
    
    博客分类: C# .NetPython RIDEwxPythonWindows FormsPythonC# 
 

  • 学习 Robot Framework IDE 的一些感受
            
    
    博客分类: C# .NetPython RIDEwxPythonWindows FormsPythonC# 
  • 大小: 44.7 KB