11

我安装了 Pharo 1.4 并尝试阅读“Pharo by example”。

不幸的是,这本书和 Pharo 图像完全不同步:菜单不同;用作示例的类不存在,例如;BouncingAtomsMorph 类。

很可惜。也许一个人应该使用特定的 Pharo 版本来学习,而另一个版本来更新……有人可以帮忙吗?

4

4 回答 4

14

首先一定要完成 Stef 教授的教程,它提供了基础知识。您可以通过执行开始教程

ProfStef go.

在一个工作区。只需在工作区中键入它,选择它,右键单击,执行

还有一本 Pharo 合作的书,里面有很多有趣的东西。还有一些Pharocasts可以帮助你学习一些有趣的东西。

您也可以在 Stack Overflow 上提出问题,如果它更通用并且人们会帮助您,请用

于 2013-01-19T12:11:58.690 回答
7

正如@Sharphawk 所说,有一张与本书一起使用的图片,可从主页获得。它现在有点旧,但它应该与书同步。

Pharo 的发展太快了,我们跟不上这本书的步伐(还有很多章节在进行中),所以对于最近的图像,你必须自己适应和发现一些东西。幸运的是,还有很多其他资源可以帮助您:当然,这里是本书Pharo 本身的邮件列表、irc.freenode.net 上的#pharo-project IRC 频道、@ 指向的书籍和截屏视频uko等

从经验来看,通过一些探索和指导,Smalltalk 更容易学习

于 2013-01-19T12:41:24.823 回答
2

对于绝对初学者,以下是最近的实用和动手教程,仅涵盖帮助您入门的基础知识:

http://ceronio.net/2017/07/first-steps-with-pharo-smalltalk/

于 2017-07-18T17:03:29.083 回答
2

由于您的问题有点模糊(可以理解),而且我不知道您的背景或您的需求,我将尝试对 Pharo 进行简要概述,以便您知道在哪里寻找,因为您获得更多的经验和您的需求演变。

语言基础

正如 Uko 所指出的,如果您是 Smalltalk 的新手,最好的入门方法是遵循Stef 教授的教程。这将使您熟悉该语言的核心方面。为了快速参考,您可以使用Pharo Cheatsheet

基本工具

完成本教程后,您应该熟悉这些工具,以便您可以在 Pharo 中有效地工作。您可能已经知道,重要的工具是Class BrowserInspectorDebugger

从代码示例中学习

类浏览器有很多有用的特性,特别是它允许您在系统中搜索方法和类引用,将您指向具体的代码示例。您可以右键单击任何方法,然后在上下文菜单中选择“...的发件人”。同样,对于类,您可以查找引用(Analyze -> Class Refs)。这将告诉您如何使用特定的类和方法,并且通常可以让您更快地获得所需的信息。

另一个不可或缺的工具是Spotter (shift-enter),它提供了一个易于使用的界面来浏览系统(用于类和示例)。但是您必须使用最新的 Pharo 版本。

生态系统概述

话虽如此,Pharo 生态系统非常庞大,您需要一些时间才能充分利用它(我已经与 Pharo 合作了很长时间,还有很多东西我需要学习)。

根据您的需求,Pharo 可以提供很多服务:

Roassal 与 Morphic 非常不同,因为它是为在漂亮的布局中呈现各种图形而量身定制的(虽然在 Morphic 中也可以这样做,但您必须编写大量代码)。Roassal 也使用矢量图形,Morphic 是基于光栅的。如果您想编写 GUI 或游戏,我会坚持使用 morphic。如果您必须可视化数据,请使用 Roassal。

Maloney(Morphic 的创始人)对 Morphic的核心概念做了很好的介绍。一些类名已经改变,但你会弄明白的。在 Morphic 中进行事件处理也有不同的方法。一种方法是覆盖方法(就像您在其他面向对象的 GUI 框架中使用的一样),另一种方法是将事件“路由”到方法。我已经使用了这两种方法,对于更简单的应用程序,我会选择第一种。

从一个简单的项目开始

我的建议是从最基本的开始,最好从一个小项目开始,例如像 Snake 这样的游戏。在学习时添加内容,如果遇到困难,请随时在 stackoverflow 上提问。此外,还有 Pharo 邮件列表。我发现 Pharo / Smalltalk 社区非常热情。

我最后的建议是:保持简单。做到这一点并不总是那么容易,但 Smalltalk 是学习这一原则的绝佳环境。如果您正在寻找如何组织代码的方法,您还想查看Kent Beck 的最佳实践模式。

玩得开心!

编辑:圣线复活!我刚刚意识到这个问题已经超过 4 年了。好吧,也许这篇文章对其他新人有所帮助。

于 2017-07-19T17:17:52.610 回答