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



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值