我一直在使用面向對象的MVC架構爲一個web項目,所有模型都是OO Perl。但我注意到,團隊中的一對正在恢復程序性技巧,並且基本上使用「對象」作爲相關功能的傾倒場。它們的功能基本上直接從數據庫讀取/寫入。我該如何說服人們使用適當的面向對象的Perl?
說服他們這是錯誤的方式最好的辦法是什麼?有一些很好的教程可以讓他們閱讀嗎?
我一直在使用面向對象的MVC架構爲一個web項目,所有模型都是OO Perl。但我注意到,團隊中的一對正在恢復程序性技巧,並且基本上使用「對象」作爲相關功能的傾倒場。它們的功能基本上直接從數據庫讀取/寫入。我該如何說服人們使用適當的面向對象的Perl?
說服他們這是錯誤的方式最好的辦法是什麼?有一些很好的教程可以讓他們閱讀嗎?
我能想到的三個可能的原因,有些隊員可能不會產生很好的面向對象的代碼:
我的做法是假定每個人都想做正確的工作,所以我假設(或假裝假設)人們關心。人們試圖建立一種想要做正確的事情。
因此,留下建設我們的技能,他們和你的(和我的)。代碼評論似乎是一個明顯的方式來做到這一點。談論替代品。也可能配對編程?
好的OO不一定是正確的,但它比程序化的意大利麪好。 (結構良好的程序代碼完全是另一個論證......) – Paolo 2010-01-07 10:40:15
OOP只是一個工具來完成一些偉大的事情,如更可靠,可用和可維護的軟件。如果你無法說服你的團隊編寫測試,放棄嚴格的OOP。
他們都與你不協調嗎?也許只是你不合時宜!
免得我似乎開玩笑,我的意思是回答以下問題:
了什麼球隊同意應的辦法?
誰的責任是強制執行純度?如果你不去追求純潔,誰的責任就是鼓勵純潔?如果不是你,看看鏡子,確保你不是團隊中令人討厭的新手,他們告訴舊的汗水如何去做自從你穿着Perl嬰兒服裝以來一直在做的工作。
你有什麼機制來排除這些團隊問題?常規代碼評論,配對編程,赤裸裸的戰鬥?
要求他們閱讀一些教程很可能是一口氣。你做什麼OO方式的論點是什麼?正如鮑里斯所觀察到的,OO本身並不是目的,它只是達到目的的手段,而不是唯一的手段。
在你的情況中你可能想要考慮更多的事情,但這些應該讓你開始。
如果您有用於訪問數據庫的已建立的API,則所有對數據庫的調用都應該使用它。如果API缺少所需功能,則應擴展DB API以提供它們。海事組織,這種行爲將是一個需要糾正的問題,無論使用什麼樣的範例(面向對象,程序,聲明,功能等)。 – daotoad 2010-01-07 17:00:27
嗯...讓我們來看看。 Perl的一個章程(可以這麼說)是:「有多種方法可以做到這一點」,但是你希望一些Perl黑客相信只有一個(正確的)方式來處理這個項目。關於這件事似乎不太適合...... – 2010-01-08 16:04:16
海事組織,Perl不完全是非常友好的。它不利於某些標準庫是OO,有些不是(CGI.pm出於任何原因都提供)。 – Powerlord 2010-01-08 20:07:41