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