练习 12:复习

原文:Exercise 12: Review

译者:飞龙

协议:CC BY-NC-SA 4.0

自豪地采用谷歌翻译

我的疯狂方法的第一阶段对我来说是足够的,但不是为你准备的。我们现在要检查这本书这部分的策略,以便将来可以继续使用它。这个策略是:

  • 你需要处理每个项目的起步。
  • 为了隔离这个问题,你可以坐下来,在 45 分钟内完成一些小项目。这会把重点放在项目启动的问题位置,并让你重复该流程的一部分。
  • 当你处理这些项目时,可以确定项目启动时的问题的可能原因。这可以表现为你的计算机设置,工作环境,心理思维过程或身体健康的形式。还有更多的,但是这是最可能的原因。
  • 一旦确定了可能的原因,你就可以在 45 分钟 Hack 的小间隔内消除或改变它们。
  • 最后,记录和绘制指标,看看这些可能的变化是否有帮助,但也要确保它们不会干扰你的表现。

这不需要是正式的科学流程,它就是实用的。所有你需要的是,将它当作一本日志来帮助你客观地看待你的工作方式。如果你做的正确,你会遇到你以前没想过的惊人的事情。收集数据迫使你探索新的可能性,并扩展一些东西,你认为它们可能是原因。

请记住,这个个人指标的日志不应与其他人分享,特别是管理人员。管理者会试图将这些指标强加于你,这是不可行的,如果这样做,那么你应该拒绝。这些是你的私人笔记,没有人有权阅读 — 非常像日记或私人电子邮件。

挑战练习

最后的练习是让你选择最喜欢的工具,并花费一系列 45 分钟的时间,在一周或更多课程中优化它。使用你所学到的关于自己的一切,接受这个项目,从头开始,创造出更加健壮的东西。限制你自己 45 分钟一次,但不要把这个最终的项目当作一个黑魔法。相反,这是你正在开发的黑魔法的下一步。

在我完成一些快速的 Hack ,来测试一个想法之后,我将删除它或清理它。 如果这个黑魔法十分恶心,它就不能看到明天的太阳了,那么我就删除它,并以一个干净的开始重新实现它。 你不会忘记你所做的一切,并且必须解决这些问题,但是关注质量将会帮助你把它做得更干净。 如果黑魔法没有那么糟糕,那么我要做的就是在扩展之前进行清理。

将黑魔法转化为健壮的程序的一种有效技术是,使用自动化测试套件,将它的关键元素提取到库中。这迫使你将代码视为将在其他代码中使用的代码。我会这样做:

  • 浏览文件,并将我的“黑魔法意识流”转换成一组函数。
  • 然后我会使用 + DRY(不要重复你自己)重构代码,确保删除重复的代码,但不要太多。 零重复代码基本上是加密的随机的东西。
  • 一旦清理和运行完毕,和之前一样,但是带有函数,我将这些函数放进模块,并确保原始代码保持有效。 记住,不要在清理过程中改变事情,只需要重新组织并修复它。
  • 代码移动并再次正常工作之后,坐下来编写测试用例,确保我开始修改东西时,它能够在未来继续工作。

对于这个练习,你要选取你最喜欢的项目,并对它做这个“正式化”的过程。保持 45 分钟一次,并通过上述流程进行清理。当天工作时间最好超过 45 分钟,只需确保在每次会话之间休息 15-30 分钟。这是相同的时间框架,除非你不在 Hack,你应该认真对待。

研究性学习

  • 将你的黑魔法代码与你的正式代码进行比较。你是否通过清理找到错误?是否还有其他改进?
  • 如果黑魔法和清理后的代码在行为上几乎相同,那么你真的需要清理黑魔法吗?为什么你需要清理黑魔法,即使它的工作正常,并且可能更简单?
  • 在你经常运行的命令列表中,尝试一个新的命令(参见练习 11),并尝试这个完整的流程。完成一个快速的 Hack,然后清理它,使它变得正式。

深入学习

这里是其它命令的列表,你应该尝试在 45 分钟内做出替代品:

  • ls
  • rm
  • rmdir
  • mkdir
  • cal
  • tail
  • yes
  • false

尝试实现它们中的一些吧。