在我目前的工作中,我構建了一套嚴重依賴於對象的Perl腳本。 (在Hash上使用Perl的bless()
以儘可能接近OO)在鴨子型語言中模擬靜態類型的方面
現在,由於缺乏更好的方式來實現這一點,我公司的大多數程序員都不是很聰明。更糟的是,他們不喜歡閱讀文檔,並且似乎對理解其他人的代碼有困難。牛仔編碼是這裏的遊戲。每當他們遇到問題並嘗試解決問題時,他們都會提出一個可怕的解決方案,它實際上不會解決任何問題,並且通常會使問題變得更糟。
坦率地說,這使我不信任用duck typed language編寫的代碼。作爲一個例子,我發現他們有太多的問題沒有得到誤用對象的明確錯誤。例如,如果類型A
具有成員foo
,並且他們執行類似instance->goo
的操作,則他們不會立即看到問題。它會返回一個空值/未定義的值,他們可能會浪費一個小時來查找原因。然後最終改變別的東西,因爲他們沒有正確識別原來的問題。
所以我的頭腦風暴的方式,以保持我的腳本語言(其快速發展是一個優勢),但是當沒有正確使用對象給出一個清楚的錯誤消息。我意識到,由於沒有編譯階段或靜態類型,錯誤將不得不在運行時。我很好這一點,只要用戶得到一個很明確的通知說:「這個對象沒有X」
由於我的解決方案的一部分,我不希望它被要求他們檢查在嘗試使用它之前存在一個方法/變量。
即使我的工作是在Perl中,我認爲這可以是語言不可知的。
鑑於你處於這種環境中,在寫Perl的同時承認你的同事不瞭解它......這聽起來像你是問題的一部分! – Stephen 2010-05-29 01:58:58
我沒有選擇使用Perl。根據管理層的說法,這或者是這樣。 – Mike 2010-05-29 02:00:52
我處於某種領導地位,但官僚們做出技術決定。我正在努力改變這一點,但我仍然沒有我需要的那麼多的影響力。 – Mike 2010-05-29 02:02:34