做一件事需要几个步骤

大约是13年的10月开始,我在公司里从事着黑盒测试的工作。当时我的任务是要对服务端的接口进行测试。为了能更好(偷懒)的完成好工作,我开发了一个简单的自动化接口测试程序personal,她可以根据我提交的测试数据、接口文档,自动发送报文进行测试并收集测试结果,然后生成报表发邮件通知我。这本来也没什么值得可说的,本来没打算有大用的小程序,随着被头头的喜爱而不断对其的功能进行扩充。于是,本来没有太经过设计规划的代码喜闻乐见的越来越冗余,连我自己都不忍落目。

于是,在一次次下决心之后,我打算对之前的小程序进行重新设计、重写。这也算是对以前工作的一个重新思考、总结,也期待经过这样一次回顾后,我能对python、自动化测试、框架有更深的理解。当然,这些都是垃圾话,问题是,怎样的一个设计才能更灵活,并且在不同项目之间,也能很快的移植、定制。

我果然又标题党了么 (●´ϖ`●) ?这些貌似跟标题没多大的关系,在说这个之前,我想先谈谈qml中关于Rectangle的若干思考。


自从大约是去年6月左右转了Qt开发之后,就掉进了qml的世界。刚接触时,第一眼觉得qml真的跟css长的很像很像,再加上曾经有用PyQt库的经验,学起来还是不是很难理解的。这半年以来,对qml的理解越来越深,觉得qml真的是很有趣的一个东西。在qml里第一个接触到的组件就是Rectangle,矩形,其实就是一个方块嘛,但是在很多可视的控件设计中都少不了它。

Rectangle

唔,好吧,其实我只是手欠,所以画了个Rectangle的示意图。

刚上手Qt的时候,是在老手的带领下,拼装拼装小组件,拼装拼装页面啥的。用“拼装”这个词来描述可是一点都不虚。我那会所做的就是简单的把组件和组件组合在一起,然后就行啦。于是,对那时的我来说,Rectangle就是一个神奇玩意了,为什么这么说呢。比如,你想自己做一个按钮,一被点击就触发一个事件。(我知道还有一个叫做button的控件,但是让我们忽略它。)那就可以画一个Rectangle上面在盖一个MouseArea,就可以了。ヾ( ´ ▽ ‘ )ノ

Button代码示例

Button

//MyButton.qml
import QtQuick 2.4

Rectangle {
    id:button
    implicitWidth: 100
    implicitHeight: 62
    color:"red"

    signal clicked //点击事件

    MouseArea {
        anchors.fill: parent

        onClicked: {
            button.forceActiveFocus()
            button.clicked()
        }
    }
}

再比如说,你打算弄个霸气大板砖形的输入框,最简单的方法就是弄个Rectangle上面放个TextInput,当然也可以通过定制style来实现,不过总觉得麻烦,不如这样简单粗暴。(=。= )

TextinputBar代码示例

TextinputBar

//MyTextinputBar.qml
import QtQuick 2.4

Rectangle {
    id:textinputbar
    implicitWidth: 100
    implicitHeight: 62
    color:"yellow"
    clip:true

    TextInput {
        anchors.fill: parent
    }
}

在每个qml文件里,组件们被串成了一棵树。在久了之后,有时候我就会想知道,为什么是一种树形结构,或者说这种结构有什么样的好处。并且,在每个qml页面里,起码要有一个根组件,也就是说,你不能创建一个全空白的qml,而这又是为何?

当我试图换个角度来重新看待Rectangle这件事时,我觉得我又对qml有了更深的理解。每个qml文件的根组件就好比是一个类,在其中的其他组件就是那些组件类的一个实例,各种继承、各种封装。Rectangle、Text等是继承Item的,ListView各种wiew是继承Flickable的,Flickable也是继承Item。Item是继承QtObject的……于是,一个qml组件的金字塔一层层的展现出来。


那么,回到我那个倒霉悲催的personal程序上,在这一次的重写计划中,我一直在思考,从qml中学习到的东西,有没有我可以加以借鉴学习的。

personal流程

当初的整个personal程序的大体流程就是如此。我的整个程序的输入是用户的测试用例(集),以及由于是要对接口和后台服务进行测试,我需要读取与服务器通讯的接口配置文档。得到之后,根据用例集以及用例顺序,有序的组装报文,以便于进行测试。当得到报文后,发送报文到被测程序开始测试。被测后台服务会根据接口给我返回报文,我收获返回报文后,对报文进行解析,判断报文格式是否正确,报文内的数据是否与用户之前预留的一致,并将结果记录下来。整个测试结束后,开始统计测试结果、计算通过率、绘制图表,然后生成测试报告,打包将其发送到测试人员邮箱。

当时的我,并没有对程序进行仔细的结构设计,于是我就按照流程,就那么面向过程的实现了整个程序还一度沾沾自喜。于是问题来了,当我有序(悠闲)的用这个程序进行着测试工作时,头头觉得我写的这个很方便,并且每天下班后,服务器自己还可以默默的开始几轮测试简直是太攒了之后。小小的personal程序的需求突然变的开始爆炸,更多的接口、不同的报文格式、验证返回报文内容加上逻辑运算、嵌套多层的测试数据等等,为了适应这些需求,程序变得越来越难改、越改越不好用,我开始头疼了…… (๑´灬`๑)

