最近遊戲開發業務少了,我就開啓了重構運營系統的行動了。先說一下背景,運營系統是個不少人接手過的項目,代碼風格迥異,由於團隊沒有review機制,之前後臺的同窗都是怎麼方便怎麼來,完成任務就萬事大吉了。spring
由於公司的業務,這裏不會貼上代碼,大體描述一下在代碼結構上主要存在的問題:後端
按照上面的問題,反推重構方案:api
由於只是代碼結構變化,並無修改業務的實現,經過現代的IDE是能夠直接進行操做的,可是須要逐步review和按模塊進行version control。架構
運營系統指責單一,業務量不大而且按照實際的業務狀況不須要作服務拆分和集羣,資源佔用太大的調度能夠單獨拆分出來,開多個實例處理。這個小型系統的形狀其實跟遊戲後端同樣,在宏觀上是十份內聚的。(目前研發的遊戲也是單一進程的)但從微觀上講,良好組織的代碼應該像組件化、服務化的服務同樣,對內聚合、對外鬆散。從宏觀上看,大型服務架構系統其實也應該這樣。每一個服務就像遊戲開發的組件、小型系統的模塊同樣,是獨立自治的。只不過業務的調度不會在一個進程、單機內,多是多點的、集羣的甚至多地的。得益於中間件技術,將這些服務按實際的商用業務串聯起來。在不一樣的角度,能夠說它們按結構來看是極度鬆散的,也能夠說他們高度內聚的。按宏觀上來看,後端開發實際上是類似的,只是面對實際要解決的問題各有各的不一樣,按實際狀況選擇最優解罷了。本人拙見,貽笑大方。dom