我認(rèn)為一個(gè)好的架構(gòu)關(guān)鍵因素之一是代碼/包的組織:程序員瀏覽源代碼遇到的第一件事情就是包結(jié)構(gòu)。一切從它流出,一切依賴于它。
我們能夠辨別出將應(yīng)用程序封裝進(jìn)入包(package)的2個(gè)路徑:
我的建議是去掉按特性分包,會(huì)帶來的好處有以下主要幾點(diǎn):
如果與功能特性團(tuán)隊(duì)一起工作(就像我們在@SoundCloud的所作所為),也會(huì)是非常有趣的事情。代碼的所有權(quán)會(huì)更容易組織,也更容易被模塊化。在許多開發(fā)人員共用一個(gè)代碼庫的成長型組織當(dāng)中,這是一種成功。
?
如你所見,我的方法看起來就像按層分包:這里我可能會(huì)犯錯(cuò)(例如,在“users”下組織一切),但在這種情況下我會(huì)原諒自己,因?yàn)檫@是個(gè)以學(xué)習(xí)為目的的例子,而且我想顯示的是清晰架構(gòu)方法的主要概念。領(lǐng)會(huì)其意,切勿盲目模仿:-)。
更多建議: