扫码阅读
手机扫码阅读

程序员练功房14天编程训练营总结

236 2023-08-14

其实我早就应该毕业了的,只是看到最后一天的主题是写博客,我就自愿推迟了毕业。这次还是熊老师发话,才赶紧打开公众号假装总结一下,要知道学生不听老师话,是非常不对的。

废话不多说,直接上代码,看看我这14天的训练营有没有白上(下文提到的代码,均可以在我的个人GitHub仓库里找到,欢迎拍砖交流:https://github.com/wanyouzhu/kata)。

开始训练营前,已经撸过多次Args了,其中一次的部分代码大概是这个样子

看起来还好,不是吗?我觉得我平时写代码还算挺注意的,有刻意保持小函数和少缩进的习惯,所以整体看起来还挺“整洁”。那么我们再看看相关的测试代码:

上图一出,估计有人就要开骂了:如此简单的问题,居然还用上了Mock!然后还有不少像下图中的“数据类”:

以及不少“过长的函数”:

如果以上你都可以忍受的话,那我还可以告诉你一个数据——我第一次撸完Args花费的时间:从开始写第一个字符到最后完成所有产品代码,一共花费8小时有余。熊老师说现阶段国内一般程序员的平均水平是4小时左右,我看我当时不能算作是一个程序员了。

以上是参加训练营之前的代码,那么临近毕业时又是啥样呢?还是直接上图:

主类已经变得很小了,并且各类的代码数量相对平均:

甚至连最小的类Flag也开始有了自己的行为:

自我认为代码质量进步巨大,然而进步更大的是用时:最后一次计时,秒表上显示的完成时间是34分钟!已经远远超过训练前的10倍!

如果说这个Args的对比,在视觉上不过瘾,那么再看看这个Anagrams的对比,一定会让你大开眼界!同样,先上早期版本:

对,所有逻辑都在这个Anagrams类中,它好像成了一个上帝类,我想应该不会有人喜欢这样一个类。原生的Collection对象到处飞来飞去,缺失的对象们在抗议。

测试类看起来也不错,完美的箭头形状确实少见,射穿一堵墙应该不成问题。

经过短短几天的训练,在临近毕业之时,手中的Anagrams就悄悄的变成了下面的模样:

产品代码代表:

测试代码代表:

产品代码各概念职责清晰,且大小相当,测试金字塔也悄悄的涌现了出来。

练完两周后,我最大的感受只有一个:我是太TMD缺练了!区区两周的间歇性练习,就可以有这么大的提升,要是真“投上两万个球”,那我岂不是成了高手?可喜可喜!

最后,借这个机会再次感谢熊老师和他的练功房,让我这学了尽十年的TDD终于有了突破。现在我已经能够将TDD应用于实际项目当中,大幅提升我在项目开发中的自信,远离996,指日可待啊。

原文链接: http://mp.weixin.qq.com/s?__biz=MzU4MjYxNTY1OA==&mid=2247483693&idx=1&sn=79bf4d43411b974ded315455eb4f4275&chksm=fdb4d628cac35f3e90a3a0b588cd303c8cf679f6063b6d95152066a4b956124053a64848c090#rd

突然发现身边的朋友都有了自己的公众号,不甘落后,所以也弄了个。 欢迎你的到来,朋友!

1 篇文章
浏览 237
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设 白皮书上线