2011-06-18 4 views
10

私はSqueakとSmalltalkの新機能ですが、一般的なプログラミングは行っていません(私はPythonの経験がいくつかあります)。ワークフローをスキーク

私は、ワークスペース、システムブラウザ、そしてSmalltalk言語構造のようなSqueak環境に存在するさまざまなツールについて理解しています。私は彼らが孤立して働く方法を理解していますが、 私はそれらを全体としてどのように使うべきか分かりません。

私の質問は、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何一般的に上回っています。また、他の一般的なヒント/ gotchas(もしあれば)をいただければ幸いです。

ありがとうございました。

ところで、私はこれについて検索し、いくつかのチュートリアルを読みますが、任意の満足のいく答えを取得していないので、何のlmgtfyは してくださいリンクしませんでした。あなたは、私が開発の個人的なスタイルを呼ぶだろう記述する何)

答えて

9

。あなたがどのように開発すべきかという明確な方法がないので、それは言うのが難しいです。

しかし、あなたが説明するものは実行可能なオプションです。特に、どのように物事が本当に一緒に収まるかについては明確ではない。 Smalltalkには、すべてのオブジェクトが手元にあるという強みがあります。したがって、ワークスペースで試すことは可能です。どのように動作するべきかについて手がかりを得るなら、コードをメソッドに入れるべき時です。同時に、テストを書くことをお勧めします。ワークスペースでは、サンプル値を使用してコードをテストしました。それはちょうどテストです。メソッド内に値を指定しないでコードを配置すると、その値のメソッドを使用してテストに使用できます。テストは、あなたが全体を構築している間に何か基本的なものを変えるかどうかを認識するのに役立ちます。

私が使用する別のスタイルの開発では、インスペクタを使用しています。特にネットから物事を取り出す場合は、これはかなり簡単です。ネットからWeb APIからXMLを取得したとしましょう。ワークスペースでは、urlの取得コマンドを発行し、その結果をインスペクタで開きます。インスペクタでは、結果を解析し始め、個々の処理ステップごとに結果が得られるまで別のインスペクタを開きます。その点から、すべての検査員が互いに積み重ねられます。最後のステップからすべてのインスペクタからメソッドを作成し、インスペクタを閉じてメソッドを作成します。

最後に、多くの開発者がデバッガで開発したいと思っています。まるですでに存在するかのようにコードを書くだけです。デバッガでコードを変更し、現在のメソッドの現在の実行を再開することができます。それを実行すると、次のデバッガが表示されます。次の必要なメソッドを追加し、プログラムを続行します。あなたは次のデバッガなどを手に入れます。

考えられるスタイルはたくさんあります。しかし、あなたの個人的な意見は最高です。

+0

詳細な回答をいただきありがとうございます。より多くの偉大な答えでより多くの人々がチャイムする場合に備えて、質問を1日程度開いておきます。 – Jatajuuf

6

私は通常、開いている3つのウィンドウ、つまり2つのブラウザとTestRunnerで動作します。私は、あなたが望むなら、どのように私がそのオブジェクト(そのAPI)と話をしたいかを理解するためのテストを書いています。それから私はTestRunnerを実行し、私が期待する理由でテストが失敗することを確認します。

私は、デバッガで直接必要な新しいメソッドを記述し、緑色になるまでテストを再開するか、2番目のブラウザに行き、必要なメソッドを記述します。

私はときどきPythonのREPLを使用するような、主に一種のスクラッチパッドとしてワークスペースを使用します。クラス側の#initializeメソッドを記述している場合は、クラスをワークスペースから再初期化することをお勧めします。

4

TDDはSmalltalkを開発するためのオプションです。スクイークにはSUnitが付属しています。

TDDとデバッガを組み合わせて使用​​することができます。これはテストを実行することで実現できます。テストを実行していないために失敗します。デバッガを使用してメソッドを作成し、メソッドにステップインし、パスするテスト。