磨刀不誤砍柴工,聊聊舊系統升級改造那些事兒

記得剛剛工做的時候,頭兒告訴我說,程序猿三件寶:文本編輯器、VBA、正則表達式。熟練使用一種文本編輯器,學會VBA和正則表達式,會給你平常工做帶來不少便利。正如咱們當時所在的w項目,不少代碼轉換,所以有着大量的文本處理,須要統計,發現相同問題的代碼要寫VBA工具去批量改正,這個時候用文本編輯器的行編輯功能就能很快把相關文本修改爲相同格式便於用VBA工具作進一步處理,從而提升效率,減小手工修改帶來的手誤。java

在前面講到在系統升級改造的時候若是涉及到代碼的統一轉換升級,制定了相關的代碼轉換規範,當代碼格式命名足夠規範的時候,經過開發工具,將特定格式的代碼根據相關規則了轉換成相應的代碼,是能極大提升轉換效率的。就如同咱們在W項目裏面作的,將COBOL,JCL和CICS MAP文件進行轉換,IBM COBOL轉成MF-COBOL、VSAM文件操做轉換成對Oracle數據庫的代碼,JCL轉換成bat批處理文件,CICS map轉換成jsp。經過VBA工具的開發,將重複機械的代碼轉換變成工具自動化處理,並標示出那些須要手工修改的地方,它能在幾分鐘內將上千份源代碼文件處理完畢。程序員

wKioL1dzdD7yk3jCAAJpyC6MQGY436.png

從上圖咱們就能看到在這個項目的代碼轉換過程當中就使用了COBOL轉換工具和頁面轉換工具,將須要修改的代碼進行相應的轉換,以適用於下一流程的工具所需輸入。在此項目當中咱們開發了各式工具超過30種,這些工具備力的支持了咱們代碼的轉換工做;甚至在當時項目未採用bug管理系統的時候,全部bug都是使用excel文件進行管理,但一個個文件難以詳盡統計其分類,查看其修正進度和具體緣由,因而咱們又開發了統計分析Bug報告的統計VBA工具,經過使用VBA讀取標準的格式下的報告,進而統計輸出咱們所需的報告。正則表達式

對於項目工具的開發,有着如下幾個步驟:數據庫

wKiom1dbgf-BIN9VAADETRpOmXw855.png

工具的開發對於軟件開發來說,咱們都是站在前人的肩膀上前行,如同各類各樣的框架,它們也是工具,所以學會使用工具,進而創造工具,甚至開源本身的工具以造福更多人。在項目開發的過程中通用工具的開發,每每已經成爲項目核心成員天天要作的工做,在解決項目痛點的同時,提升勞動效率和下降項目風險有着關鍵的做用。網絡

如同我參與的一個GIAS級項目,在轉換客戶的客戶化程序的時候,客戶出於方方面面的緣由未及時提供原有系統界面截圖,致使咱們轉換後的頁面沒法知曉其原有頁面佈局及相關須要顯示的字段,是的客戶化程序的轉換停滯不前。我基於前面W項目的工具開發經驗,使用VBA開發了RPG MAP轉HTML的工具,解決了客戶不能提供具體程序截圖的這一問題,使得項目可以繼續推動。數據結構

在大公司裏面,開發工具更是做爲一項重要任務,但切忌用力過猛,在合適的場景下它是工具,在不合適的場景下,它也許會成爲項目的障礙。我曾參與了某公司的一個代碼生成工具的開發,開發它的目的爲了解決公司項目開發當中的一些共通問題,好比由於業務變化快,數據架構師改了數據結構,程序代碼來不及改。它主要功能是將ERWin生成的數據結構生成對應的java代碼,SQL腳本,配置文件等等,且在通過少量配置就能運行的工程,相似Spring ROO這樣的生產力工具。這個工具想法很好,從V1一直作到Vn,通過了一、2×××發,你們以爲還不錯,前面一、2代在公司項目當中也作過推廣,有些許使用的項目,反饋並非特別好。架構

因而項目架構師開始構建新一代的工具Vn,前先後後作了兩年,效果也出來了,不少地方確實達到了以前預想的結果。可是我後面發現沒有項目願意用它了,沒有了上層的推進是一方面;在另一方面,作的過於複雜也是其不受歡迎的緣由,使用者須要花費較長的時間來學會使用它,並且它生成的代碼過於複雜在調試的時候尤爲不便,作成了大而全的東西,至關於本來咱們只須要一個小小的手推車,結果他給你造了一輛重卡,雖然能知足你的須要,可是使用成本維護過高,且學習曲線還陡,沒有咱們項目的人對其進行培訓,其餘項目的成員難以自行使用。框架

重複造輪子自己沒有錯,造合適的輪子才更有意義。大公司有錢能夠任性,採用跨國團隊開發一個巨無霸工具,雖然某些指標比流行的ORM框架要好,但到頭來卻沒有多少項目採用,未免使人唏噓。機器學習

所以開發工具亦有如下幾條值得注意:jsp

wKioL1dbg1nQIFeiAAIBWCJCysE500.png

學好和利用工具是咱們程序員的必備素質,偶爾在生活中也是能夠幫家人朋友處理一些棘手的事情,好比個人一位朋友接手管理某酒店的工程部,可是工程單仍是傳統的excel管理,一樣的統計監管要求使得他難以一份份的去查看下面工做的狀況,所以找我爲他寫了一個VBA工具,解決了他工做中的難題。

此外還能夠成爲泡妞神器,幫妹子解決一些工做上的效率問題,寫過一個自動化生成遊戲NPC名字工具,經過配置瞬間生成一系列,成千上萬個NPC名字供她挑選啊, 亦有經過解析遊戲文案excel,自動生成對話Lua腳本的工具,這些都極大減小了妹子加班的時間啊。看到了妹子崇敬的眼神了沒?

做者介紹

王巍,漣拓網絡架構師,先後就任於Achievo、IBM、HP,關注前沿技術,分佈式系統架構,組件化系統開發,機器學習和大數據,如今創業公司負責系統架構,樂於與你們一塊兒聊聊架構。

相關文章
相關標籤/搜索