2020年,為什么我們應該使用abapGit代替SAPLink


SAPLink是一個幫助人們分享開發內容的工具。通過它,人們可以將ABAP開發對象從一個系統打包下載、再上傳到另一個系統中。對於各種類型的開發者,它都可以起到作用:

  • 有的開發者喜歡在不同的項目中復制相似的程序、修修改改以實現快速實施。
  • 有的開發者野心勃勃,希望開發自己的特定問題解決方案。
  • 有的開發者希望從網絡得到現成的示例程序,幫助自己學習。

恐怕絕大部分ABAP開發者都使用過或者聽說過SAPLink,因此這里不再對它的做過多介紹。但是,也許有一部分人還不了解他的替代品:abapGit。本文試圖解釋,為什么我們應該是用abapGit替代SAPLink。

 

本文鏈接:https://www.cnblogs.com/hhelibeb/p/12988213.html

轉載請注明

SAPLink的局限性

SAPLink的基本功能是把指定的開發對象序列化成為特定格式的文件,以及反過來把文件反序列化在系統中生成相應的開發對象。這一功能的概念在2020年的今天並不過時,但在具體的實現上,它是有一些問題的。

安裝成本

SAPLink的安裝需要遵循一些步驟,對於新人來說可能不是特別簡單。我已經多次遇到SAP系統中的SAPLink不可用的情況,並被相關開發人員告知“不知道為什么不能用,可能是安裝問題”。

功能不完善

越過了安裝問題后,另一個難關是在實際使用中它不時會出現一些問題,有時是不支持某種類型的開發對象,需要安裝插件,有時是導入中的dump,有時是導入后的對象錯誤。

無人維護

軟件總會有不完美的地方,但如果沒有了維護者,那就意味着它的各種問題不會再得到改善。如今,當我們訪問原本是SAPLink的網站saplink.org,我們會被重定向至一個Github頁面:https://github.com/sapmentors/SAPlink,由此我們可以得知這一項目其實已經不再被維護,而它的繼任者為abapGit。

abapGit的優勢

abapGit繼承了SAPLink的基本功能——將開發對象上傳下載,同時有着更多的優勢。

易於安裝

abapGit是一個單文件報表程序,因此開發者只需要在SE38新建文件,復制粘貼代碼,激活即可安裝abapGit。(這一點在新版的abapGit中稍有變化,不過整體來說難度還是很簡單)

豐富的對象支持

abapGit支持上百種開發對象,而且它的表現十分可靠,對於常用的開發對象如類、數據字典、函數組、屏幕,我從未見過它出錯。

穩定的維護者

abapGit是迄今為止最大的ABAP開源項目,它有着90+貢獻者,3000+的提交次數,100000+行代碼,項目的所有者larshp是我見過的精力最旺盛的ABAP開發者。這意味着abapGit可以持續地發展和改進,用戶也可以為自己遇到的問題提issue請求協助。

良好的生態

abapGit得到了廣大開發者和SAP的支持,通過abapGit開發者可以利用豐富的ABAP開源資源,也可以參與其中,貢獻自己的項目、代碼或思考。很多大公司在使用abapGit,包括SAP本身。你甚至可以在SAP的官方文檔找到abapGit的中文教程:使用 abapGit

 

Q & A

一些常見問題。

Git是什么,Github又是什么?

Git是一種分布式版本管理系統。

abapGit是用於處理SAP開發對象的Git客戶端,下載/上傳開發對象是它的功能之一。

Github是一個網站,它提供了代碼倉庫的功能,很多人使用Github來在線存儲/分享代碼,目前大部分ABAP開源項目會在Github發布。

服務器能訪問外網是使用abapGit的必要條件嗎?

不是,盡管abapGit提供了方便的在線模式,開發者依然可以通過離線模式像使用SAPLink那樣通過上傳下載文件的方式導出和導入開發對象。

如果開發者所在的公司防火牆內有Git代碼倉庫,比如自己搭建的Gitlab,也可以通過abapGit連接它,把代碼傳輸到上面。

abapGit會導致我的代碼泄露嗎?

有人懷疑使用abapGit之后,自己的代碼可能會不聲不響地出現在Github之類的網站上。在看過上一個問題后,有這種疑問的讀者應該會明白這是不可能的。

abapGit就像一個運鈔車,它可以方便地運輸大量鈔票,但這不代表車上的鈔票會自動跑到汽車交易平台。運到何處,司機(開發者)可以自行控制。

也可以通過權限控制,限制能使用abapGit的用戶。

我要怎樣安裝abapGit?

上文已經說過,abapGit是一個單文件報表程序,因此開發者只需要在SE38新建文件,復制粘貼代碼,激活即可安裝abapGit。代碼可以從官方文檔獲取:

https://docs.abapgit.org/guide-install.html

怎樣利用開源資源?

前往github.comdotabap.org查找你想用的東西,比如geohash,使用clone or download下載zip包,

然后在abapGit中create-import-pull即可。參考官方文檔:

https://docs.abapgit.org/guide-import-zip.html

 

abapGit有什么缺點嗎?

在深入應用abapGit之后,一些開發者提出過使用它時遇到的一些問題,比如:

  • 由於SAP開發模式的特殊性,很難使用Git的分支功能。參考《abapGit分支策略》,這篇文章的英文原文中有很多討論。
  • abapGit對對象的上傳下載是基於包的,這意味着如果開發者想上傳下載的開發對象是跨包的,那么可能需要處理包含這兩個包的父包。除非包與包之間的隔離很好(這在二次開發中很少見),那么最終可能會演變成必須有一個包含所有對象的總包,可以想象,上傳下載這個總包會花費大量的資源,甚至可能遇到內存不足、超時等情況...
  • 少數類型的對象沒有被支持。

但這些問題基本都是在一些復雜的使用場景才會出現,而且社區也在試圖解決。它們絲毫不影響abapGit替代SAPLink的能力。

 

擴展閱讀:

SAPlink – Thankyou

abapGit Branching Strategy Discussion

How we do ABAP code review using abapGit

 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM