10

我是 Squeak 和 Smalltalk 的新手,但一般不会编程(我有一些 Python 经验)。

我了解 Squeak 环境中存在的各种工具,例如工作区、系统浏览器以及 Smalltalk 语言结构。我了解它们如何单独工作,但我不确定如何将它们作为一个整体使用。

我的问题是在 Squeak 中开发时的典型工作流程是什么。据我了解

I open squeak.
I create a Class in the System Browser.
I then write/test/execute code in the Workspace, adding methods 
to my class based on the code I tried out in the Workspace.
Rinse and repeat for other classes.

以上是smalltalkers通常遵循的还是我错过的东西。其他一般提示/陷阱(如果有)也将不胜感激。

谢谢。

顺便说一句,我确实对此进行了搜索并阅读了一些教程,但没有得到任何令人满意的答案,所以请不要提供 lmgtfy 链接;)

4

3 回答 3

9

你所描述的我称之为个人发展风格。由于没有明确的方式应该如何开发,所以很难说。

但你描述的是可行的选择。特别是如果不清楚这些东西是如何真正结合在一起的。Smalltalk 的优势在于您手头有所有的东西。所以可以在工作区试一试。如果您对它应该如何工作有所了解,那么是时候将您的代码放入方法中了。同时,编写测试也是一个好主意。在工作区中,您使用示例值测试了代码。那完全是一个考验。当您将没有值的代码放入方法中时,您可以将该方法的使用与示例值一起放入测试中。测试可帮助您识别在构建整个事物时是否更改了基本内容。

我使用的另一种开发方式是使用检查器。特别是如果您从网上获取东西,这很容易做到。假设您从网络上的 Web api 检索 xml。在工作区中,我发出 url fetching 命令并在结果上打开一个检查器。在检查器中,我开始解析结果,并在每个单独的处理步骤中打开另一个检查器,直到我得到想要的结果。从那时起,所有检查员都堆叠在一起。您只需从最后一步开始从每个检查器创建方法,然后关闭检查器,获取下一个检查器并从中创建一个方法,等等。

最后,很多开发人员喜欢使用调试器进行开发。您只需编写代码,就好像它已经存在一样。您可以在调试器中更改代码,并且可以重新启动当前方法的当前执行。执行它可以获得下一个调试器。您添加下一个需要的方法,然后继续执行该程序。您将获得下一个调试器等。

您会看到有很多可能的样式。但是哪个最好是您的个人意见。

于 2011-06-18T09:24:25.550 回答
7

我通常会打开三个窗口:两个浏览器和 TestRunner。我编写了一个测试来确定我想如何与对象对话——它的 API,如果你愿意的话。然后我运行 TestRunner,确保测试因我预期的原因而失败。

然后我将做两件事之一 - 要么直接在调试器中编写我需要的新方法,然后重新启动测试直到它变绿,要么转到第二个浏览器并编写我需要的方法。

我偶尔会使用 Workspace,主要用作一种暂存器,就像使用 Python 的 REPL 一样。如果您编写了类端#initialize方法,您可能希望从工作区重新初始化您的类。

于 2011-06-18T15:51:51.567 回答
4

TDD 也是开发 Smalltalk 的一种选择。Squeak 随 SUnit 一起提供。

您可以通过运行测试来组合 TDD 和调试器 - 由于您尚未编写方法而失败 - 因此您使用调试器创建方法,然后进入方法并编写足够的代码以使测试通过.

于 2011-06-18T15:55:05.753 回答