我正在尋找最佳實踐或通用方法來製作可由常規非程序員修改的服務器端應用程序。它不需要熱修改;它可以重新編譯和重新部署。服務器端腳本編寫客戶端 - 服務器程序中的邏輯的方法
假設系統位於EJB或Spring容器中。該系統是消息驅動的(可能是EJB3.1)。有許多POJO接收來自客戶端應用程序(RCP或RIA)的消息,對這些消息作出反應,並將更多消息發送給相同的客戶端應用程序和其他客戶端應用程序。使系統易於修改的最佳方法是什麼?如果我正確分離服務器的邏輯組件,那麼採用什麼技術或設計方法可以讓我用新的POJO交換邏輯POJO,從而改變應用程序的行爲?
我想我所描述的是一種戰略模式。這些POJO是否可以通過一系列人類可讀和可編輯的規則生成?像Drools這樣的規則引擎是否可以解決這個問題?
這是否可以與狀態機生成器結合使用,以便每個狀態都有一個輸入消息列表以及對每個狀態的響應,轉換規則等等?
玩具例子:
- State_Evening
- 輸入sellStocks
- 回覆 「不能在晚上賣,等到白天。」 「賣股票的_」
- 輸入sellStocks
- State_Day
- 輸入sellStocks
- 做SellStocks
- 回覆
- 輸入sellStocks
等
現在,我寫出來這樣的,它看起來像腳本語言將是幾乎相同的編程...
我只是在尋找一個正確的方向指針。或者可能是因爲我簡單地過分複雜化了一些東西。也許我應該讓業務邏輯儘可能乾淨地分離,並在代碼中進行更改?
編輯在2012年2月22日爲清楚起見
成爲一名程序員需要多年的時間,更要成爲一名體面的人,更要成爲一名好的人。我不會用手術刀將我的身體給予非外科醫生。我不會把我的代碼給非程序員。 – 2012-02-19 18:43:40
我完全同意。另一方面,如果你是一個愛好/解決問題的方案,你通常會忘記一年前如何實施某些東西的細節。主要是因爲你不是每天都在編程。能夠在不需要重新學習你所做的事情的情況下進行修改會很好。 :) – 2012-02-19 19:29:36