1. 程式人生 > >2020年,為什麼我們應該使用abapGit代替SAPLink

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.com或dotabap.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