」兒啊,你要努力,要是30多歲還像叔叔同樣學習,我和你爸就要喝西北風了「

前兩天冬至(這邊流行冬至前兩日就開始吃一種像餃子的東西,誤覺得那就是冬至),不少親戚聚在一塊兒吃飯。我拿着一本《xx多線程編程》在啃,八大姨的小姑子在教育上小學的兒子要好好學習。html

」兒啊,你看X叔叔多認真,30多了還這麼努力,你要向他學習「java

」媽媽,爸爸和叔叔同樣的年紀,叔叔好厲害!能看懂那麼厚、那麼多英文的書,爸爸一點都不懂!「android

我摸着小孩的頭笑着說:」你爸才厲害,成天開車出去耍。你要好好學習,小時不努力,長大像我同樣30多歲還要看書「面試

而後,他媽來了一句」兒啊,你要努力,要是30多歲還像叔叔同樣學習,我和你爸就要喝西北風了「spring

瞬間頭頂飄出-20000!的雷擊傷害,雙倍暴擊併產生10秒麻痹效果,原來他媽誇我努力就是爲了這句!sql

注:本人沒爆粗口,他媽的後面沒有」的「字。數據庫

 

 

 

事件背景:編程

 

年輕時由於英語問題,從名牌大學畢業變成一個大齡高中畢業生,學的又是冷門物理專業,除了讀書一無可取,年近30開始作程序猿總算髮揮一點點特長。c#

 

真是應了少壯不努力,老大作程序猿這句話。公司派發稀奇古怪的任務,我也不斷的調整方向,DELPHI,c#,單片機c語言,android,java都經歷了一遍。windows

 

天天除了上班就是學習。逐漸發現這公司真地不利於走技術路線,例如:

 

1,常常成立XX小組推動信息化建設,而後列出一羣組員,除我以外其餘都是各部門經理,一羣「軟件設計師」指導一個程序猿的畫面不要太美。

 

業務設計上若是講道理贏了」設計師「們,之後沒好果子吃。若是按照他們要求來,要增長不少工做量和沒必要要的冗餘。

 

如果界面的個性風格也忍了,可是某些」設計師「也跟我學過一點數據庫設計,對數據庫設計指手畫腳,一會說聯合主鍵好,一會說未審覈的訂單和已審覈的名單要分兩張表設計。

 

內部培訓軟件開發,本意是讓其餘人瞭解下企業信息系統,哪些能夠作,哪些不能夠作。結果我還真是搬起石頭砸本身的腳。

 

2,老舊OA用louts數據庫太落伍,公司換個新的幾十萬又嫌貴,我跳出來講自主開發給十分之一就好。用接近一年反覆重構,搭建好開發平臺,順便帶幾我的作好了OA。

 

3,最大的一次委屈來自於轉型java

 

A領導聽OA廠商說java好google,淘寶們都用java,.net快被淘汰了,運行windows系統又浪費服務器資源(言下之意是IBM服務器幾百萬,運行windows是在燒錢)。A領導大手一揮轉java,因而我開始轉Java。

 

逐步用Java來搭建開發平臺,持續作了幾個月,也作了一個業務模塊上去運行,遇到JS問題一時沒搞定(全棧==全廢,JS都是複製粘貼的)。可能領導很不爽,沒過收到A領導招聘java高手的郵件。

 

內心一萬匹草泥馬奔過,面試java高級程序猿居然不是惟一懂java得我而是隻懂點sql的A領導來作(後來換個角度也想明白了,從A領導角度看,雖然我技術是比他好那麼一點,但公司業務他熟,作管理多年他看人的能力也很強)。

 

通過最高總經理批准,高手來以後工資是個人兩三倍,廢棄了我開發一半的平臺重頭開發。很快調整心態,我默默地想:反正高手不來我也沒有工資加,來了跟着學點東西也好,不用本身辛苦踩一遍Java的坑,用高手的架構也是題中之義。

 

但每次請教,高手都是讓我調試代碼,耐心看看debug信息。開始覺得只是他不肯意教我,後來他不少功能都問我原來平臺上有沒有,有就移植到新的平臺(底層都是SSH或srping+springMVC+hibernate)。

 

