DDD作者說DDD發展還沒完!
昨天,Explore DDD 2018剛剛閉幕,DDD作者Eric Evans在探“持懷疑態度,樂觀態度和實用主義”主題演講中表示,“DDD尚未完成。”,很多人認為DDD誕生於15年前,以為不再是新技術了,其實,從領域驅動設計這本書出版以來的十五年中,人們不斷在探索創新,事件風暴建模、事件溯源和CQRS等技術模式改變了我們構建軟體的方式,並提供了系統不需要單個數據庫的創新。Evans表示:要保持DDD不斷髮展,還有很多工作要做。
人們經常請Evans對DDD進行嚴格定義,其實這可能會導致DDD走上宗教原教條主義,因為當DDD被嚴格定義後,最輕微的改變都會被一些學術教條主義指責說“你沒有做DDD”,那麼你就無法真正創新。為了使DDD保持長久性,它必須允許創新和發展。
Evans認為DDD還是有一些主要指導原則:關注核心領域,領域專家和程式員需要創造性合作,探索模型設計,在明確有邊界的上下文下說一種統一語言,需要不斷從懷疑角度看問題(banq注:我思故我在,只有懷疑性思考才能證明自己存在),經常反問:如果我們錯了怎麼辦?如果我們沒有看到DDD提供預期的結果,那麼,作為專業人士,我們需要重新審視我們的原則。
可惜的是,一些團隊實施DDD確實令人失望,原因很多,比如和文化有關(banq注:文化哲學背景,軟體分析是一種邏輯分析哲學方法,是屬於羅素、維根斯坦代表的邏輯主義,這屬於英美流派,但是國內哲學基本是德國歐洲大陸派,是屬於黑格爾馬克思之流派,大部分學生在學校沒有接受有關形式邏輯的啟蒙教育)。
除了文化,團隊缺少成功的技能,也有運氣不好原因,Evans試圖對原因進行分類,認為DDD技術薄弱或DDD原則存在缺陷是主要原因。如果技術薄弱,可以在不改變DDD基本原則的情況下解決。例如,事件風暴是一種強大的技術,可以幫助開始協作。但是,如果是DDD原則本身確實存在缺陷,我們是否能夠在不完全放棄DDD的情況下對它們進行一些修改?這是一個需要考慮的未決問題。
微服務的發展也得益於DDD本身價值,Evans認為這是積極的,但也強調了需要謹慎點。儘管如果不是微服務,Explore DDD會議今天可能不會舉行,但是諸如“每個微服務就是一個有界的上下文”的規範性指導有些極端,好像過於現實的菜譜一樣,偏離了DDD重點。
Evans把大型軟體系統和社群花園比較,在花園共享空間內,人們有著自己的私人花園空間(有界的上下文),那些遺留系統就好比成熟的果實,花園在夏末初秋最有價值,因為最有生產力,收穫的季節,在早春階段你可以修剪改變花園,這時你的花園是最具有潛力的(banq注:弱者道之用),同樣,軟體最具發展性的階段並不是最具生產力的階段。
最後一點是,推進DDD的祕訣在於合作。他認為會議是最有效的機會,可以將專家聚集在一起,討論各種想法並互相學習,而不僅僅是廣播和講座形式。他主張DDD專家進行實驗,並在DDD社群內分享這些實驗和結果。引入其他領域的專家和意見同樣重要,例如庫包和語言的作者。他總結道,“DDD在過去的15年裡已經被震撼了幾次。我認為現在是時候進行另一次重大改組了。”