10

私は Squeak と Smalltalk は初めてですが、一般的にプログラミングはしていません (Python の経験があります)。

Workspace、System Browser、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.

上記は通常、スモールトーカーが従うものですか、それとも私が見逃したことがありますか。また、その他の一般的なヒント/落とし穴 (もしあれば) をいただければ幸いです。

ありがとう。

ところで、私はこれについて検索し、いくつかのチュートリアルを読みましたが、満足のいく答えが得られなかったので、lmgtfyリンクはありません;)

4

3 に答える 3

9

あなたが説明するものは、私が個人的な開発スタイルと呼ぶものです。どのように成長させるべきかという決定的な方法はないので、言うのは難しいです。

しかし、あなたが説明することは実行可能なオプションです。特に、物事が実際にどのように組み合わされているかが明確でない場合. Smalltalk には、すべてのオブジェクトが手元にあるという強みがあります。そのため、ワークスペースで試すことができます。それがどのように機能するかについての手がかりが得られたら、コードをメソッドに入れる時が来ました。同時に、テストを作成することをお勧めします。ワークスペースで、サンプル値を使用してコードをテストしました。まさに試練です。メソッドに値のないコードを入れると、サンプル値を使用してそのメソッドの使用法をテストに入れることができます。テストは、全体を構築している間に何か基本的なものを変更したかどうかを認識するのに役立ちます。

私が使用するもう 1 つの開発スタイルは、インスペクターを使用することです。特に、ネットから何かを取得している場合、これは非常に簡単です。ネットから Web API から xml を取得するとします。ワークスペースで、url fetching コマンドを発行し、結果に対してインスペクターを開きます。インスペクターで結果の解析を開始し、個々の処理ステップごとに、必要な結果が得られるまで、結果に対して別のインスペクターを開きます。その時点から、すべてのインスペクターが互いに積み上げられます。最後のステップから始まるすべてのインスペクターからメソッドを作成し、インスペクターを閉じ、次のインスペクターを取得してそこからメソッドを作成するだけです。

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

考えられるスタイルがたくさんあることがわかります。しかし、どれが一番良いかはあなたの個人的な意見です。

于 2011-06-18T09:24:25.550 に答える
7

私は通常、2 つのブラウザと TestRunner の 3 つのウィンドウを開いて作業します。オブジェクト (API) とどのように対話したいかを理解するためのテストを作成します。次に、TestRunner を実行して、予期した理由でテストが失敗することを確認します。

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

Python の REPL を使用する場合と同様に、主にスクラッチパッドのようなものとしてワークスペースを使用することがあります。クラス側の#initializeメソッドを記述した場合は、おそらくワークスペースからクラスを再初期化する必要があります。

于 2011-06-18T15:51:51.567 に答える
4

TDD は、Smalltalk を開発するためのオプションでもあります。Squeak には SUnit が付属しています。

テストを実行することで TDD とデバッガーを組み合わせることができます (まだメソッドを作成していないため失敗します)。そのため、デバッガーを使用してメソッドを作成し、次にメソッドにステップ インして、テストに合格するのに十分なコードを記述します。 .

于 2011-06-18T15:55:05.753 に答える