注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

LabATSS

关注自动测试软件

 
 
 

日志

 
 

学习一门新的编程语言—Ruby  

2015-11-28 11:16:30|  分类: 计量校准 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

首次接触到Ruby语言是在去年萌生自己开发网页的时候,听说Ruby on Rails开发效率是如何如何的让人惊叹,于是去图书馆借了两、三本书,仿照上面的例子在自己的笔记本WinXP系统上操练起来,但是由于Ruby on Rails框架实在是Web开发集大成者,融合诸多的编程实践内容,如MVC、Active Recore(ORM)、restful路由系统、SASS、coffeescript等等,虽然勉强自己跟着书上的例子可以构建一些简易例子,但是还是无法掌握其要领,因此学习一段时间后逐渐放弃了。


今年五月份,我所在的部门进行了搬迁工作,我有幸和单位另外一名兼职软件开发工程师分配至一个办公室里,他的编程软件语言是VB,当看到他用VB编写的网页机器人操控浏览器完成一些以往我们人工手动的计量管理系统任务(如自动插入控件Word文档,点击上传),给我带来了很大的触动和启发,“原来软件还能这么用!”,虽然以前听说过类似的网页爬虫和机器人自动完成数据内容方面的工作,但是当真真切切看到身边的同事完成类似的工作时,还是给了我震撼式教育。当时第一个念头就是我也要实现一个!(重复的再造一个车轮)。


我以往擅长的编程语言是LabVIEW,但由于该图形化编程语言的领域专属特点局限了它的应用范围,我需要的是一门可以操控IE浏览器和处理HTTP请求与响应的语言,LabVIEW的http处理函数还是在2011版本引入的封装cURL开源网络库,并且在解析处理网页文本方面缺少必要的函数库,于是又转向了曾经失败过的Ruby语言,这次找到的了两个gem(功能包或者叫函数库)watir和multi-part,watir是广泛应用在网页程序自动化测试领域中的标准函数库且特别针对的是IE浏览器,而multi-part是弥补Ruby的HTTP标准库不能提供上传功能不足的功能包。


首先学习并应用watir,简单直观的操作IE浏览器,解析网页的元素,模仿点击动作,花费了一周左右的时间完成了一个简易的网页浏览器证书审批提交机器人程序。这个小程序成为了一个学习Ruby编程语言的小小桥头堡,激发了我学习这门语言的兴趣,紧接着利用multi-part和Fildder2网页工具抓包查看工具实现了word文档上传功能,其中的网页编码问题困扰了很长一段时间,ruby语言环境默认是采用UTF-8的编码方式,而单位计量管理系统的编码实现方式为GB2312(java的SSE开发环境),UTF-8的编码上传到系统中后数据库中的中文为乱码,后在ruby语言环境中先行编码处理成GB2312后在上传,中文内容显示正常。


今年8月份为了实现证书全自动上传功能,需要获取一部分必要的信息,这部分信息以往是由计量检定人员存储在excel当中的,因此又学习和应用了FastCSV功能包,该功能包可以获取.csv格式的信息格式交换系统的对应表列相关信息,从而实现了证书全自动无缝连接上传,大大提高的检定工作人员的出具证书的效率。并且在处理word证书和excel信息过程中,大量使用了Ruby标准函数库win32ole,其中和前面的VB大内高手同事学习了不少VBA宏使用的技巧。后续又使用ruby的Http标准库、nokigirs网页文本解析库和win32ole库完成了常规模式证书配套信息的证书审核工作。目前我编写的证书报告上传功能程序服务范围已覆盖周边同事,大大减轻了出证书的痛苦,节约了大量时间,工作效率骤然提升,这有一个场景让我心动不已,当我用Ruby在两分钟内完成一个我以前通常需要40分钟手动操作的过程时,我深深又一次被震撼了,以前我浪费了多少宝贵的时间去做这些模式固定的手动操作啊,编程序真的是“勿以善小而不为”,就从身边的小程序做起,从提高效率入手,为自己和他人踏踏实实的编写实践程序,而不是学着高大上的编程术语,想着都是系统级别的复杂程序。(后期提供一段电脑截取视频)


在完成上述小程序的编写后深深体会到ruby这种动态“胶水”语言的开发效率与便捷,丰富多彩的功能函数包库(gem),清晰明了的语法结构,开源带来好的学习模版,学习一门新的语言最好的方式就是能在你日常工作中把它用起来,当编写好的软件工具能够给你提供真真切切的实际便利时,就形成了良好的正向反馈,特别是自习编程语言,以实际项目驱动,根据需要缺啥补啥的学习风格是最好的学习路径,按照我们常说的就是“跟丫死磕”。


目前正在开发一个小的网页系统(Ruby on Rails)以替代目前现有的excel表格信息格式,呵呵又回到去年的老路上了,但是这次与上次不同,这次是有实际工作项目需求的背景,并且在这一年的时间中,我学习了基础的数据库知识、并通过上述项目积累,熟悉了http 和html和Ruby基本语法,真正地可以按照自己的想法去使用Rails框架系统实现小的任务目标。


这就是半年来我学习Ruby语言的历程,现在感觉刚刚开始入门,学习还在继续,看看后面这门语言还能为我带来哪些神奇时刻!


最后补充说明一点,我的身边还有一群容忍度更高的同事,当我的丑陋婴儿程序在试用的时候,大家都给予了充分的肯定和鼓励,有了包容的“客户”,软件才能慢慢的成长!感谢我周边的同事给予我的帮助。


另外还有一段小插曲:当我用Ruby语言的multi-part库实现http文档数据上传功能后,也给我的VB大牛同事予以来的启发,他在VB的控件xmlHttp的基础上实现了类似的内容,脱离了原先的网页上传模式,也大大提高了稳定性和上传效率!这也就是我们所追求的相互提高、共同进步吧!当然这位同事非常的内敛,有空写写他的故事。
  评论这张
 
阅读(111)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017