軟體開發,在我的心目中,是個神聖的事情,年齡雖然大了,馬上不惑之年,但內心裡一直嚮往這個自由如風的職業,可是老天一直沒有給我成為專業的程式員的機會,有點遺憾。在世人眼中,軟體開發,是只有那種腦殼錚亮的人(智商)才能乾的活;所以,專業程式員們,你們是我羨慕的對象。
十年前,最初學電腦,會調個背景解析度啥的,就高興的屁顛屁顛的,後來就學電腦維修,各種軟體的安裝卸載,各種板卡的績效參數等等,那時候裝個系統還真是個技術活兒,各種驅動,各種藍屏等等,自己樂此不疲,還學了photoshop,、影視編輯、印表機維修…..等等,那叫一個“雜”,有機會看到這篇博文的朋友,奉勸一句:千萬莫做雜家,學而不精害自己(天才除外)。
有一段時間誤認為自己是個電腦高手了,不過這個興奮勁很快被拿起的第一本編程基礎書給嚇趴下了,那密密麻麻的字母和概念繞來繞去,真把我給繞暈了,這第一次學習編程,堅持了半年就給擊潰了,當時懷疑自己的腦殼兒是不是有問題,這玩意兒真不是一般人乾的…….撂下編程書,幹其他的去了,什麼都幹過,包括業餘傳銷、打遊戲幣等等(看到這,程式員應當有強烈的職業榮譽感)。
一晃,好多年過去,開發之心不死,35歲那年重拾開發之夢,接下來一路斷斷續續、磕磕碰碰,中間的苦自是不必多言(熬夜至星光燦爛之時,也是眼冒金花之際,經常有為調試一個BUG到子夜三四點的時候,記得那個漢諾塔編程,最後我是找了三個火柴盒來回倒騰才理解其中妙義-----唉,自個腦殼不靈光,沒辦法),猛一回頭,竟然也寫出點小軟體來,比如本單位用的土地估價計算程式,還有給朋友網吧裡寫的小進銷存軟體,這裡要感謝三位啟蒙老師(譚浩強教授<C程式設計>,王繼彬老師和陳廣老師的視頻講座,自己的體會是軟體開發的入門關是最難的,把入門這一關過了,後邊的路就是自己付出多少就收穫多少了)。牛頓說他只是站在了巨人的肩膀上,我們普通人也一樣,都是在不知不覺中得到了某些人的無形協助前行的,只是嘈雜的生活讓我們不自覺得忽略了這些協助的重大意義。
單位裡去年就提出要搞一套自己用的地籍檔案管理系統,各種原因,一直沒有著手,去年年底目標考核時,資訊化的問題又被提上了議程,這次不能再拖延了。(什麼事都是逼出來的,這話看來是真理。)先看看軟體什麼樣子,有圖有真相(高手無視,可直接PASS):
本人雖然屬於編程菜鳥起步,沒有系統學習過軟體開發流程,不過原來有過小小的管理軟體的開發經曆,對這類增刪改查的軟體心裡還是有點底氣滴,於是自告奮勇,吹牛自己搞這個東西是小菜一碟等了........ 牛是吹完了,東西要做出來才能不吹破牛皮哦;哈哈。之所以心裡有底氣,是因為對需求做了分析,發現有很多功能自己過去都實現過,唯一沒有做過的就是使用者權限的設計,而單位對許可權的要求又很嚴格,因為牽涉到大量的地籍檔案,這年頭樓價地價一個勁的往上蹭....,這些有法律效力的檔案的管理就灰常不能小視。
每天來來往往的查詢檔案、修改檔案的的業務多得讓地籍管理部門忙的夠嗆。過去業餘學習軟體編程的時候,也做過簡單的許可權管理,可以說是簡單到不能再簡單的許可權;很明顯還用這個簡單的思路去做檔案管理的許可權,是絕對不行了。(各個科室都有查詢的許可權,有的科室有修改的許可權,有的科室有權登出檔案,而地籍管理科室的職員又要分配不同的許可權......,許可權的疊加怎麼辦,還有限時登入,限IP登入的問題等等,當時對許可權設計的確有點頭大.....)。
懶人有懶人的辦法:百度搜搜,看看有沒有方便的解決辦法;經常在網上看到討論用現成的輪子和造輪子的各種觀點,我這種菜鳥級的coder還是喜歡用現成的輪子的(以後如果看到這類討論,及時亮出自己的觀點:造輪子真TMD又累又麻煩,不是誰都有能力造個好輪子的,在這裡給那些造輪子的朋友們致敬;有輪子不用,不是瞎耽誤功夫嘛);搜了一大堆許可權,只有一個包含C/S許可權組件的:杭州海日涵通用許可權管理組件(其他的都是基於B/S架構的,本人只會C/S,不會B/S),下載了組件的視頻看了看,又電話聯絡了他們的技術客服詳細諮詢有關功能,心想能達到我們的要求,於是申請採購過來(專業的輪子:就是你想到的,輪子已經給你想好了;你沒想到的,輪子也為你想好了;這公司的LOGO還真有點輪子的味道,哪吒的風火輪.....)。
許可權組件的問題解決了,下面是用什麼UI控制項,這個好說,原來學過DEV的控制項(這個控制項包的強大就不說了),很漂亮,各種風格的,隨便自己選,巧的是,我們採購的通用許可權管理組件也有DEV的版本(任選),這正好和我的地籍檔案管理軟體一個介面風格又節約了很多開發時間。
以上兩個輪子備好,於是操刀上陣,十多天時間把地籍檔案管理軟體寫了出來,增刪改查檔案,儲存檔案的掃描圖片,每次操作都留有記錄,每次操作簡訊貓裝置都都發出手機簡訊通知:某某使用者修改了某某檔案,時間什麼時候,證號是多少之類的。通用許可權管理組件的調用也很簡單,用了三行代碼,就把登入的使用者名稱,姓名擷取到了,再用十行代碼,把自己自訂的許可權和檔案軟體捆綁了起來,成熟的組件就是省事,連繫統登入表單都不用寫了(直到這個時候,才真正體會到這個組件功能的強大和靈活,C/S和B/S通吃,參考裡面的例子就應該也能實現B\S系統,以後得學學B/S方面的開發了)。
寫完這篇開發小總結,再看看我的軟體,就像個三輪車啊,兩個輪子(DEV和通用使用者權限管理組件),我的輪子(姑且也叫輪子吧)在前面,十多天造好一輛三輪車,這個速度對我等菜鳥,甚感欣慰哦.......,單位的任務圓滿完成了,也可以給同事領導有個交代了,看單位同事們用我編寫的軟體心裡充滿了踏實、小小的驕傲。
向輪子製造者們致敬.....(我在想,我有一天是不是也能造出個輪子來……)
後記-------------------------------------------------------------------------------------------------------
借用通用許可權管理組件的作者的話:“將許可權管理、工作流程管理做到我能力的極致,一個人只能做好那麼很少的幾件事情。”
借用“雖天地之大,萬物之多,而唯蜩翼之知”,語出《莊子·達生》。蜩,即蟬,知了。 孔子去楚國,途經一片樹林。林中一個駝背的老者,手持一根長長的竹竿,在聚精會神地粘知了。老人出手又快又准,百無一失。孔子被吸引住了,連連讚歎:“您的技藝實在太高超了,是怎麼練出來的呢?”老人看了看孔子,回答說:“其實也沒什麼。起初,我在竹竿頂端放兩個小球,手持竹竿努力不讓它們掉下來。做到這一點大約用了半年的時間,之後再去粘知了就很少失手了。我繼續練習,能放三個小球的時候,成功率便達到90%以上。我的練習從來沒有停止過,如今能在竿頂放五個小球而不滑落,粘知了就象在地上撿東西一樣簡單。粘知了的時候,我的身體就象木樁一樣穩,伸出的手臂就像枯樹枝一動不動。雖有天地萬物,在我眼中也只有知了的翅膀。此時不管你把什麼放在面前,我都不會動心。做到這一點,粘知了還有什麼難的呢?”