三十多天的寒假是我有生以来最长的寒假,现在还清楚记得自己在寒假前给自己布置的许多任务。时间不等人,等我现在总结的时候,发现自己还是有许多遗憾,自己还是总是给自己留下遗憾,也发现自己有许多收获,自己也总给自己留下了收获。不过不管怎么样,这段时期的结束,就让我来给它做个备忘录吧,新的学期马上就要开始了,给新的学期留个参照也好。

(一)PRP项目

上个学期的PRP项目没有完成,小组里成员在放假前,安排好了假期里的工作和任务,假期里主要的任务是完成Portal各个方面的编码。围绕着这个大主题,进而来学习一系列的知识。

建立Portal服务器,我选择用自己比较熟悉的tomcat和一个底部框架做的非常不错的Liferay-portal-pro-3.1。假期里通过使用,阅读源代码,去Liferay的forum,了解了一些Liferay的特性,使用方法以及某些技巧。自己也在实践中写了几篇文章,放到自己在csdn的blog上,希望自己的收获对别人也有所帮助。因为自己在使用Liferay的时候遇到了一些问题,找文档的时候也很辛苦,国内关于Liferay的文档也比较少。一个比较好的产品,如果开源,它的服务往往都是收费的,比如说Jboss。

对于开源的软件,往往都有几个例子用来展示或是说明这个开源软件的功能或是使用方法,这些例子具有比较高的代表性,值得学习――通过读源代码,来了解功能的实现。开始的时候不知道如何写Portlet,不知道如何在Liferay里写Portlet,而Liferay里自带了许多Portlet的例子给了我很好的参考。我选择了一个天气预报的Portlet进行学习,在这个学习的过程中,我不但了解了Portlet的编写,而且自己也通过编写自己的Portlet,学习运用了SOAP的使用,学习了Axis。在阅读源代码的过程中,代码中用到的一些结构,一些design pattern,一些技巧,对自己的编码水平的提高都有很大的帮助。比如说Liferay里使用了Struts在实现MVC的架构,把Portlet里的doView, doEdit, doHelp用Struts的action来包装,通过好几个部署描述文件来松耦合代码,而对这种结构的理解就需要阅读某些类和文件的源代码,从中可以体会一些代码中表现出来的精髓。

由于这个PRP项目要三个部分合作完成,假期里由于种种原因,三个部分并没有完全组合进行实验,所以这个项目在假期里还是没有完成,是这个寒假最大的遗憾。

(二)关于测试

非常幸运,放假前我从图书馆借到了一本关于测试驱动开发的书――《测试驱动开发使用指南》。这本书是我假期里最爱不释手的一本书,原因是它真的很适合那些对于单元测试的概念、使用方法、以及它的好处很模糊的人,比如说我。

这本书中有大量的代码,使用JAVA和Junit。如果你只是看看这些代码,可能会觉得很枯燥,但是如果照着这些代码实践一遍,不只是盲目的copy代码,或许就会体会到它的乐趣和价值。

在这本书上,用一个简单的java application来说明测试驱动开发的全过程,而这个全过程,对于我们以往做的一些大作业,是一个很好的范本。从需求到测试,从测试中表现出需求是否实现;从测试到编码,从测试中反映出代码的不足;循环增量式开发,如何从简单功能到复杂功能的实现。作者要表现的精髓都在这个过程中!

通过这本书,让我体会到了一些原来 从 老师那里听来的一些话:

“测试要跟编码一起,一边编码一边测试,单元测试要交给程序员来做。”通过书中的例子,让我充分的理解到这句话的道理。程序员对自己的编码中的基本功能进行测试,能保证自己编写代码的正确性,而对基本功能的测试,就好比a+3 == 6成立的条件是a == 3。只有最基本的功能保证无误,在这些基本功能上建立的复杂逻辑才能保证正确。平时写JAVA代码时,一个字符串变量s和一个字符串的比较经常会写成s == “string”,放到if的条件判断里都是false,而这种错误往往很难发现,通过单元测试就可以避免这种问题。使错误底层被发现并解决。程序员了解自己的代码,对自己写的代码进行及时的单元测试,简单而又有效率。

“编码和测试所占的时间,差不多一半一半”书中虽然是大片的代码,可是只把这个java application的代码拿出来,就少了一半多,光从数量上看就差不多一半一半了。因为每个类都有对应的测试类,类中每个功能函数,都有对应的测试,编写这些测试确实也占了很大的比重。这就能看出,很多程序员不愿意写测试代码,因为写完测试代码,有多了一倍的代码量。

在编码中,会遇到一些重复的代码,如何对这些代码进行重构,书中也有一些指点,而重构的好处,在测试代码执行的时间中就能稍微表现出来(测试代码也会重构的)。通过一个简单的例子来说明测试驱动开发的过程,但是你得到的远不只这些,这就是我的最大的收获。

