ABAP開發環境終於支援以駝峰命名法自動格式化ABAP變數名了
Jerry進入SAP成都研究院前,一直是用C/C++開發,所以剛接觸ABAP,對於她在某些語法環境下大小寫敏感,某些環境下不敏感的特性很不適應。那時候Jerry深深地懷念之前在C/C++程式設計時遵循的駝峰命名法和匈牙利命名法。
駝峰命名法:函式名中的每一個邏輯斷點都有一個大寫字母來標記。方法和變數名的首字母一般小寫,這叫小駝峰命名法,例如printEmployeePaychecks. 類名的首字母一般大寫,這叫大駝峰命名法,比如EmployeeBonusPlanManager.
匈牙利命名法: 變數名= 型別 + 描述。型別一般以一個或多個小寫字母開頭作為字首,後面跟著一個或多個單詞描述該變數的用途。
Jerry上大學的時候,用的C/C++教程裡的示例程式碼全部採取的匈牙利命令法。
這兩種命名方式各有優缺點,網上有很多文章闡述,大家感興趣的話自行查閱。
那麼ABAP呢?在Jerry的文章 SAP官方釋出的ABAP程式設計規範 裡能夠發現,ABAP的變數命名採取的是一種綜合了匈牙利命名法和下劃線命名法的混合方式。有的時候,這種命名方式會給ABAP開發人員帶來一些煩惱。看一個實際的例子,來自2017年Jerry還在SAP成都研究院CRM開發團隊工作時,大家討論的一個變數命名的問題。
假設有這樣一段簡單的ABAP程式碼,透過OPEN SQL從名為I_Product的CDS view裡讀取資料到內表lt_table裡。
ABAP變數名是大小寫無關的,下圖紅色下劃線lt_table是一個“匈牙利命名法+下劃線命名法”的例子,lt是local table的縮寫, 說明這個變數是一個區域性內表變數。
通常情況下我們期望ABAP裡的變數名都統一用小寫,為此只需在SAP GUI的ABAP Editor設定裡,開啟Pretty Printer配置頁面,將Keyword Uppercase的勾打上。
這樣我們在使用IDE裡提供的Pretty Printer,即程式碼美化功能時,即使ABAP變數裡出現了大小寫混雜的情況,也會全部自動轉換為小寫。
然而Pretty Printer的這種行為會帶來一個小問題,如果程式碼裡訪問了某個CDS view,比如例子中的I_Product,因為它不是一個ABAP關鍵字,所以也會被轉換成全部是小寫字母的組合:i_product.
當時我們對這個行為有些不滿意,因為按照我們內部開發規範,CDS view的首字母和下劃線之後的第一個字母必須大寫。我們期望的結果是,當Pretty Printer執行後,程式碼中CDS view的名稱仍然是I_Product, 而不是現在的i_product.
後來Jerry想了個辦法,即修改Pretty Printer的處理邏輯:如果掃描到程式碼裡出現的單詞代表一個CDS view時,讓Pretty Printer高抬貴手,不對這個單詞進行任何操作。
我把這個方法分享到了SAP社群上:
Bypass CDS view name case conversion in ABAP source code pretty printer
測試結果:紅色下劃線標註的ABAP變數名被自動格式化成全部小寫,而CDS view的名稱I_Product仍然保持不變。這正是我們期望的結果。
兩年過去了。如今,這個問題已經有了優雅的解決方案:如果想使用駝峰命名法,只需要在ABAP Development Tool裡把Keep Camel Case Identifiers前面的勾選上即可。
大家可以比較一下這個勾如果不打上會是什麼樣的效果:
這意味著偏愛駝峰命名法的ABAP開發人員,如今也可以在IDE的支援下進行ABAP程式碼編寫了。
SAP社群上有ABAP開發人員聲稱,這是他們盼望了很久的功能:
注意:目前這個功能只在S/4HANA和SAP雲平臺ABAP程式設計環境可用。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2661541/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ABAP開發環境語法高亮的那些事兒開發環境
- ABAP 程式碼中,哪些特殊字元不能用於變數命名?字元變數
- iOS程式碼規範之駝峰命名法camelCaseiOS
- 識別符號定義以及命名規則(駝峰命名法)符號
- ABAP Netweaver和Cloud Foundry上的環境變數Environment VariableCloud變數
- 四種常用的命名規則:帕斯卡命名法、駝峰命名法、下劃線命名法、匈牙利命名法
- Mybatis處理列名—欄位名對映— 駝峰式命名對映MyBatis
- SAP ABAP關鍵字語法圖和ABAP程式碼自動生成工具Code Composer
- ABAP計算自動義公式公式
- 關於SAP abap程式開發的說明
- 變數名命名規則變數
- ABAP Netweaver 和 ABAP Platform 這兩個名詞的辨析Platform
- js將字串轉為駝峰寫法JS字串
- 在SAP雲平臺ABAP程式設計環境上編寫第一段ABAP程式程式設計
- ABAP 報表開發例項
- ABAP 動態 SQLSQL
- liferay開發環境中部分變數修改開發環境變數
- 關於用 ABAP 程式碼手動觸發 SAP CRM organization Model 自動決定的研究
- Gear Fit 2手環終於升級了 可自動為仰臥起坐計數
- CSS 滾動驅動動畫終於正式支援了CSS動畫
- webstorm編寫vue、react 將大駝峰元件命名轉換成短橫槓命名WebORMVueReact元件
- 關於ABAP tips
- 如何在 SAP BTP ABAP 程式設計環境裡直接呼叫 ABAP On-Premises 系統的 RFC 函式程式設計REM函式
- 環境變數變數
- debian修改臨時環境變數支援中文變數
- SAP 雲平臺 ABAP 程式設計環境的前世今生程式設計
- 現在大家可以免費使用SAP雲平臺ABAP環境的試用版了
- 花了兩天時間,終於把開發環境配置好了開發環境
- ABAP動態內表
- 四種命名介紹:駝峰、帕斯卡、蛇形、烤串(肉串)
- Linux 新增環境變數和刪除環境變數Linux變數
- 簡述SHELL全域性環境變數與局變環境變數變數
- 在 React 程式碼中使用自動更新的 CRA 環境變數React變數
- 關於SAP ABAP字元變數和字串變數字元個數的一個知識點,和一個血案字元變數字串
- 一步步用ABAP Development Tools連線SAP雲平臺上的ABAP程式設計環境dev程式設計
- ABAP開發的Github issue備份工具Github
- grunt搭建自動化的web前端開發環境Web前端開發環境
- 關於TNS_ADMIN環境變數變數