整理你的代码:KonMari风格


如果您曾经使用Netflix,互联网,或者最近与任何人交谈过,您很可能听说过Marie Kondo或“那个整理秀”,即与Marie Kondo一起整理。Marie的方法(KonMari)专注于在整理过程中激发喜悦。

在她的网站上如是说:

“KonMari Method 鼓励按类别整理,而不是按地点整理 - 从衣服开始,然后转到书籍,纸张,komono(杂项),最后是感情用品。只保留那些与心脏有关的东西,丢弃不再激发喜悦的物品。感谢他们的服务 - 然后让他们离开。“

软件的架构通常与家庭的结构进行比较,代码类似房屋的基础和构建块。因此,将我们的代码与家中的混乱进行比较是不是有意义?有些房屋有更多东西,有些更少,但几乎总有改进的余地。Marie Kondo专注于创造一个激发欢乐的有组织的家。我们开始做吧!我们可以从整理专家那里获得什么来使我们的代码更好地形成并激发喜悦?

第一步:识别喜悦。对某些人来说,这可能是抱着小狗的感觉,但对于技术专家来说,可能是打开文件并能够轻松导航它的感觉。确定在浏览代码时让您满意的内容,并希望在您自己的代码库中获得这种感觉。

正如KonMari所做的那样,让我们​​按类别开始分解。

挑战:打开您的项目,按类别组织事物。对于大多数代码库,我认为这将是功能驱动的,但使用最适合您团队的代码。

对于KonMari方法中的每个类别,Marie要求房主收集适合该类别的物品,将它们放在房间的中间,然后单独放置每个物品。激发喜悦的物品,放入“保留”的物品,否则放入“放弃”类别。

挑战:我们无法绕过丑陋的代码,但是让我们找出一件让你或你的团队对代码库感到困扰的事情(方法,文件等),并从中开始。这个挑战的想法不是去胭脂并开始重写整个应用程序,而是找到随着时间的推移而改进的领域。从困扰你的东西开始,专注于它,并在你做好准备时继续下一个项目。

  • 将大函数分解为更小的范围方法。
  • 更新变量和函数名称以提供更多信息。
  • 进行小的,频繁的更改和提交,更容易跟踪。
  • 简化类似或重复的代码。
  • 为了进一步采取这一步骤,我建议您查看“ 清洁代码”和“ 重构读取”中的实践。

第二步:在将这些基础知识应用到我一直在工作的代码仓储之后,我开始看到其他领域已做好准备。清晰代码原理揭示:以前测试过的逻辑并不容易编写测试。

挑战:看看你重构的内容,确保有适当的单元/ UI测试,添加任何缺失的,并删除任何不必要或冗余的测试。一个好的经验法则是首先测试逻辑。任何if语句,数据状态变化等


第三步:我发现改进的最后一个重要领域是删除不必要的视图。如果你有很多贡献者,随着时间的推移,事情会变得混乱。这只是一个发展中不断变化的情况。使用视图调试器,允许您查看应用程序层的内容,可以非常容易地看到冗余或从未使用过的内容。

挑战:需要识别具有一个子视图的超级视图,使超级视图变得不重要。识别隐藏且从未显示的视图。识别从未添加的视图等。清理这些视图将有助于提高应用程序的性能和维护。

再次,随意修改它以适应您的工作流程和团队的风格。不要重新编写应用程序,而是尝试将一个小东西合并到您当前正在处理的内容中。小的改进随着时间的推移而增加 我对从Marie,Clean Code和Refactoring阅读这些灵感的结果感到非常满意,我想你也会如此。如果您尝试一下,请务必回过头来分享它的发展方向!