Linux中國

如何使用多種編程語言而又不失理智

如今,隨著各種不同的編程語言的出現,許多組織已經變成了 數字多語種組織 digital polyglots 。開源打開了一個語言和技術堆棧的世界,開發人員可以使用這些語言和技術堆棧來完成他們的任務,包括開發、支持過時的和現代的軟體應用。

與那些只說母語的人相比,通曉多種語言的人可以與數百萬人交談。在軟體環境中,開發人員不會引入新的語言來達到特定的目的,也不會更好地交流。一些語言對於一項任務來說很棒,但是對於另一項任務來說卻不行,因此使用多種編程語言可以讓開發人員使用合適的工具來完成這項任務。這樣,所有的開發都是多語種的;這只是野獸的本性。

多語種環境的創建通常是漸進的和情景化的。例如,當一家企業收購一家公司時,它就承擔了該公司的技術堆棧 —— 包括其編程語言。或者,隨著技術領導的改變,新的領導者可能會將不同的技術納入其中。技術也有過時的時候,隨著時間的推移,增加了組織必須維護的編程語言和技術的數量。

多語言環境對企業來說是一把雙刃劍,既帶來好處,也帶來複雜性和挑戰。最終,如果這種情況得不到控制,多語言將會扼殺你的企業。

棘手的技術繞口令

如果有多種不同的技術 —— 編程語言、過時的工具和新興的技術堆棧 —— 就有複雜性。工程師團隊花更多的時間努力改進編程語言,包括許可證、安全性和依賴性。與此同時,管理層缺乏對代碼合規性的監督,無法衡量風險。

發生的情況是,企業具有不同程度的編程語言質量和工具支持的高度可變性。當你需要和十幾個人一起工作時,很難成為一種語言的專家。一個能流利地說法語和義大利語的人和一個能用八種語言串成幾個句子的人在技能水平上有很大差異。開發人員和編程語言也是如此。

隨著更多編程語言的加入,困難只會增加,導致數字巴別塔的出現。

答案是不要拿走開發人員工作所需的工具。添加新的編程語言可以建立他們的技能基礎,並為他們提供合適的設備來完成他們的工作。所以,你想對你的開發者說「是」,但是隨著越來越多的編程語言被添加到企業中,它們會拖累你的軟體開發生命周期(SDLC)。在規模上,所有這些語言和工具都可能扼殺企業。

企業應注意三個主要問題:

  1. 可見性: 團隊聚在一起執行項目,然後解散。應用程序已經發布,但從未更新 —— 為什麼要修復那些沒有被破壞的東西?因此,當發現一個關鍵漏洞時,企業可能無法了解哪些應用程序受到影響,這些應用程序包含哪些庫,甚至無法了解它們是用什麼語言構建的。這可能導致成本高昂的「勘探項目」,以確保漏洞得到適當解決。
  2. 更新或編碼: 一些企業將更新和修復功能集中在一個團隊中。其他人要求每個「比薩團隊」管理自己的開發工具。無論是哪種情況,工程團隊和管理層都要付出機會成本:這些團隊沒有編碼新特性,而是不斷更新和修復開源工具中的庫,因為它們移動得如此之快。
  3. 重新發明輪子: 由於代碼依賴性和庫版本不斷更新,當發現漏洞時,與應用程序原始版本相關聯的工件可能不再可用。因此,許多開發周期都被浪費在試圖重新創建一個可以修復漏洞的環境上。

將你組織中的每種編程語言乘以這三個問題,開始時被認為是分子一樣小的東西突然看起來像珠穆朗瑪峰。就像登山者一樣,沒有合適的設備和工具,你將無法生存。

找到你的羅塞塔石碑

一個全面的解決方案可以滿足 SDLC 中企業及其個人利益相關者的需求。企業可以使用以下最佳實踐創建解決方案:

  1. 監控生產中運行的代碼,並根據應用程序中使用的標記組件(例如,常見漏洞和暴露組件)的風險做出響應。
  2. 定期接收更新以保持代碼的最新和無錯誤。
  3. 使用商業開源支持來獲得編程語言版本和平台的幫助,這些版本和平台已經接近尾聲,並且不受社區支持。
  4. 標準化整個企業中的特定編程語言構建,以實現跨團隊的一致環境,並最大限度地減少依賴性。
  5. 根據相關性設置何時觸發更新、警報或其他類型事件的閾值。
  6. 為您的包管理創建一個單一的可信來源;這可能需要知識淵博的技術提供商的幫助。
  7. 根據您的特定標準,只使用您需要的軟體包獲得較小的構建版本。

使用這些最佳實踐,開發人員可以最大限度地利用他們的時間為企業創造更多價值,而不是執行基本的工具或構建工程任務。這將在軟體開發生命周期(SDLC)的所有環境中創建代碼一致性。由於維護編程語言和軟體包分發所需的資源更少,這也將提高效率和節約成本。這種新的操作方式將使技術人員和管理人員的生活更加輕鬆。

via: https://opensource.com/article/18/11/multiple-programming-languages

作者:Bart Copeland 選題:lujun9972 譯者:heguangzhi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國