到這裏我明白了,原來」高手「是靠忽悠出來,再後來他問我什麼我也說不知道。下決心本身作一個完善的開發平臺出來,而後再給高層演示的時候我拿一個更好的方案出來,不料默默準備了好久的大招沒有打中人。

 

由於,半年後」高手「拿着20來萬工資離開了,A領導又找到我,說那個系統已經作完大部分,要繼續發揮它的價值,你來維護吧?頓時內心被一羣草泥馬來來回回的跑過,把我接近完成的系統展現給他看。

 

整個權限設計,在jsp頁面充滿了下面這種代碼。不說jsp裏寫Java代碼的古典風格,不說代碼都用角色了還要權限來幹什麼?也不說使用名稱判斷而不使用id這種低級錯誤。

 

這種」高深「的問題給A領導解釋是自找麻煩,我着重演示了系統的不安全性(簡歷上是擔任項目經理,參與多家銀行系統的建設,對於安全性方面頗有研究)。

 

不安全性:一個外網IP訪問的系統,掩耳盜鈴控制html的內容,不登陸系統,瀏覽器輸入菜單1的地址,各類數據隨便訪問。

 

if(角色=="經理")
{
   顯示菜單1();
}
if(角色=="員工") { 禁止菜單1(); }

 

終於說服A領導,那個系統沒有必要使用了。當時我也注意到,」繼續發揮它的價值「這句話的深層含義,A領導也明白花冤枉錢招人了,但放棄系統等於打本身的臉,往上報告高層也很差交代(公司規定每一個高級人才辭職都要問責上司的)。

 

我不想背這個鍋,順着A領導去作討得歡心也不給我加一分錢,還要爲系統問題買單。而後,A領導和個人話更少了,推廣使用個人開發平臺,有任務丟給新人,而後新人不會的我來搞定。以前招聘高手來作Java平臺許諾的十萬獎金也沒人再提。

 

若是選擇表面維護遺留系統(實際用本身的平臺),十萬獎金是能夠向高層申請到,但考慮到一羣」設計師「出力的狀況,有一萬到手就不錯了。即便一萬對於他們只是零錢,對於我是鉅款,但有些事我作不到妥協。

 

 

 

發奮

 

馬雲說過,辭職只有兩個理由。要麼是錢給得不夠,要麼是心受委屈了。兩個理由都有了,是時候該換個工做了。

 

不懂忽悠也不想學忽悠,只好修內功。上班有空就看技術書籍,下班也看,走親戚也帶着書,因而有了上面的事情:

 

------------------------------------------------------------------------------------------------

看完評論發現權限設計是一個經典的老生常談問題。會的人成竹在胸、對權限問題不削一顧,不會的人還在苦苦思索,處處找代碼。

初入門我前後用了吉日嘎啦、伍華聰、金色海洋等人的權限設計,那時他們爭論很激烈,下篇把個人設計和代碼發出來,讓不會的人少走彎路。

設計基礎:用戶、角色、權限三大核心表,加上用戶角色、角色權限兩個映射表(用於給用戶表聯繫上權限表)。這樣就能夠經過登陸的用戶來獲取權限列表,或判斷是否擁有某個權限。

物理學總喜歡不斷抽象,試圖建成大統一系統,好比牛頓力學是相對論在低速狀態下的一個特例。軟件思想也是如此,

任何權限的需求,都是爲廣義的用戶分配角色,角色擁有廣義的權限。角色是最重要的中樞,隱藏作幕後黑手,從不出如今業務代碼裏,用行話說就是解除了用戶和權限的直接耦合。

角色把用戶抽象化了,幾百個用戶變成成幾個角色,用戶->角色->權限寫成通用判斷權限的方法:currUser.IsHave(xx權限)。核心就是一個sql聯表查詢語句,查詢條件爲用戶id。

例如:部門權限:部門也是一種用戶,創建 部門表、部門角色表。通用權限方法里加上 當前部門->部門所屬角色->權限 職位權限:職位也是一種用戶,創建職位表、職位角色表,同上菜單:也是一種權限,創建 菜單表、角色菜單表,就把菜單歸入了權限管理。通用權限方法里加上 角色列表->權限、菜單

相關文章
相關標籤/搜索