終極設計:所有業務系統中都只有兩個集合

liangshan發表於2015-04-13
業務系統中只有兩個集合
梁山許可權引擎最終的設計只有Catalog集和Privilege(Catalog元素二元組集)集這兩個集合。Role、Account、Menu、AppSystem、Function等都是Catalog目錄森林上的事物。人們之前在儲存層反映它們的時候把它們分別放進不同的邏輯表中儲存,可是對於資料庫來說它們雖然是不同的邏輯表但是資料庫程式中也是有個邏輯的Catalog目錄樹統一了它們。

現在由於99%的許可權資料都已經常駐了記憶體,管理這些許可權資料的義務完全落到了許可權引擎身上,許可權引擎可能需要像資料庫那樣去考慮問題,磨平Role、Account、Menu、AppSystem、Function等型別的不同,全部納入Catalog集合,在每一個Catalog元素上留下一個CatalogType字典值(取值、Role、Account、Function、Field等)就可以了。

Catalog集合和由Catalog集合中的元素組成的二元組集合(記為Privilege集合)是所有問題的中心。所有其它模型都是外圍的輔助模型。如果最終只留下這兩個集合的話,那份程式碼就可以跨平臺跨語言了。因為最終的程式碼中可能只有Dictionary<string, object>(或者稱HashTable)這一種型別,無論是.NET還是Java或者C++或ruby或rust或golang都有這種型別或者自己去實現個這樣的型別就可以了。.NET、Java、C++、Rust、Golang等都是技術,而梁山許可權引擎是它們之上的業務,把.NET、Java、C++、Rust、Golang僅當作CPU來用的一份程式碼就是跨平臺的了。

Catalog集合相對穩定,由Catalog集合中的元素組成的二元組集合(記為Privilege集合)相對躁動。有靜有動就是完備的,丟失不了來自上層或下層的資訊。但是麻煩的是如何讓安全管理員直觀的面向這兩個集合呢?許可權引擎管理系統得提供一個怎樣的圖形介面?

主體分神進入三維立體的業務系統中去行走
三維立體的空間結構,安全管理員分神進入系統空間在空間中行走,整個空間是分形的,宏觀上到處都一樣的。一份安全策略有沒有漏洞要能明顯的反映出來,如同安全管理員來到一個房間發現房間的牆上有個大洞一樣。有那麼大一個小偷可以鑽進來的洞當然是不安全的。
所有的安全策略都能透過空間的隔離和在空間中的運動來表達。不只是安全策略可以表達成跟現實世界完全一樣,所有的業務系統所有的計算機系統也都是可以表達成和顯式世界完全一樣的。只有隔離的空間和在空間中受控的運動。運動是時間,只有空間和時間,整個世界都是這樣的,這樣的世界我們熟悉了幾百萬年,所以我們應該還以同樣的模式去熟悉計算機世界。

前端很重要
xml + css描述的那個平面是可以立體起來的,以後它們可能突然間被變現為立體空間,然後人分神進入那些空間中,在裡面行走。
前端工程師掌握的那些技術是過時不了的,無論是平面的還是立體的,他們掌握的那些技術不會有什麼大的不同。整個計算機世界可能真的跟建築行業沒有什麼區別。只不過是燒磚和壘磚的區別,燒磚的並不比壘磚的高階。

前端工程師的工作既抽象又形象,他們左右腦平衡使用和發展;而後端工程師的工作太抽象,太依賴左腦,他們不平衡的發展,到最後可能後端會被這個世界淘汰掉。最終留下的不是後端,而是抽象與形象和諧發展的前端人們。

左腦處理問題時是很費時間的,而右腦處理已知問題的速度是嚴重的高於左腦的。我們大都是左腦型的人,這也是為什麼我們現在能勝任計算機工作的原因,但是我們太依賴左腦,被左腦支配了,這會導致我們在現實世界中執行的很慢,世界中未知的抽象問題會越來越少越來越少,我們的作用必將會越來越小越來越小。

我們過時了
我們的成果已經進入了90後00後10後的世界,環境變了,他們中難以出現對0 1抽象的世界特別感興趣的人,他們就應該去對更美好的上層世界感興趣,遠離0 1抽象世界。群體考慮問題時的出發點從來跟個體不太一樣,我們這些人動用左腦的力量去處理底層0 1抽象世界的問題,等我們把底層問題規整好了,到頭來可能是我們自己親手淘汰了自己。人類群體這個超級生物體造就了我們這一半善於左腦思考的人,讓我們去開拓抽象的世界,等我們開拓完了,人類就該淘汰我們了,是我們親手淘汰了我們。我們的下一代得左右並重起來,再也不要去糾正他要用右手夾菜了。

業務系統中只有兩個集合中的那兩個集合所對應的分別是空間和時間。

相關文章