[译文]如何才能不崩溃 #9: Mindset

原文地址;

http://inessential.com/2015/06/10/how_not_to_crash_9_mindset

你知道不写代码的保守派和你一样聪明(You know the old line about not writing code that’s as clever as you are),因为这可能需要一些更聪明的人来调试它?

我曾经认为我应该写和我一样聪明的人的80%左右的代码。留一点时间去调试。

但是在许多年之后,我想,我应该写和我一样聪明的人的10%左右的代码。我开始相信,真正聪明的是使代码非常清晰,并且使得代码明显看起来没有问题。

这就是为什么我有这样的规则:在主线程上做所有事情,除了可以被完美独立起来的永远不要使用 unsafe_unretained

这意味着我没有成为代码魔术师的加分点。我不会从帽子里面变出兔子,我也确定我不会走高空绳索。我甚至看都不看绳子。

如果有需要的话,我会做各种不同的事情。即使有很困难的事情,我的目标已经是尽我所能去编写简单的、非常可读的代码。如果,在最后,代码看起来简单 - 不令人信服,甚至,像一个中学小孩子写出来的 - 那就好。

小范围来说,这意味着方法往往规模较小,并且集中。大范围来说,体系结构和命名的迭代是不可避免的,但是即使你不进入方法也可以很明显的了解它的作用。

这意味着不要太抽象。要非常明确。但是这也意味着,也不要太特殊 - 当有两三个东西做同一件事情的时候,在不破坏可维护性的前提下,它们要具有普适性。(有时它们不能。)

我避免和大型结构有高耦合性 - 除非在最好的解决办法是从x上去获取y的时候。

我一直在学习,使自己变得更好。

时间

将编程从画画、写作、建筑和编曲中分离出来,是因为编程没有完成品。只有发行版本,是的,编程没有完成,只有放弃。

代码可能会一直存在着,也可能会贯穿很多人 - 你甚至不知道会多久,又会是哪些人。这不应该脱离你的思想。

Cape, mask

当我年轻的时候,我希望成为一个代码魔术师 - 或者,实际上,一个英雄。但是我了解到 真实的代码质量远比别人怎么看我更重要

并且,质量几乎就是精神奖励。这是一种奉献的行为,对于一些比自我更重要的东西,这是自私的,同时也是无私的。

自私是因为,努力编写高质量的代码会使你成为一个更好的人。不自私是因为,对别人来说,更好的代码和更好的软件会更好。

其他人问关于你代码的第一件事情就是,如果他们启动它,它是否会一直启动着。任何不关注此事的程序员 - 或者合理化崩溃的事实的人 - 我们很荣幸我们对此有足够的重视。

Article by 付军