时间又走到了一段时期的尽头,前面又是新的路相关推荐

  1. php 间隔时间执行任务,PHP间隔一段时间执行代码的方法

    PHP间隔一段时间执行代码的方法 发布于 2015-11-16 18:26:46 | 230 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  2. 金和oa:自定义表单函数计算一段时期内的工作日

    今天介绍一下在自定义表单时如何去计算两个日期之间的工作日.这是很常用的一个js函数,比如在加班中,比如在请假中... 1. 计算两个日期之间的工作日,写附加元素页面 <script langua ...

  3. 深度 | 人脸识别在安防领域的路还有很长时间要走

    https://www.toutiao.com/a6680012193242546701/ 「依图太寂寞了,我们打算来陪陪它」,马原开了个玩笑. 在当下的安防市场中,没有一家人脸识别公司不把自己称为「 ...

  4. 【SQL】查询一段时期内的交易流水记录

    对于如下一张交易流水的样表,我们如何去筛选一段时期内(本月,上个月,前三个月...)的交易流水记录呢? 本月记录查询 首先我们需要限定月份和当前月份相等,如下所示: SELECT * FROM tim ...

  5. 【编程科普】为何电脑的时间有时候走不准?一秒到底有多长?

    这篇文章我想和你聊一聊「时间」这个话题. 时间总是在不经意间流逝,我们在写代码时,也经常会调用「时间 API」,你有思考过这背后的原理吗? 关于时间的问题还有很多,例如: 为什么计算机的时间有时候「走 ...

  6. 「版权流氓」终结者:6天时间,堆出687亿段旋律

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 世界上所有的音乐,都在这个网站里了. 准确地说,是一个八度内,所有音符的组合方法. 两个程序员Riehl和Rubin,用6天时间,以每秒30 ...

  7. 恋爱计时:只要时间在走,我们的爱就在继续

    恋爱计时 我们的爱情还在继续:恋爱计时会和时间一样一直走下去 突然看到正文活动,自己也来分享一下,作为小白的瞎操作.很久以前学习到的一个PHP代码.恋爱计时 <!doctype html> ...

  8. 计算机运行一段时间黑屏,电脑隔一段时间黑屏

    随着科技的提升,现在基本每个家庭都会有电脑,对于电脑的使用不是很多朋友都熟悉,有时候电脑会隔一段时间就黑屏,如何处理?下面为大家介绍电脑隔一段时间黑屏的解决步骤. 电脑隔一段时间黑屏 步骤1.可能的原 ...

  9. 经济衰退时期的对比:如今更像历史上的哪段时期?

    美国现在正式陷入技术性衰退,之前第二季度 GDP 增长出现负增长:-0.9%.让我们来看看最近 5 次衰退,以及这一次可能会有何不同. 衰退被定义为 "一个暂时的经济衰退期,期间贸易和工业活 ...

最新文章

  1. layer 弹不出来_红米k20pro摄像头弹不出来怎么办?昆明小米手机维修教你解决
  2. SSH下的组合批量增加
  3. SQLAlchemy 几种查询方式总结
  4. 蓝桥杯 试题 基础练习 芯片测试——12行代码AC
  5. Qt中translate、tr关系 与中文问题
  6. 个人总结:网站优化之title、meta、keywords写法
  7. 团队二阶段冲刺个人工作总结7
  8. Winrar 5.60 beta 4 个性破解注册码(2018.5.22)
  9. Objective C 的 private
  10. DayDayUp:计算机技术与软件专业技术资格证书之《系统集成项目管理工程师》软考考试简介及其知识点架构总结、课程讲解目录(立项-整体-范围-进度-成本-质量-人力资源-沟通-干系人-风险-采购等)
  11. Zbrush 4R7 P3中给类模型怎么快速隐藏
  12. 电子设备在物联网的上发展趋势是怎样的
  13. 优课在线 实境英语作业1Unit 1-5
  14. 个人免签码支付源码|服务监控模块强大后台功能全面
  15. html5 中scale函数,javascript中scale怎么使用?
  16. Python基础 PyCharm如何新建项目
  17. 《作文的顿悟》:“中考高分”和“写作素养”一个都不能少
  18. 提示语默认显示标签:placeholder
  19. 推荐一款Win10桌面分屏软件(PowerToys)
  20. 直播报名|Flutter在「饿了么 ICBU」 的研发与沉淀

热门文章

  1. 赏析“百度大脑事件图谱:洞察复杂世界中的事件知识”
  2. 文件服务器 s3,AWS S3日志文件通过服务器上传到elk(示例代码)
  3. 【哈希-字符串匹配+模拟栈】SCU - 4438: Censor(哈希详解哈哈哈)
  4. 串口(SerialPort)的使用
  5. 视频教程-php初级到项目实战-PHP
  6. 华为S5720-52X-PWR-LI/S5720-52X-LI交互机堆叠和VLAN配置
  7. 20190配电网设备标准化设计 0.4KV低压开关柜中 综合监测装置要求
  8. badboy录制时弹框提示“当前页面的脚本发生错误”
  9. 类似qq分组栏-动态分组
  10. 果园机器人作文开头_果园机器人作文200