当前位置:  开发笔记 > 编程语言 > 正文

(Mis)了解Smalltalk和TDD

如何解决《(Mis)了解Smalltalk和TDD》经验,为你挑选了3个好方法。

我正在努力学习Smalltalk,所以我通过建立一个简单的"Matrix"类来掌握语法和风格.

首先,如果链接到一个好的Smalltak教程(尽管这完全是可选的),我将不胜感激,最好不要使用GUI(我宁愿输入我的.sts而不是层次结构浏览器中的鱼来放置)他们所处的方法).

然后,关于TDD:对于我打电话的这个项目gst-sunit -f matrix.st -f matrix-test.st BaseMatrixTests,肯定会有更好的方式.在那儿?

最后,关于断言:我正在尝试编写一个方法并将断言置于其中,例如:

Matrix>>multiplyBy: anotherMatrix [
    [ self isNotEmpty ] assert.
    "Do Multiplication"
    [ result dimensions = (self height)@(anotherMatrix width) ] assert.
]

我怎么能做那种断言?

编辑:明确标记的问题.



1> Charlie Mart..:

好的,这里有好几件.

首先,我同意markusQ,虽然我完全同情:我宁愿能够直接在EMACS中编写我的代码.关于Smalltalk的一个问题是,对于那些不想做Smalltalk Way事情的人来说真的是非常无情.在这种情况下,Smalltalk方式是使用浏览器.

其次,这就是Smalltalk方式的部分原因是,Smalltalk在很多方面其他语言不同.实际上,实际上没有办法制作一个"单独的"Smalltalk可执行文件:你所能做的只是创建一个Smalltalk的图像,并添加一些相对较小的自己代码片段.当你使用外部编辑器编写代码时就像你展示的语法一样,你只需要手工输入一种导入/导出格式,这种格式比XML更容易手动输入.但只是有点.

道德是,用浏览器做Smalltalk方式.

关于Smalltalk,有一些相当不错的教程.我通常使用Squeak,所以我见过的是使用Squeak,就像这里一样.

在TDD上,你很幸运,因为Smalltalk是第一个获得xUnit的地方.对于Smalltalk中,它被称为苏尼特,并有一个很好的教程在这里.

你在那里使用断言似乎基本上是"按合同设计"的方法.已经完成了通过合同向Smalltalk添加设计的工作,就像这里一样.对于简单的断言,您可以在此SO问题中添加代码.

assert: aBlock 
    "Throw an assertion error if aBlock does not evaluates to true."
    aBlock value
        ifFalse: [AssertionFailure signal: 'Assertion failed']



2> MarkusQ..:

我讨厌说(因为你明确表示你不想听到它),但进入IDE.试图在不使用IDE的情况下让你的头脑转向smalltalk,就像去巴黎吃麦当劳一样.当然,你在巴黎,但你并没有真正让自己暴露于它的全部.

关于smalltalk的关键是它是所有对象.一直向下(整数和字符是对象)和一直向上(类,方法,浏览器,IDE本身)都是对象.如果你坚持打击它,你将拥有与想要学习如何通过拖放来写C的运气一样多的运气.



3> jarober..:

如果您下载了Cincom Smalltalk Non-Commercial,则有许多在线教程.从这里开始:

http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=tutorials

如果您下载了Squeak,请从这里开始:

http://wiki.squeak.org/squeak/792

是的,您确实需要使用IDE与Smalltalk一起有效地工作.

在测试时,加载SUnit.在Cincom Smalltalk中,它是一个可加载的组件; 我已经介绍了在上面链接的视频教程中加载(和使用)它.我不完全确定如何为Squeak加载它,或者它是否是那里的基础的一部分,但它肯定可用于它.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有