V1转移V2经验谈

不适合其他版块的话题这里发吧

Moderators: tmplinshi, arcticir

arcticir
Posts: 693
Joined: 17 Nov 2013, 11:32

V1转移V2经验谈

Post by arcticir » 28 Aug 2015, 13:29

答应萝卜要说说的,就瞎白些,想到什么说什么。

1,我是受不了V1的崩溃才转V2的。面对V1无数谜之崩溃,即使重写了无数次结构也无济于事,浪费了无数时间,也把H作者骚扰到够,于是就打算转移了。
以前也转移过几次,但技术渣渣,很多必用的库不会写V2版,所以最后都放弃了。这回大概AHK力满槽,又恰好V2最近的版本恢复了一些以前删除的语法和命令,使得兼容性大增,整个过程十分顺利。现在虽然还是经常遇到崩溃,但都一一找到源头解决掉了。还在磨合阶段嘛。
2,多线程容易崩溃,更容易出错。这是事实。代码规范可以大大减少错误机率,这也是V2的长处。
3,V2的特点,命令的函数化,确实不错,代码结构流畅了很多。但需要注意的是,如果你追求速度最大化,就是想能快一点是一点,别用这些函数,因为会比原命令慢很多,大概一倍吧。
4,线程交互使用最多的大概是 ahkFunction 和 ahkPostFunction,这两个函数,有个需要注意的地方是,传递的参数必须是字符串。如果传递数值必须这样使用:
AhkThread.ahkPostFunction("Func",1 "")
我在V2遇到最难搞的崩溃的原因,就是在某个参数上忘记加这两个引号。 这也可见多线程是多么容易崩溃.
5,我对V2的报错机制是又爱又恨,被它骚扰到爆,当然也找出很多不恰当的代码。= = 我不认为它报错的代码是错的,但没有关闭的开关也只好改。这大概也是崩溃减少的原因吧。
6,前面说过V2最近恢复了V1的语法和命令,这让修改V1的库变得十分容易。很多大型的库,例如GDIP PUM 都是稍加修改就能正常使用了。整个转移过程耗费精力是我自写的代码,我为我的极简的代码风格付出了惨痛代价。拜此所赐,我的几个重要且大量代码的模块都是重写的,修复的几个也十分缓慢。要养成良好的代码习惯啊,各位。

Return to “其他”