重构使我的下一步更加容易
本周任务是重构我的OpenSSG代码。但是,我两周前重构了代码的大部分部分。现在,我看不到太多要改善我的知识。自从阅读《 Clean Code
》一书以来,我对重构有很大的兴趣。我看到了以可管理的方式分解代码的美丽,更好地命名任何人更轻松地理解代码,并创建一个函数以减少错误并在单位测试中找到错误。由于我有一个合作社,我意识到重构的重要性。我可能必须再次阅读Clean Code
才能学习我现在忘记的东西。
发送对象而不是传递多个参数
在实现功能时,找出在何处以及如何重构代码并不容易。但是我知道,当我测试openssg时,有些不对劲和错误。第一个问题是过载功能太多。他们做的几乎相似。只有可选任务是不同的。当我修复一个地方时,我必须小心地找到所有添加相同修复程序的地方。找到我想念的地方很可能会犯一个错误和耗时。我记得一篇文章解释了重构。策略之一是将参数作为一个对象。因此,我创建了Options
类,它解决了很多问题。我同时在编辑器上打开了相同的文件,以添加重构代码,同时仍保留旧的代码。因此,我不知道通过介绍Options
课程可以减少我的巨大FileUtilities
课程。一旦确保新的代码正常工作,我就很高兴地删除了我的超载功能。我可以看到这个过程减少了很多令人头疼的代码。
隐藏详细的逻辑内部功能,并给功能一个好名字
然后,我浏览了整个文件,可以在其中制作功能,以便它可以更可读和可管理。我使arArgsValid(String[])
功能包含所有逻辑,以检查是否提供了正确的选项。我尝试创建更多的检查功能,例如hasTitile(String[])
。我认为,当我们隐藏内部逻辑并显示一个好的功能标题时,boolean
返回功能看起来更清晰。另外,我试图在FileUtilities
之外删除一些解析逻辑,然后我将其命名为Parser
类。我剪了任何没有在FileUtilities
中写入文件的东西,然后将其移至Parser
类。这也减少了很多代码。而且我的代码看起来好多了。每个文件大小都更接近。
❯ wc -l src/* ─╯
227 src/FileUtilities.java
168 src/OpenSSG.java
70 src/Options.java
90 src/Parser.java
6 src/Release.java
561 total
持续进行更好重构的旅程
最后,我检查了所有变量,以查看是否有模棱两可的或错误理解。我通常会尝试正确命名。但是,当我全部更改代码并不断测试时,我将重命名的作品供以后进行。现在我很满意,尽管我仍然认为我应该创建更多功能。我现在没有明确的答案。我应该继续阅读更多的代码和书籍,以更好地进行重构。