Built By Developers, For Developers.

前言

昨晚发布了codelab-adapter的第5个主版本,睡前洗澡的时候,一直在想什么是好的创造工具,如何找到那些设计原则。找到这些指导原则之后,如何将它用于增强手边这些服务于创造的项目: codelab-adapter/scratch/neverland.

喜欢在洗澡的时候胡思乱想,水雾弥漫,精神自由。回想做过的所有重要决定,几乎都发生在洗澡的时刻。

Paul Graham曾说,如果你洗澡时候没有想到你日常做的东西,说明你并不热爱它。

“什么是好的创造工具"是个好问题吗?按提出正确的问题比得到正确答案更重要的看法,这问题有些大而无当,它能带着我前进吗?还是带着我兜圈?这问题困扰了我很久,我想换一个更清晰的、更易于处理的问题,却一直没找到。

热衷于回答这个问题的人并不多,为它所扰的人似乎也不多,Bret Victor是其中最有名的一个。他提到的很多有价值的意见,诸如:

创造者需要即时的反馈

如果你无法即时看到东西,就无法找到你要的灵感

你应该看到你做出的改变对系统的即时影响

想法需要一个环境,创作者可以培育它们

codelab-adapter而言,谁是创造者?Ta们用它做什么?目前所做的设计易用性如何?是否过度设计了?它要怎么生长?如何收集用户反馈?什么是好的改良建议?

洗澡/散步和阅读的时候,似乎是我思维最发散的时候;写作和工作时,思维是聚焦的。所以我把问问题的时间一般都留在洗澡/散步和阅读上,提出问题,能否解答并不重要。洗澡/散步和阅读花了我大多数闲暇时间。

在考虑“谁是创造者?”的时候,我顺便问了句,开发者是不是创造者?是的,他们为codelab-adapter构建插件,他们当时是需要被考虑的一类创造者。

应该为他们做些什么?什么问题能引导我们找到开发者所需要的改进?

引导我们的依然是Bret Victor的建议

think about what matters to you

我自己就是很典型的插件开发者,我写了很多个插件。所以what matters to you

增加调试工具!我厌倦了每次在console.log和tail info log(codelab-adapter-docs debug)中来回切换,只为搞懂系统中发生了什么。

创造者需要即时的反馈

如果你无法即时看到东西,就无法找到你要的灵感

你应该看到你做出的改变对系统的即时影响

我非常喜欢Bret Victor提出的上述几条指导原则。之前在两种硬件编程风格的比较中也提到类似的观点。

调试功能

想清楚了之后,今天一早,我就开始用代码实现实现我自己需要调试功能:让开发者能即时看到发生的事情。

创造者需要即时的反馈

codelab-adapter的开发者需要什么反馈呢?codelab-adapter的设计原则之一是everything is a message(EIM),所以让开发者看到所有的message就是很重要的事情。

为了获得创造能力,理解系统当然是很重要的,通过展示所有消息,可以帮助开发者做到这点。但能够对系统施加影响以实现目标,也是至关重要的,所以调试工具要能支持开发者发送任何消息,于是我们给出最原始的message输入框,允许开发者发送任何消息,包括发送改变系统内部行为的消息。

除此之外的其他的复杂性,应该屏蔽在工具之下,界面从简,尽可能符合直觉,不要增加认知负担和分散注意力。

调试功能随着codelab-adapter v0.5.1一同发布。

需要改进的地方,欢迎大家发邮件讨论。

使用

打开codelab-adapter v0.5.1, 点击帮助>调试(Debug)

调试Python kernel

参考