2011-06-18 67 views
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鏈接 請;)

回答

9

你的描述我會打電話的發展個人風格是什麼。由於沒有確定的方式應該如何開發,所以很難說。

但你所描述的是可行的選擇。特別是如果不清楚事情如何真正融合在一起的話。 Smalltalk的優點是你擁有所有的物件。所以可以在工作區中嘗試它。如果您瞭解應該如何工作的線索,現在可以將代碼放入方法中了。同時寫一個測試是個好主意。在工作區中,您使用示例值測試了代碼。這完全是一個考驗。當您將沒有值的代碼放入方法中時,您可以將該方法與示例值的用法放入測試中。測試可以幫助您識別在構建整個事物時是否改變了一些基礎知識。

我使用的另一種開發方式是使用檢查器。特別是如果你從網上取東西,這很容易做到。假設你從網絡的api中獲取一個xml。在工作區中,我發出url fetching命令並打開結果的檢查器。在檢查員中,我開始解析結果,在每個單獨的處理步驟中,我打開另一個檢查員的結果,直到我有我想要的結果。從那時起,所有檢查員都相互堆疊在一起。您只需從每個檢查員的最後一步開始創建方法,然後關閉檢查員,接下來的檢查員並從中創建一個方法等。

最後很多開發人員喜歡用調試器進行開發。您只需編寫代碼就好像它已經存在一樣。您可以在調試器中更改代碼,並且可以重新啓動當前方法的當前執行。執行它會讓你成爲下一個調試器。您添加下一個需要的方法,然後繼續執行該程序。你得到下一個調試器等。

你看到有很多可能的樣式。但哪一個最好呢是你的個人意見。

+0

這很有道理,謝謝你的詳細答案。我會保持這個問題一天左右的時間,以防萬一有更多人以更好的答案加入。 – Jatajuuf

6

我通常使用三個打開的​​窗口:兩個瀏覽器和TestRunner。我寫了一個測試,想知道如何與對象交流 - 如果你喜歡,可以使用它的API。然後我運行TestRunner,確保測試因我期望的原因而失敗。

我會做兩件事情之一 - 要麼直接在調試器中寫入我需要的新方法,然後重新開始測試,直到它變綠,或者轉到第二個瀏覽器並編寫我需要的方法。

我偶爾會使用Workspace,主要作爲一種暫存器,就像可能使用Python的REPL一樣。如果你寫了一個類方#initialize方法,你可能會想從Workspace重新初始化你的類。

4

TDD也是開發Smalltalk的一個選項。 Squeak帶有SUnit。

您可以通過運行測試來組合TDD和調試器 - 由於您尚未編寫方法而失敗 - 因此您使用調試器創建方法,然後進入方法並編寫足夠的代碼以獲取測試通過。