SAP官方釋出的ABAP程式設計規範
最近有朋友在公眾號後臺給我留言,“Jerry啊,你最近寫的都是一些SAP研究院裡面用到的新技術,能不能寫點SAP傳統的開發技術比如ABAP相關的東西”?
其實Jerry在剛開始寫這個公眾號的時候,是寫過很多ABAP的技術文章:
因為Jerry最近的工作,需要使用ABAP程式設計的場景不多,所以近期這方面的文章少了點。
在Jerry之前的文章 寫在Github被微軟收購之際 - Github的那些另類用法 曾經提到,SAP在Github上也有很多開源專案:
截至到今天(2019年7月26日),已經有399個倉庫了。
Jerry年初去成都天府軟體園一家SAP partners公司拜訪時,這家公司的技術主管曾經問過我,有沒有推薦的ABAP程式設計規範。Jerry當時想了想,回答說,雖然SAP研究院內部確有嚴格清晰寫成文件,多達七八十頁的ABAP程式設計規則,但Jerry不確定這些程式設計規則是否能直接發給非SAP員工。
今天Jerry覺得這個問題我已經有完美的答案了:我們來聊聊上述SAP開源的Github倉庫其中之一,包含了SAP官方推薦的ABAP程式設計規範:
cheat-sheet資料夾裡主要包含了CleanABAPCheatSheet和CleanABAPTheGoldenRules兩個檔案,前者包含了SAP認為要寫出Clean的ABAP程式碼,需要遵循的準則和儘量避免的誤區。
而CleanABAPTheGoldenRules這個檔案,包含的就是SAP推薦的關於ABAP程式設計方方面面的最佳準則:
而Sub-sections資料夾裡包含了一些話題的深入闡述:
這些話題每一個都值得用一篇文章展開聊,Jerry先挖個坑在這裡,有機會再填:
Avoid Encodings
SAP這個github檔案給出的推薦是,建議在給方法實現裡的變數名取名時, 避免使用字首 。下圖紅色高亮的程式碼是推薦的做法,而黑色的程式碼是應該避免的程式碼。
這很有趣,因為Jerry在SAP內部做ABAP開發,遵循的原則恰恰就是第二種做法。
作者也深知這個建議和SAP官網help.sap.com上定義的ABAP程式設計規範裡變數命名規範有相矛盾的地方,但還是堅持認為變數名不要字首,是更加符合現代程式設計規範的做法,並且讓變數有更好的可讀性。
Jerry的個人意見是,對於SAP partners的開發團隊來說,不必糾結到底應該遵循help.sap.com上的變數命名規範,還是應該按照本文介紹的SAP github上介紹的規範來——更重要的是,整個團隊內部達成一致,選擇一套堅決執行。
Enumerations.md
在ABAP裡使用列舉型別的幾種方式:
Exceptions
ABAP異常處理的最佳實踐。
Function Groups vs. Classes
給了為什麼堅決推薦不再使用function group / function module,而是鼓勵大家投入到物件導向程式設計懷抱的原因。
Modern ABAP Language Elements
蒐集了一些現代的ABAP語法和ABAP關鍵字的用法。
Upper vs. Lower Case
ABAP 語言的大小寫規範,經常會讓很多剛剛從其他程式語言轉過來的程式設計師覺得摸不著頭腦,Jerry當年剛剛從C++程式設計轉到ABAP程式設計也是如此。
這個子話題給出了推薦的大小寫使用場景。
因為Jerry的日常工作幾乎不會用到ABAP,所以我也沒有時間就這些話題深入展開,大家可以好好利用這個Github倉庫,讓自己的團隊都能開發一套clean的ABAP程式碼出來,感謝閱讀。
更多閱讀
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2653143/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ABAP的程式碼規範標準
- SAP ABAP 平臺新的程式設計模型程式設計模型
- JS程式設計規範JS程式設計
- React程式設計規範React程式設計
- java程式設計規範Java程式設計
- 程式設計小記-程式設計規範程式設計
- python 的程式設計規範Python程式設計
- python程式設計規範Python程式設計
- C#程式設計規範C#程式設計
- OpenGL 4.5規範釋出
- 自己整理的java程式設計規範Java程式設計
- SAP UI5 Form 和 Simple Form 的設計規範UIORM
- 玩了一下 SAP Fiori ABAP程式設計模型程式設計模型
- SAP 雲平臺 ABAP 程式設計環境的前世今生程式設計
- Go 語言程式設計規範Go程式設計
- 微信小程式元件設計規範微信小程式元件
- JavaScript模組化程式設計規範JavaScript程式設計
- iOS 團隊程式設計規範iOS程式設計
- C#程式設計命名規範C#程式設計
- 程式設計命名規範(網文)程式設計
- 一些通過SAP ABAP程式碼審查得出的ABAP程式設計最佳實踐程式設計
- 併發程式設計的12條規範程式設計
- sap abap螢幕程式設計中使用的table 和call子程式的程式設計
- MySQL資料庫規範 (設計規範+開發規範+操作規範)MySql資料庫
- python 程式設計規範有哪些?Python程式設計
- 解讀阿里java程式設計規範阿里Java程式設計
- C語言程式設計基本規範C語言程式設計
- Shell程式設計規範與變數程式設計變數
- 上位機程式設計編碼規範程式設計
- 我總結的Android程式設計規範Android程式設計
- 映象規範檢測工具釋出
- 名片設計規範
- HTML 程式碼註釋規範HTML
- Java程式碼註釋規範Java
- Restful API 的設計規範RESTAPI
- 在SAP雲平臺ABAP程式設計環境上編寫第一段ABAP程式程式設計
- SAP Fiori程式設計模型規範裡註解 - @OData.publish工作原理解析程式設計模型
- MySQL 規範 (資料庫表設計規範)MySql資料庫