【推荐】会开发和懂开发的区别
?在SAP領域,做開發的人很多,會ABAP的也不少,但真心懂ABAP,懂開發的人卻不多。很多人從事開發行業,只是單純為了開發而開發,為了寫代碼而寫代碼。只要能夠實現功能,哪怕里面埋了很多雷挖了很多坑也無關緊要,甚至BUG百出。SAP系統最注重的是代碼的質量以及運行高效率和簡潔,否則一旦程序有問題,影響的并不是程序本身,而會影響到實際企業生產,甚至一定程度上影響到決策層的判斷。跟SAP其他模塊一樣,ABAP沒個大幾年的累積經驗是無法成為大神級別的,除非是天生天賦異稟。因此會點ABAP語法和開發并沒有什么了不起,跟其他諸如.net、Java和PHP等語言一樣,培訓一段時間就能夠上手了,但真的要做到把控需求,功能可擴展延展性就難了。也印證了一句話:會ABAP的不稀奇,懂ABAP才難求;會業務模塊的不稀奇,即會業務又懂開發才萬金難求!
? ? ? ?以下列舉幾項,簡要說說會開發和懂開發的區別:
? ? ? ?一、更新錯誤問題
? ? ? ?會開發的人:循環一百次,每次暫停一秒后再Insert表,直到成功為止,如果100次了還失敗,那就忽略!所以一旦出現這樣的情況,程序就會卡死;
? ? ? ?懂開發的人:Try一下,捕獲消息號和文本拋出,然后RollBack。但如果是無關緊要的表(如日志表),直接就忽略掉;
? ? ? ?如下圖神奇的代碼:
? ? ? ?
? ? ? ?二、多重邏輯判斷問題
? ? ? ?會開發的人:IF能寫多少就寫多少,哪怕功能里面都是重復的邏輯;
? ? ? ?懂開發的人:采用ABAP的動態語法,將重復的功能整合在一起,區別就在動態語法判斷上;
? ? ? ?如下圖代碼:
? ? ? ?
? ? ? ?三、SAP增強的寫法
? ? ? ?需要說明的是SAP增強是對系統標準功能和邏輯的一種延伸和更改,需要非常的慎重,同時最好有參數表來做開關控制,輸出的消息也得有長文本做描述;
? ? ? ?會開發的人:找到一個增強就興奮不已,然后直接寫代碼,不考慮任何擴展和開關控制,也是直接Message出來消息,很難追蹤;
? ? ? ?懂開發的人:不僅做了參數控制,同時還會做事務代碼或程序名的判斷,至于Message則在SE91里面做消息號新建引用,方便維護和追蹤!
? ? ? ?如下圖神奇的代碼:(代碼里還有很明顯的錯誤,如果是修改采購訂單,則會一直報錯誤,提示費用申請單已經存在)
? ? ? ?
? ? ? ?四、前后邏輯不一致的問題
? ? ? ?會開發的人:想到哪里就寫到哪里,不用判斷上下文的邏輯銜接;
? ? ? ?懂開發的人:邏輯嚴謹性很強,做到前后數據和邏輯一致;
? ? ? ?如下圖神奇的代碼:
? ? ? ?
? ? ? ?以上程序運行的結果就變成了(金額和單價擴大一萬倍):
? ? ? ?
? ? ? ??五、SAP接口模式之爭
? ? ? ? 會開發的人:認為Webservice是萬能統一的,所以不管第三方系統是什么平臺和語言,一律用Webservice來做接口,更要命的是所有接口都共用一個出口地址。并且認為RFC不安全不穩定;
? ? ? ? 針對接口的開發,不管是輸入還是輸出,一律用行類型來做多筆記錄的傳輸。無視SAP系統警告說會降低接口的性能;
? ? ? ? 懂開發的人:除非第三方平臺是上古時代開發的或者語言非常老舊,否則盡量能用RFC就用RFC,并且善用Table頁簽和“例外”的功能;
? ? ? ? 如下圖神奇的代碼:
? ? ? ??
? ? ? ??
? ? ? ? 又比如輸出結構:
? ? ? ??
? ? ? ? 針對這種處理方式,SAP系統會毫不留情得給出這樣的警告:
? ? ? ??
? ? ? ??六、統一數據源問題
? ? ? ? 會開發的人:針對用戶的需求,來一個寫一個功能,哪怕報表邏輯都是類似的,于是寫得多了難免會發現同樣的數值往往在不同的地方不一致;
? ? ? ? 懂開發的人:針對用戶的需求,凡是功能類似的都做成一個可重復使用的接口或函數,所有需要用到的地方都調用它取值,統一數據源;
? ? ? ? 這里沒圖!
? ? ? ??七、注釋問題
? ? ? ? 相信每個開發人員都會遇到看前人的代碼,然后又沒有任何注釋的那種絕望感!
? ? ? ? 會開發的人:根本不知道啥叫注釋,也重來不會注釋;?
? ? ? ? 懂開發的人:在非常重要的地方會加入業務需求的說明,以及每一行重要代碼的設置說明;
? ? ? ? 如下圖神奇的代碼(誰能知道這個是什么鬼?)
? ? ? ??
? ? ? ??八、導入模板是啥樣的?
? ? ? ? 這個或許可以說是用戶體驗問題,但在IT眼里看來,這分明就是懂不懂開發的問題!
? ? ? ? 會開發的人:做好批導程序,就扔在那愛誰誰,一段時間之后連自己都不知道導入模板應該是啥樣的,是TXT文本導入還是Excel導入,只能繼續看程序;
? ? ? ? 懂開發的人:在批導的畫面做一個按鈕可以下載模板;
? ? ? ? 如下圖(相信所有人看到下圖都會一臉懵逼):
? ? ? ??
?
? ? ? ? ?以上大概列舉了我在做項目過程中所遇到的主要的問題,還有很多很多開發相關的事故,都是那些只會寫代碼而不懂系統邏輯的新手寫的。比如基本的數據存在性校驗、比如數據讀取錯誤、基本的除數不能為0的判斷、針對?FOR?ALL?ENTRIES?IN 不做存在性檢查、使用?BINARY?SEARCH不做排序等,從來不懂什么叫測試。遇到這樣的事故,有時候會哭笑不得,要給IT增加不少的負擔。也只能感嘆一句,會開發簡單,懂開發難,懂業務又懂開發,簡直萬金難求!
總結
以上是生活随笔為你收集整理的【推荐】会开发和懂开发的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ABAP TBL控制插入和更改
- 下一篇: 如何获取尚未开票信息(包括交货单、销售订