對我來說也很奇怪;在我的情況下來自C/C++的背景。
單擊我的是,只需稍微調整一下工作環境,就可以顯着縮短迭代時間。這個想法是足夠減少它,你可以用小塊編寫代碼並且非常頻繁地測試你的代碼。
缺乏編譯時間檢查:你會習慣它。像重要的白色空間一樣,編譯時類型檢查的缺乏在幾周後就會消失。很難說如何,但至少我可以告訴你,它確實發生在我身上。
由於缺乏接口:這是一個棘手的問題。如果在更大的系統中獲得更多的幫助以提醒您實現整個界面,那將是非常好的。如果你發現你真的失去了很多時間,你可以編寫自己的運行時檢查,並在適當的地方插入它們。例如。如果您向中央管理人員註冊您的對象,那麼確保對象符合提交給他們的角色是一個好時機。
總的來說,記住你有體面的反射能力是很好的。
關於缺少封裝:鑑於coffeescript實現了一個非常好的類包裝到原型方案,我假設你的意思是缺乏私有變量?實際上,您可以通過多種方式隱藏客戶的詳細信息,如果您覺得有必要,我也可以;通常是爲了阻止自己未來的腳步。關鍵是通常在關閉時將東西松開。
另外,看看Object.__defineGetter__
/Object.defineProperty?
吸氣劑和二道助手可以在這些情況下幫助很多。
在減少迭代時間:
我用的是內置的文件裏的守望者咖啡彙編關於變化的腳本。再加上TextMate在失去焦點時保存所有打開文件的能力,這意味着測試是從textmate切換到chrome/firefox並刷新的問題。蠻快。
雖然在node.js項目中,我已經設置了我的視圖,以便即時編譯和提供服務,所以即使文件監視器也是多餘的。它們被緩存在發行版中,但在調試模式下,它們總是從磁盤重新加載,重新編譯,遇到錯誤時我只需提供它們。所以現在每隔幾分鐘我切換到瀏覽器,刷新並看到我的測試運行或編譯器錯誤。
這不是一個答案,但要在咖啡標記中發揮作用,你必須非常熟悉Javascript。如果你不是,調試體驗可能真的很痛苦。 –
我對JavaScript和Coffeescript都很熟悉 - 我可以根據應用程序行爲識別錯誤,並且我瞭解Javascript的大部分奇怪部分。 更多的是我一直在犯同樣的錯誤/錯誤,我不會用靜態類型的語言。我不知道採用特定的編碼風格是否會有所幫助(這使得類型更清晰,並且使得更簡單的拼寫錯誤和類型錯誤變得更難) - 但是現在我不能相信這不是別人已經有的東西瞭解決了。 – laurencer
使用動態語言時,自動化測試是至關重要的。擁有一個好的測試套件對於在潛在地改變應用程序時捕獲錯誤非常有幫助。 – Andrew