終極設計:所有業務系統中都只有兩個集合
梁山許可權引擎最終的設計只有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抽象世界的問題,等我們把底層問題規整好了,到頭來可能是我們自己親手淘汰了自己。人類群體這個超級生物體造就了我們這一半善於左腦思考的人,讓我們去開拓抽象的世界,等我們開拓完了,人類就該淘汰我們了,是我們親手淘汰了我們。我們的下一代得左右並重起來,再也不要去糾正他要用右手夾菜了。
業務系統中只有兩個集合中的那兩個集合所對應的分別是空間和時間。
相關文章
- 企業只有兩個應用系統
- 最近兩個月的招聘統計:只有IT行業最“缺人”行業
- UI設計終極配色指南UI
- 資訊系統業務流程設計
- 遊戲設計終極問題的半個答案-賽季遊戲設計
- 業務管理資訊系統通用設計
- 業務單系統架構設計心得(一)架構
- sap業務系統與業務會計
- 【kamus】Oracle系統設計兩三言Oracle
- DB系統設計兩三言(zt)
- 從Git設計原理到業務系統設計與開發Git
- 如何設計一個秒殺系統-許令波-極客時間
- 秒殺系統設計中的業務性思考
- [轉]從0到1教你設計業務系統
- 現代技術計算的終極系統:Mathematica mac中文版Mac
- 一個屌絲探索隨時隨地程式設計的終極方案程式設計
- 【系統設計】設計一個限流元件元件
- vscode遠端程式設計 終極方案VSCode程式設計
- 扁平化圖示的終極設計指南
- 老舊業務重構案例——IM系統如何設計
- 開發複雜業務系統,有哪些設計思路
- 如何設計一個微博系統?- 4招教你搞定系統設計
- 兩個程式設計師程式設計師
- 極簡設計模式-函式組合和集合管道模式設計模式函式
- 計算兩個日期之間所有的工作日
- 回溯法求一個集合中和為定值的所有集合
- 只有程式設計師瞭解的9個真相程式設計師
- 十五個只有程式設計師會樂的事情程式設計師
- 程式設計師健康手冊——終極好姿勢指南程式設計師
- 如何設計一個RPC系統?RPC
- 如何設計一個秒殺系統
- 如何設計一個搶紅包系統
- 如何設計一個 RPC 系統RPC
- 如何設計一個秒殺系統?
- 如何設計一個RPC系統RPC
- 資訊系統設計三個面向
- iStat Menus:Mac系統狀態監控的終極利器Mac
- windows10解析度只有兩個怎麼辦_win10解析度只有兩個選項如何修復WindowsWin10