會開發和懂開發的區別

       注:本人身爲SAP諮詢顧問,故如下以SAP開發語言ABAP做爲例子,其餘語言雷同。 安全

       在SAP領域,作開發的人不少,會ABAP的也很多,但真心懂ABAP,懂開發的人卻很少。不少人從事開發行業,只是單純爲了開發而開發,爲了寫代碼而寫代碼。只要可以實現功能,哪怕裏面埋了不少雷挖了不少坑也可有可無,甚至BUG百出。SAP系統最注重的是代碼的質量以及運行高效率和簡潔,不然一旦程序有問題,影響的並非程序自己,而會影響到實際企業生產,甚至必定程度上影響到決策層的判斷。跟SAP其餘模塊同樣,ABAP沒個大幾年的累積經驗是沒法成爲大神級別的,除非是天生天賦異稟。所以會點ABAP語法和開發並無什麼了不得,跟其餘諸如.net、Java和PHP等語言同樣,培訓一段時間就可以上手了,但真的要作到把控需求,功能可擴展延展性就難了。也印證了一句話:會ABAP的不稀奇,懂ABAP才難求;會業務模塊的不稀奇,即會業務又懂開發才萬金難求!函數

       如下列舉幾項,簡要說說會開發和懂開發的區別:性能

       1、更新錯誤問題測試

       會開發的人:循環一百次,每次暫停一秒後再Insert表,直到成功爲止,若是100次了還失敗,那就忽略!因此一旦出現這樣的狀況,程序就會卡死;spa

       懂開發的人:Try一下,捕獲消息號和文本拋出,而後RollBack。但若是是可有可無的表(如日誌表),直接就忽略掉;.net

       以下圖神奇的代碼:3d

       

       2、多重邏輯判斷問題日誌

       會開發的人:IF能寫多少就寫多少,哪怕功能裏面都是重複的邏輯;blog

       懂開發的人:採用ABAP的動態語法,將重複的功能整合在一塊兒,區別就在動態語法判斷上;排序

       以下圖代碼:

       

       3、SAP加強的寫法

       須要說明的是SAP加強是對系統標準功能和邏輯的一種延伸和更改,須要很是的慎重,同時最好有參數表來作開關控制,輸出的消息也得有長文本作描述;

       會開發的人:找到一個加強就興奮不已,而後直接寫代碼,不考慮任何擴展和開關控制,也是直接Message出來消息,很難追蹤;

       懂開發的人:不只作了參數控制,同時還會作事務代碼或程序名的判斷,至於Message則在SE91裏面作消息號新建引用,方便維護和追蹤!

       以下圖神奇的代碼:(代碼裏還有很明顯的錯誤,若是是修改採購訂單,則會一直報錯誤,提示費用申請單已經存在)

       

       4、先後邏輯不一致的問題

       會開發的人:想到哪裏就寫到哪裏,不用判斷上下文的邏輯銜接;

       懂開發的人:邏輯嚴謹性很強,作到先後數據和邏輯一致;

       以下圖神奇的代碼:

       

       以上程序運行的結果就變成了(金額和單價擴大一萬倍):

       

        5、SAP接口模式之爭

        會開發的人:認爲Webservice是萬能統一的,因此無論第三方系統是什麼平臺和語言,一概用Webservice來作接口,更要命的是全部接口都共用一個出口地址。而且認爲RFC不安全不穩定;

        針對接口的開發,不論是輸入仍是輸出,一概用行類型來作多筆記錄的傳輸。無視SAP系統警告說會下降接口的性能;

        懂開發的人:除非第三方平臺是上古時代開發的或者語言很是老舊,不然儘可能能用RFC就用RFC,而且善用Table頁籤和「例外」的功能;

        以下圖神奇的代碼:

        

        

        又好比輸出結構:

        

        針對這種處理方式,SAP系統會絕不留情得給出這樣的警告:

        

        6、統一數據源問題

        會開發的人:針對用戶的需求,來一個寫一個功能,哪怕報表邏輯都是相似的,因而寫得多了不免會發現一樣的數值每每在不一樣的地方不一致;

        懂開發的人:針對用戶的需求,凡是功能相似的都作成一個可重複使用的接口或函數,全部須要用到的地方都調用它取值,統一數據源;

        這裏沒圖!

        7、註釋問題

        相信每一個開發人員都會遇到看前人的代碼,而後又沒有任何註釋的那種絕望感!

        會開發的人:根本不知道啥叫註釋,也重來不會註釋; 

        懂開發的人:在很是重要的地方會加入業務需求的說明,以及每一行重要代碼的設置說明;

        以下圖神奇的代碼(誰能知道這個是什麼鬼?)

        

        8、導入模板是啥樣的?

        這個或許能夠說是用戶體驗問題,但在IT眼裏看來,這分明就是懂不懂開發的問題!

        會開發的人:作好批導程序,就扔在那愛誰誰,一段時間以後連本身都不知道導入模板應該是啥樣的,是TXT文本導入仍是Excel導入,只能繼續看程序;

        懂開發的人:在批導的畫面作一個按鈕能夠下載模板;

        以下圖(相信全部人看到下圖都會一臉懵逼):

        

 

         以上大概列舉了我在作項目過程當中所遇到的主要的問題,還有不少不少開發相關的事故,都是那些只會寫代碼而不懂系統邏輯的新手寫的。好比基本的數據存在性校驗、好比數據讀取錯誤、基本的除數不能爲0的判斷、針對 FOR ALL ENTRIES IN 不作存在性檢查、使用 BINARY SEARCH不作排序等,歷來不懂什麼叫測試。遇到這樣的事故,有時候會啼笑皆非,要給IT增長很多的負擔。也只能感嘆一句,會開發簡單,懂開發難,懂業務又懂開發,簡直萬金難求!

相關文章
相關標籤/搜索