7月21日参与了 BJDP北京的活动
在北京首次参与能够参与动手编程活动,感觉挺不错的。
本次活动共有三项内容

1.      金锐分享单元测试的Mocking技术,20 mins

2.      伍斌分享代码内在质量分析工具SonarQube,20 mins

3.      运用TDD结对编程来解决八皇后问题,120 mins

Mocking技术方面,之前看测试驱动的IOS开发其中有介绍到一些Mock技术,Mock是在写单元测试时采用的一种模拟对象行为的方法。
我认为其实如果写测试,一定会制造一些假对象,或者假数据。
在测试驱动IOS开发这本书上作者就先自己实现了一些伪造对象。
与使用OcMock进行了一些对比。
JMock或者EasyMock提供了一种比较容易使用的Mock实现。程序员可以少花一些精力构造假对象。同行来的人对JUnit和JMock的异同有些搞不清楚。我觉得JUnit是测试框架,而JMock则是在JUnit框架下写测试用例时可以使用的工具类。这是个人看法。
另外就是也讲Stub(代码插桩)技术和Mock技术之间的区别。
我有一些个人理解,我认为代码插桩技术主要是通过在工作代码中插入了一些冗余的配合测试的代码。
而Mock技术则不需要与工作代码放在一起,它是独立于工作代码的。

后面的SonarQube则是代码质量分析的工具,我觉得比JLint这样的静态分析工具的区别主要在于能够提供分析报表。并且可以与持续集成环境整合。我觉得我们的项目也可以使用这样的代码分析工具。其中有其他参加者提到SonarQube实际上是基于FindBug的。下来也可以了解一下FindBug相关的内容。

最后进行了八皇后问题的编程实践。我和子豪兄一组。

我负责提供解题思路。子豪负责编程。报名活动的时候我已经简单构思了这个程序,但是没有去写代码。我发现虽然之前学过几天JS,回过头来再写JS程序还是想不起来它应该怎么用。所以学了一门语言还是要经常使用。后来听伍斌(本次活动的组织者)、还有金锐分享了还有另外一位参加者分享了他们的解题思路。都非常的好。
我的思路甚至都没有去考虑如何得到完全解。
然后在命名方面连斜线这个英文应该怎么写都不知道。
哈哈,不过没有关系,我本来就比较懒。

最后讲讲体会,参加了这次活动我觉得有不少收获,第一获得的新的知识,比如Mocking技术,又比如SonarQube这样的工具。其次是能够操练自己的编程技术。所谓刀不磨不快,我们天天都在用刀,但是却从来不磨刀。就我而言我是一个很懒的程序员,上班的时候写代码主要是完成任务为主,因此不会去考虑如何全面磨练自己的技术。下班之后,基本上就不会去摸代码了。通过活动的形式,能够给程序员一定的动力,提供一个共同进步的环境。不过我的想法是这样的活动如果能沟做到线上线下结合就更好了。像是编程练习题这样的部分,假设我是一个不能参加现场活动的程序员,自己对这这个题目写了一段程序,如果能与其他人探讨是非常好滴。

BJDP结对编程活动的更多相关文章

  1. 2017-2018-2 『Java程序设计』课程 结对编程练习_四则运算

    相关测试过程截图(JUnit) JudgeTest:对计算及将整数化为分数的测试 SuffixExpressionTest:中缀转后缀的测试 RationalNumberTest:对RationalN ...

  2. 结对编程--基于android平台的黄金点游戏

    游戏内容: 阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或1 ...

  3. 结对编程-地铁续(有种上个学期OO的既视感)

    我们组比较特殊..三人结对 github:https://github.com/qingchanghan/WPFUI_Metro po一张照片: 石浩然,韩青长.陈彦吉 (台式机真的很高端,分屏贼帅) ...

  4. 结对编程项目——四则运算vs版

    结对编程项目--四则运算vs版 1)小伙伴信息:        学号:130201238 赵莹        博客地址:点我进入 小伙伴的博客 2)实现的功能: 实现带有用户界面的四则运算:将原只能在 ...

  5. 关于软件工程结对编程作业 PairProject : Elevator Scheduler(电梯调度算法的实现与测试)的总结

    1)结对编程队友 1106xxxx 张扬 1106xxxx 杨军 其中,此项目的编程实现主要由前者完成. 2)关于结对编程 结对编程的优点: 最直接的一点:在结对编程中,由于有另一个人在你身边和你配合 ...

  6. 结对编程—黄金点游戏WinForm单机版

    本小游戏场景来自邹欣老师的<移山之道>一书: "阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫"黄金点"的游戏: ...

  7. Week4 结对编程

    1.照片 1.1  结对编程参与者:李文涛.黎柏文 1.2  展示照片 2.结对编程的优点&缺点 2.1 优点 2.1.1.两人分工合作,减少了工作量 2.1.2.结对编程的伙伴往往能提供不同 ...

  8. 结对编程——关于Fault、Error、Failure程序设计

    一.问题描述:         构造程序,分别是:         •不能触发Fault         •触发Fault,但是不能触发Error         •触发Error,但是不能产生Fai ...

  9. GUI、模块化与结对编程(homework-03)

    摘要: 在本次作业博客里,我将主要阐述作业3的收获.作业3表面是将之前的程序转换为图形界面(之前程序见http://www.cnblogs.com/shone/p/3348372.html),然而本质 ...

随机推荐

  1. Python 学习入门(28)—— 服务器实例

    在新的Python 3.x中,BaseHTTPServer, SimpleHTTPServer, CGIHTTPServer整合到http.server包,SocketServer改名为sockets ...

  2. oracle 日期字段的处理

    a. oracle plsql 如何查询两个间隔日期之间的数据 1) 方法一:Select * from Tables where time >= to_date('2013-01-02 19: ...

  3. maven 通过nexus创建工厂的配置

    访问中央工厂的地址:http://localhost:8081/nexus/index.html#welcome   admin.admin123 查找到自己配置的maven仓库的位置,编辑setti ...

  4. String.Format使用方法

    1.作为參数   名称 说明   Format(String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项.   Format(String, ...

  5. Struts2学习笔记1

     一.下载struts2.0.1 http://struts.apache.org/downloads.html,下载struts-2.0.1-all.zip,这个压缩包中包括了开发struts2所需 ...

  6. ioc容器

    对于容器而言需要满足两个方面: 1.全局唯一 2.无论何地都可以进行对容器的访问 对于Spring而言,BeanFactory则就是这样的容器,只不过它过于底层.在我们的日常开发中还是使用Applic ...

  7. Linux 内核进程管理之进程ID 。图解

    http://www.cnblogs.com/hazir/tag/kernel/ Linux 内核进程管理之进程ID   Linux 内核使用 task_struct 数据结构来关联所有与进程有关的数 ...

  8. ArrayList的深度copy和浅度拷贝

    ArrayList的浅度拷贝方式: 通过Collections.copy方法实现浅度拷贝 ArrayList<GuideGroup> questionGuideGroupList = ne ...

  9. hdu 1563 Find your present!

    Find your present! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  10. JQuery事件的绑定

    关于jQuery事件绑定html: <a href="#" onclick="addBtn()">addBtn</a> <div ...