我對軟件開發的世界比較陌生。我目前正在進行一個相當大的項目,這是一個體面的OO代碼 - 主要遵循域驅動設計原則。然而,在理論上這聽起來很好,但實際上整個對象關係阻抗都很糟糕,這意味着只使用ORM層,系統的某些部分非常慢,除非我們編寫優化的SQL查詢來覆蓋這些情況。此外,有時我們似乎被卡住,試圖看看我們是否應該基於SQL的性能與面向對象的原則對域進行建模。沒有ORM的域豐富的應用程序
這讓我問這個問題 - 這是大多數應用程序的構建方式嗎?意義 - 是的,面向對象很好,但是我發現很難相信,與這個對象關係不匹配相關的所有問題,這是構建應用程序的最佳方式嗎?我能想到的另一種方法是拋棄ORM,只進行域建模,直接用手直接編寫原生SQL查詢。我想知道是否實際上有足夠大小的軟件系統以這種方式構建。
對不起,如果我聽起來不錯 - 但我是新的,想知道還有什麼其他的方法。
曾與ORM的和普通的SQL + JDBC/ibatis一起工作,我仍然喜歡寫我的查詢或甚至更好,讓我的DBA優化我的查詢,這些參數聽起來更像是藉口不學習(propper)SQL – Harima555 2011-02-03 18:40:26
實際上使用ORM並不意味着你無法控制生成的SQL,或者你不必擁有一個好的數據庫設計。此外,如果您需要特殊技能來編寫SQL查詢,通常意味着您的數據庫模式已損壞。模式應該使得最頻繁的查詢易於編寫(並且可以快速執行)。當我使用ORM時,我創建了我的模式,使得由我的ORM生成的查詢簡單快捷。這不是火箭科學。 – 2011-02-03 20:00:15