爱生活,爱编程
今天有幸参加了西安第一届Coderetreat活动,在昨天之前从没参加过任何社区活动的我对这些充满了好奇和激情,经过两次Coding活动,我知道了原来编程还可以这样。
当我还是一个菜鸟的时候,当然现在依然是菜鸟,总觉得这种活动离我好遥远,应该都是一些大神间的灵魂碰撞吧,什么时候我才能参与其中呢?然后...重点来了,终于等到你~还好我没放弃~
咳咳,说正事。知道这个活动是在小波老师的推文中看到的,而且是在前一天才报的名,来之前我就做好了被大神们虐的准备,毕竟小波老师认识的肯定都是大神,哈哈。
活动的开始并不尽如人意,早上因为司机找不上路,等了好久,心拔凉拔凉的呀,到楼下的时候有一种莫名的亲切感。
下面介绍一下今天的活动吧
1.主持人介绍
2.自我介绍,相互熟悉
3.提出需求
4.反复迭代以及代码分享
5.结束合影
前两个环节没什么好说的,直接上重点
以下便是今天的需求:
需求其实挺明确的,主持人进行了需求澄清后便开始了我们的第一轮迭代,每一次迭代式45分钟。我和我的partner按照之前老师教的方法,先画了task图,然后按照TDD的思想先写测试,后写实现,并且用了git小步提交。
整个过程似乎进行地很顺利,可是在实现特殊数字倍数问题上却卡壳了,一直在纠结该以怎样的数据结构来存储,还有就是命名的时候浪费了大量时间,命名真的是太烧脑了。。。然后第一轮迭代下来需求自然没有全部实现,看了其他人的分享,真的是大开眼界,各种语言都有,有用C的,C++,java,虽然这些之前都有学过一些,可都是些基础,时间久了也都快忘了,并且以前都不知道C里还可以写测试,好吧,请原谅我的无知。
在看别人代码的时候,我们也学到了一些我们最初没有想到的地方,例如单元测试的描述要简洁,测试要具有代表性,不要做重复的测试等,对我们的代码是很好的改进。
恩,除了众多优点以外,我发现了前辈们存在的一些瑕疵,比如有的人没有测试驱动开发的习惯,有的不太注重重构和代码可读性,代码中有很多重复和控制逻辑等,当然由于每一轮迭代时间有限,可能大家还没来得及重构,我就班门弄斧罗,嘿嘿。
接下来的几轮也是迭代和分享,我们实验室的“小朋友”们也踊跃做了分享哦,虽然不是很完美,不过大家交流学习真的可以发现很多问题,对自身的改进和提高有很大帮助。
我们组在最后一轮迭代的时候有了分享的机会,本来以为我们代码已经很完美了,重构了好几次,什么循环,if之类的也优化过了,整个也比较简洁,然后在分享的时候,老师们的反馈是由于我们在重构测试代码的时候过于追求简洁,使得测试用例过少,这样其实是驱动不出需求的,我们这才恍然大悟,明白了在重构代码的时候一方面要注重代码简洁,不做重复测试,但更重要的是要保证测试用例的完整性,分清哪些是必要的,哪些是重复的。
这也使我们认识到交流学习的重要性,只有不断发现问题才能有所进步。
借用之前某位学姐说过的话,你以为你以为的真的是你以为的吗?
恩,希望这样的机会越来越多,大家一起加油!
最后,来张大合影吧
网友评论