当计穷力竭时请再坚持一下下----记一个ror新手学习体会

背景:
1.本人手工测试人员,代码能力约等于零。
2.公司、身边朋友无人精通ror(了解的也没有)。

涉及人物:
1.@大庆:培训的老师,他的博客:http://rabelapp.com
2.“大神”:一位深藏不愿意露面的高手,主要与其交流心得和思路,聆听其教诲
3.运维小童鞋:项目组内运维人员,欺压其搞定环境问题

流水账开始:
五月份开始自学ruby及rails框架,跟着railstutorial电子书学习,参加@大庆组织的小规模培训。总之,在有学习资料有人讲授的情况下,学习总是愉快的。书看完了,培训也快结束了,自己动手实践该开始了。
工作上正在进行的一个项目,每天通过检查对甲方提供的测试用例验证情况来跟踪项目进度。测试用例是手工编辑在excel中,excel分发给相关的开发人员和测试人员,每人根据自己当天的完成情况更新文档并提交,我对文档汇总并统计出测试用例各阶段情况后,再下发给项目所有成员,费时费力,还容易出错。决定就拿这个练手,通过ror把它做出来,部署上去,这样,相关的人可以进行操作,节省人力成本。
说做就做。分析设计需求,找“大神”一起讨论分析的结果,请@大庆一起设计程序的框架。脉络搞清楚了,接下来便是具体的实现,对于牛人来讲,前期的分析设计做好后,具体的实现是手到擒来,但是对于一个还没有“断奶”的新手来说,这里是痛苦的深渊。
开始动手问题就暴露出来了----眼高手低,总觉得自己是会的,但是不知道应该从哪里入手。一边翻书、上课时的笔记一边写代码,书上有的,讲课的时候有讲到的,脑子里总是有印象的,照抄出好,自己写也罢,总能写出来,书上和讲课没有讲到了,完全彻底傻眼,连个思路都没有。要写一个是动态关联(选择项目名称后,此项目所属的模块会自动显示出来),去google搜,总是查不到符合自己的要求的结果,好不容易找到个例子,却看不懂人家的源代码,在自己憋了一个星期无果的情况下抱着电脑去找@大庆请教。牛人三下五除二解决问题,并讲解原理,因为有憋了一周的基础,接受起来难度不大。问题搞定,继续向前啃,各种坑,各种挣扎。苦憋了一个月,一个丑陋的demo算是做出来了,只有添加、修改、删除测试用例而已,项目名称、项目关联的模块、开发与测试人员姓名都是通过数据库手工添加进去的。但是最最核心的功能算是有了。
继续完善,根据业务要求,需要有一个统计(按项目分类,测试用例的数量,进度各个阶段的数量等)。在数据库中直接写sql没问题,但是怎样通过程序把数据呈现出来,没思路,找“大神”,说问题,交流思路。思路找到了,动手做,呵呵,不会,取不出来数据源,闭着眼睛皱着眉回忆培训的时候@大庆讲取数据的思路,在纸上画出思路,然后一点儿一点儿试,ruby语言的map用法不会用,查map的用法,再试,统计总算做出来了^_^,外面雾霆天的天空感觉都是蓝色的。
接着完善,应用户真实实用场景要求,不同角色的用户登录后,只显示自己关心的东西。用户登录,这个好做。开工,开心的早了点,达不到要求,苦苦google了一天未果,退回来和“大神”继续沟通思路,最终定位,当前的数据库结构不符合要求,用当前的数据库结构实现不了需要,改数据库结构,改model,改、改、改,改完了,可还是实现不了,google不到好办法,等等,培训中讲过一个用法,和这个场景类似,尝试一下,成功了^_^。生命在于折腾啊!再去加上后台管理,用来添加项目、模块、用户及角色;调整样式,使它看上去好看一点儿,仍然有各种不大不小的坑,各种google、翻笔记搞定。
代码写完了,不能让它只留在自己的上,总得找个地方部署。简直是一个恶梦。本机环境是ios,培训时在ubuntu下练习部署,而公司的linux环境全是redhat,按照ubuntu的方式进行部署,各种见所未见的错误蹦出来,google真是个好东西(前提是翻过墙头儿)继续搜,先对需要部署的机器换源,再装依赖包,依赖包找不到的,装不上的,继续google,搜不到,换个思路换个条件再搜。拖着运维小童鞋折腾了两天,他跑路了。要死要活的折腾了一个星期,想死的心都有。环境总算是弄好了,开始部署程序,苍天啊!!!让我顺利点儿行吗?nginx服务启不来,趴在电脑前搜了一天,还是没有结果,算了,下班了,不弄了,明天继续吧,咦!看到一个办法,再试一下,死马当活马医,如果不行,明天继续,居然成功了,无法言语的开心啊。
前前后后折腾了将近两个月,项目进度紧张,白天忙得连喝水的时间都没有,只有用早上早起和晚上下班后时间弄,天天灰头土脸的,老大一直以为我是被工作所累,带病工作^_^。部署完成后,项目已经结束了。千辛万苦写的程序最终没能在项目上用到,但是这是自己动手写的第一个完整的程序,虽然它很脆弱,不那么好看,还有很多bug,代码也不优雅。写的过程中有很多次也想放弃,不写了,问题丢给“大神”去搞定吧,我等他弄好后直接拿来用就好了,每次都会手欠的再搜搜,再试试,有的时候真的就成功了。每次把问题搞定,感觉天也蓝了,水也清了,腰也不酸了,眼也不花了,那个问题就是小菜一碟儿。坚持一下,你会收获前所未有的喜悦。

总结:
1.学习ruby和rails,贵在坚持;
2.ror的门槛着实不低,要有思想准备;
3.要善于用google、Stack Overflow、牛人等来解决问题,这个不同于其他语言的学习。

PS1:项目可完成的主要功能
1.未登录情况下,可查看针对所有测试用例的统计;
2.管理员登录后,可查看针对所有测试用例的统计;维护测试用例(增(手工和批量导入)、删、改、查);维护后台(项目、模块、用户的增、删、改)
3.普通用户(开发、测试角色),登录后,可查看与个人关联的测试用例的统计;维护与个人关联的测试用例;



没有更多推荐了,返回首页