其实,如果在站的高点来看整个pensonal程序,她所做的事不过就是准备测试开始测试测试结果分析,这三大部分。在准备测试里,读取各种数据、组装报文、得到真实用例集;开始测试里,发送报文并接收返回报文、对返回报文进行验证、收集结果;测试结果分析里,统计结果、根据结果生成各种报表等、发送结果。整个流程和每层内部都看着即熟悉又陌生,有那么一点点相似。如果在站的高一点呢,其实我把每个部分都分成了3个部分,即pre、do、after。

do one thing

于是,我可以再抽象一下,定义一个类。这个类它做一件事,并将此事可以分为3个步骤,分别为准备做开始做后续处理。在此基础上,我可以定义上面三大部分里的每一个小类、以及准备测试、开始测试、测试结果分析等等。这样,就像qml的金字塔一样,一层层的搭起来我的测试程序。

(ง •̀_•́)ง 当然这只是我现在最初的构想,细节部分完全没有涉及、譬如插件系统、并发等等,但是总归要一步一步不是,这一次,我定要想好在动笔。哦,回到那个最初的问题上,做一件事需要几个步骤?对于当下的我来说,应该是3步吧~~ (//▽//)


又是年末,晚安2014

2014qqMail--by mail.qq.com

诸多开心、忧伤、烦恼、不如意一起晚安,
我的2014……晚安。

bgm: 乐活女王 -- 龙宽


修改Typecho程序解决Gravatar被墙

我素来不是辣么暴力的一个人。当Gravatar刚被墙的时候,我只是简单的在主题文件中对Gravatar地址进行了修改。这原本是一件十分简单又美好的事情,我也没有破坏te程序。但紧接着,我后面蛋疼的开始调整新皮、换主题,于是简单而美好的方法让我最终饱受其痛苦,我总是在最后才想起要修改Gravatar地址。

于是,在简洁主义的带领下,我直接对te程序进行了修改( ˘ ³˘)♥,嗯,下面把方法记录于下。


typecho(0.9)
打开 /var/Widget/Abstract/Comments.php
然后搜索$url = $host . '/avatar/'
大概在413行左右的位置,修改如下

 //$url = $host . '/avatar/';
 $url = 'https://secure.gravatar.com/avatar/';

然后保存离开就OK啦,( •́ .̫ •̀ )

这本该也是一个简单又美好的事情,但是我今天又闲的DT的升级了typecho程序,升级到了typecho1.0(141010)。当我开打comments.php文件,想要再次习惯性的修改那行代码,然后见证奇迹的时候,尼玛发现,我去,那行代码呢,去哪了~然后在熟悉的位置上,我看到了,$url = Typecho_Common::gravatarUrl($this->mail, $size, $rating, $default, $this->request->isSecure()); ,我揍、莫要欺负我读书少,尼玛你把gravatarUrl方法收集到哪里去了!!!

(●´∀`●)不过,哼,鱼唇的中原人啊,像寡人这么天资聪慧、肿么可能找不到,想到这,我用我智慧满满的CPU猜了下文件的位置,哦呵呵呵哈哈哈哈哈哈……


typecho(1.0)
打开 /var/Typecho/Common.php
然后搜索 gravatarUrl
大概在937行左右的位置,找到了gravatarUrl方法,修改如下

//$url = $isSecure ? 'https://secure.gravatar.com' : 'http://www.gravatar.com';
$url = $isSecure ? 'https://secure.gravatar.com' : 'https://secure.gravatar.com';

然后保存离开就可以啦~(๑乛◡乛๑)

最后,原谅我,实在是懒得改了,才用这么暴力的方法解决问题~


p.s. 最近有点想看看php的书换换口味,有没有好的入门级的php书可推荐的~


逐渐消失的文字技能

现在是2014年12月5日22点46分,我无法肯定这篇日志什么时候才能真正写完并发布出去,但我仍在努力。总是这样,每时每刻都在不断的被各种事物所触动,总有想写什么的冲动,但是当真正提笔准备挥毫的时候,突然发现,刚刚那么在意的事情,也许是大惊小怪罢了。

很久以前、曾经,在那个博客大红大紫的年代,似乎每天都有说不完的新鲜事,就是想写下来。那会比较流行的新浪、雅虎、163、百度,哦还有msn,都有很多人在上面说着各式各样的故事。那时候,我先是一头扎进了百度空间,被它可以自定义模板啥的说吸引,好像还是初中吧,天天的,跟神经病一样,一放学就往电脑上渣。好吧,不是打游戏、也不是看动漫,就尼玛捣鼓css(=。=)。这要是搁现在,估计也是醉了吧。也分享了不少自己做的主题,虽然从现在的审美来说,绝对也是丑到一个境地了,哎,一世英名啊~但是,那会看到别人用了自己分享的残次品,心里总是特别开心,也算是小小的幸福感了吧。那会真的是特别喜欢写文,总是没事自己写点故事啥的,虽然不是啥结构严谨、荡气回肠的文章,好歹可以自豪的说,在我混沌无知的年纪,绝对没写过什么奇葩的玛丽苏文来。哈哈哈哈哈哈哈.....一直在百度呆了很久很久,大约2-3年吧,然后就是空间改版的时候了吧。新空间不再能够自定义模板,QAQ就这样,我小小的、小小的幸福也被夺走了,然后我就义无反顾的一头扎进了博客大巴,小清新的大巴一度是我的挚爱啊,因为能够自定义模板= =。

感觉一直在咕噜咕噜扯皮,完全没有主线剧情。其实我并不是想吐槽自己的博客心酸史,尤其是在明个还要加班的夜晚。(¬_¬)现在这么理智的我已经无法分析出来,那个能被我吐槽千千万的中二的我,确比如今的我更会写字,更会表达,究竟在什么时候,文字技能被我丢弃在路上了呢。

前几日,同事L表示他在博客园久违的开了个博客,在那个满是技术大触的地方,他说是用来转载一些有用的资料的同时,也写一些自己的感悟。(˘•灬•˘)于是乎,我将其订阅了下来。几日下来,他跟我说,那天他确实准备自己动手写一些Qt的教程、感悟的,提笔了,却突然觉得没什么好写的,也不知道从何下笔。你看,不光是我,好像还有人也一样丢掉了这个技能。

也许是,我那程序员思维吧,这也说不定,富有感情的文字,并不能更好的帮助计算机理解我想要他帮我做的事,却不如直接了当的表达出来的好。又或者是,浮躁且快节奏的社会,并没有留下太多的时间,让我细细斟酌、提笔挥毫、放空自己,做点不一样的事。还是说,我已经渐渐远离小时候那份纯真,那份觉得可以跟所有恶势力抗争的本心。或许原因永远也无法知晓,但唯一能感受到的是,我不再不愿不能也无法像以前那样肆无忌惮的写作了...

网络是一个说近就近说远就远的地方,一直以来总是不想在上面吐露太多太私人的情感,好像那样就会失去什么。可,一段时间过去,缺发现遗忘了之后,再也找不到任何痕迹再去审视当时的自己,再去回顾当时的得与失。慢慢的,很多想说的话不知道该如何谈吐,不知道如何下笔,就这样只有树洞知道,再也不知道。

这篇吐槽的缘由是,上班的时候看了很多设计从最初什么都没有很不精细、再到各种可以乱真的拟物化设计、然后再次回归到扁平化设计的文章。然后由此想到互联网的发展,从大红大紫的博客到微博、再到图片式博客、然后再到简书、Medium又试图把大家的视线再一次拉回到文字上面来,找回文字的力量,因此引出了我这长长的吐槽来。不过如果换个角度来看这两件事,突然觉得圆是一个很神秘的图形不是么,你看事物的发展都是这样从最初到极致,然后再一次回归本心,一次一次这样不断旋转不断发展。不过这就不是我现在想要吐槽的了,也许下一次、某个时候,当我再有更深的感触的时候,或许是一个不错的槽点。

现在,从现在开始,我要开始努力把一件事写的简单又复杂...


一年记。

这就是一年了罢、从建站到现在,对于像我这种做事毫无持久性的人来说,也算是值得赞赏的一件事了。

这一年发生了不少的事情,于是如果按照一般的总结写法,在一堆废话之后,该说一句总结如下,然后开始1、2、3了。不过,像我这么懒的人来说,这么写简直是太!麻!烦!了。所以,还是按照吐槽的一般标准来写吧~

我是一个很怕回头看的人,在思考一遍当时的情节与发展,总会让我再一次处在当时的心情里。

3月,时间终究是带走了我的亲人,刚知道消息的时候,大哭了一场,后面慢慢回归平静,一遍遍对自己说,这是正常的生命旅行的终点而已、仅此而已。本以为我能冷酷的说再见,而在遗体告别的最后一刻前,终究还是克制不了满溢的泪水,一遍遍、一遍遍...我不知道,在真正生命尽头的地点到底会经历什么,是否上苍真的有神明存在,今天的我只愿,在那一刻,感受不到病痛、安详而温暖的沉睡、消散在天地间、回归虚无...

6月,开始不断的加班,日子感觉一眼望不到头,留在视线中的只有烫金的加班二字。从那会开始,基本每天都是8.30-19.30下班,单休,有时候周日也不休。当然,在boss极度的压榨工作之下,虽然是刚转去Qt开发的我,是进步大大滴。虽然直到现在我仍认为,这种进步对我下份工作的帮助甚微。通俗点说就是,我使用了大量的技能点,却点亮了各种各样的技能,但是每样技能都没点到满,=。=这听起来就有这种淡淡的惆怅。

10月,终于不断的加班加到的高潮,好不容易上一个项目眼看就到到底了,可以轻松几个日子了。我们又被叫回来做另外的活了,于是开始了噩梦一般的封闭开发。哎、一周七天,天天9点多上班到晚上11点多。还不让出去,天天就让对着个电脑干活啊啥的,日子简直都没法过下去了的感觉。当时,想要跳槽的心都有了,如果用%来表示的话,就是99.98%,不过在懒惰大神的指引下,还是忍住了。

今天,我仍然坐在公司里我的位置上,打着代码发着呆、嚼着口香糖加着永远加不完的班、反思着我为啥还不走这一事实。哎,我咋那么懒...

转眼,又见年根。


容我冬个眠

好多月没吐槽了。
实在是因为……懒。
最近想对主题动一下刀。
不过,容我先翻个身,再睡一觉~


我们都要好好的

深秋了,长日蜷缩在工位的我感觉不到任何季节的变换。一天天的就是起床、早饭、上班、午饭、上班、晚饭、上班、睡觉。我彷徨过,无奈过,却也无法改变什么。来之前,同事间笑谈说,就跟监狱一样。现在看来,还是有不同的,起码我们可以网购<( ̄ ﹌  ̄)>
大家都在干活,就我在忙里偷闲,用sublime吐槽,哈哈~没办法,感觉今年从7月份开始就一直在加班,一直在过没双休的日子,最好也就是单休了。于是现在我虽然看着文档,但是什么文字都没看进去,满脑子就俩烫金大字“酱油”。真是不喜欢这样的状态,工作是生活的一部分,但于我,绝不能成为生活。
同事A最近在纠结着打算辞职,各种纠结,各种不爽快,他谈了个妹纸,是异地恋,前几周,妹纸家里出事了,却正逢我们开始封闭开发,他无法去在妹纸最难过的日子陪妹纸,因此而不开心,况且这俩月工作强度那么大,他们十一中秋一共就放了1天半,而工资也不多,就想跑路了。
我也在反思,为啥我要留在这,这里有什么吸引我。可能,也是要走的时候了。可以遇见的未来,马上的11/12月也是逃不过天天加班的命运。真是,真是,不喜欢这样的节奏。本来从年初就在打算,要在暖和的日子里,去外面走走看看。现在,这些也不想了,我就想在太阳满照的日子里,好好的睡一觉。
这里,突然又想起了另外一个妹纸,同事B。她貌似一直肠胃不好吧,之前加班加到病了,先是在偏蔽的卫生所,说她急性肠胃炎。然后晚上开始发了烧,最后终于大晚上跑老远去了医院,最后说是阑尾炎,可能要做手术了吧,哎。
好吧,我去工作去了,终有一日,我要在阳光里,听着最爱的NewAge音乐,旅行上路。


关于 ubuntu 14.04 SunPinYin 没法输入 ue 的拼音的解决办法~

之前一直发现sunpinyin无法输入ue的拼音,像月啊、学啊,都只能输入首字母才能打出来。忍了小半年后,今天终于忍无可忍了,于是,解决了~撒花~终于小二货可以愉快的输入好好学习了~
据说,造成这样的原因是因为ubuntu打包的时候打包错了还是啥的,反正解决了~
解决方案如下:
1.下载最新的sunpinyin库 sunpinyin-data_0.1.22+20131212-1_amd64.deb[戳我下载]然后安装~
2.重启sunpinyin
$sudo ibus restart
就是这样简单,so easy~~


哎。加班!

从昨天起开始了又一轮漫长的加班ing...
每天基本12小时的班,
no weekend,
好累&好想睡啊...
哎,不敢多说了,下次继续,我这上班偷偷偷懒呢^3^
今天是2014.10.11.


又见周末,所有人都放假了,除了我们几个(。T^T)。
连续好几天的帝都的雾霾终于散去了,
在会议室看着远处的山脉,内心不是一般的悲哀,
雾霾退散~
好想出去玩儿啊~
今天是2014.10.12.


谷歌谷歌,酷爱到碗里来(/^3^)/

以下内容为转发,记录于此作为个人使用方便,若侵权,请留言,必删除之!

源网页info
title:大陆免翻墙访问谷歌地址
url:[戳我]

Google https://www.glgoo.com/
http://64.233.165.46/
http://173.194.64.84/
http://193.192.250.158/
Google https://wen.lu/webhp?hl=zh-CN
http://64.233.181.49/
http://212.188.10.167/
http://64.233.168.41/
http://193.192.250.172/
http://212.188.10.241/
http://209.85.225.97/
http://84.15.64.35/
Google Scholar http://scholar.glgoo.com/


反正我试了几个能用的样子,目前,20140925,不知道能存活到哪天~
QAQ 木有谷歌的日子很难熬啊。
以前谷歌提供的验证码啊、code啊、论文啊,都挥挥了~