十款開(kāi)源工具助你提升編碼技能
譯自:10 Open Source Tools to Supercharge Your Coding Game[1]
作者:Jack Wallen
從 VS Code 到 Tauri,這些開(kāi)源開(kāi)發(fā)工具簡(jiǎn)化了工作流程,自動(dòng)化了重復(fù)性任務(wù),并提高了各個(gè)技能水平開(kāi)發(fā)人員的編碼效率。
如果你想提高生產(chǎn)力,有很多應(yīng)用程序可供選擇。對(duì)于那些更喜歡使用開(kāi)源軟件的人來(lái)說(shuō),選擇范圍并沒(méi)有減少多少。事實(shí)上,有很多開(kāi)源工具都致力于提高編碼效率。
當(dāng)然,任何這樣的列表都會(huì)包含你可能使用也可能不使用的工具。你的工作流程可能已經(jīng)基本設(shè)定好了,并且知道你只需要一個(gè)額外的工具就能將你的生產(chǎn)力提升到一個(gè)新的水平。這個(gè)工作流程可能包括諸如編輯器、IDE[2]、代碼審查和分析、協(xié)作和文檔、CI/CD[3]、監(jiān)控、調(diào)試[4]、自動(dòng)化以及介于兩者之間的一切。
這里的關(guān)鍵是提高你的生產(chǎn)力,并且仍然有很多工具可以為你服務(wù)。
讓我們深入了解一下,看看你可以添加到工作流程中的哪些開(kāi)源工具。
Visual Studio Code
Visual Studio Code[5] 是市場(chǎng)上最流行的 IDE 之一。VS Code 由微軟開(kāi)發(fā),其源代碼可以在 GitHub[6] 上查看。這個(gè) IDE 免費(fèi)、輕量級(jí)、靈活且可擴(kuò)展。VS Code 非常適合編碼、調(diào)試和測(cè)試。
但是這個(gè) IDE 如何提高你的生產(chǎn)力呢?考慮一下它的特性,例如龐大的擴(kuò)展庫(kù)、智能代碼補(bǔ)全、版本控制集成、代碼分析和診斷以及跨平臺(tái)兼容性,你就會(huì)明白這個(gè) IDE 如何幫助改進(jìn)你的工作流程。無(wú)需使用多個(gè)工具,你就可以在一個(gè)應(yīng)用程序中處理許多任務(wù)。VS Code 還支持最流行的語(yǔ)言,例如 HTML/CSS、JavaScript、C/C++、C#、Objective-C、Python、PHP 和 Java。
Git
Git[7] 是一個(gè)版本控制系統(tǒng),它幫助開(kāi)發(fā)者管理代碼庫(kù)隨時(shí)間的變化。使用 Git 可以極大地提高你的生產(chǎn)力,因?yàn)槟悴粌H可以跟蹤代碼的更改,還可以與團(tuán)隊(duì)實(shí)時(shí)協(xié)作項(xiàng)目,而無(wú)需擔(dān)心一個(gè)開(kāi)發(fā)者會(huì)覆蓋另一個(gè)開(kāi)發(fā)者所做的更改。
Git 包括跟蹤更改、版本管理、協(xié)作、提交、分支、合并等功能。
Git 通過(guò)一個(gè)非常易于遵循和可重復(fù)的工作流程來(lái)幫助你提高生產(chǎn)力,這個(gè)工作流程如下所示:
- ? 創(chuàng)建本地倉(cāng)庫(kù):在你的工作目錄中初始化一個(gè) Git 倉(cāng)庫(kù)。你可以將這個(gè)倉(cāng)庫(kù)提供給局域網(wǎng)上的團(tuán)隊(duì)成員,也可以將其遷移到 GitHub。
- ? 進(jìn)行更改并提交:在更改代碼后,你可以使用 git add 和 git commit 來(lái)創(chuàng)建文件的新的版本。
- ? 推送到遠(yuǎn)程倉(cāng)庫(kù):通過(guò)將更改(提交)推送到共享位置(例如 GitHub)來(lái)與團(tuán)隊(duì)成員共享你的更改。
- ? 從遠(yuǎn)程倉(cāng)庫(kù)拉?。喝缓螅憧梢詮墓蚕砦恢脵z索最新的代碼更改,并將它們合并到你的本地副本中以進(jìn)行進(jìn)一步的工作。
Docker/Podman
容器是軟件開(kāi)發(fā)的一個(gè)重要方面。任何對(duì)容器感興趣的人都應(yīng)該查看 Docker[8] 或 Podman[9],因?yàn)檫@兩個(gè)工具是開(kāi)發(fā)和部署容器最有效率的方法。
但是為什么是容器呢?
容器使得跨環(huán)境一致地開(kāi)發(fā)成為可能,因此你無(wú)需擔(dān)心為多個(gè)平臺(tái)開(kāi)發(fā)。容器還具有更快的開(kāi)發(fā)周期、簡(jiǎn)化的依賴(lài)項(xiàng)管理、更快的構(gòu)建時(shí)間、更輕松的測(cè)試/調(diào)試、改進(jìn)的可擴(kuò)展性和降低的成本。并且由于容器是可移植的,你可以在你選擇的 OS 上進(jìn)行開(kāi)發(fā),并輕松地將容器遷移到另一個(gè) OS,并確保它能夠正常工作。
Jenkins
Jenkins[10] 是一個(gè)自動(dòng)化服務(wù)器,它使開(kāi)發(fā)人員能夠以可重復(fù)且可靠的方式構(gòu)建、測(cè)試和部署應(yīng)用程序。Jenkins 包括自動(dòng)化構(gòu)建、CI/CD 支持、作業(yè)調(diào)度、監(jiān)控和報(bào)告、代碼審查、部署腳本等等。
但是為什么自動(dòng)化平臺(tái)可以幫助提高你的編碼效率呢?Jenkins 為你做的最重要的事情是自動(dòng)化重復(fù)性任務(wù),這樣你就可以專(zhuān)注于更重要的活動(dòng)。Jenkins 還幫助減少錯(cuò)誤,改進(jìn)協(xié)作,并加快新版本和功能的上市時(shí)間。Jenkins 支持 Docker 和 Kubernetes,并具有 GitHub Actions、JIRA 和 Docker 容器構(gòu)建等插件。
Jenkins 免費(fèi)使用,你可以在 GitHub[11] 上查看其源代碼。
GPT-Engineer
GPT-工程師[12] 是一款基于文本的工具,用于以更結(jié)構(gòu)化和引導(dǎo)的方式與大型語(yǔ)言模型 (LLM) 交互。GPT-工程師允許你使用自然語(yǔ)言指定軟件,使用 AI 編寫(xiě)和執(zhí)行代碼,以及/或者要求 AI 建議改進(jìn)你的代碼。
我知道你在想什么……使用 AI 編寫(xiě)代碼基本上是作弊,我不會(huì)爭(zhēng)論這一點(diǎn)。但是,你可以使用此類(lèi)工具來(lái)學(xué)習(xí)特定語(yǔ)言或理解復(fù)雜的代碼概念或代碼行。你可以將 GPT-工程師與本地文件夾中的代碼一起使用,在文件夾內(nèi)創(chuàng)建一個(gè)提示文件并填寫(xiě)所需的指令,然后運(yùn)行 gpte DIRECTORY 命令(其中 DIRECTORY 是包含代碼的文件夾)。
GPT-工程師可免費(fèi)使用,并可以使用 Python 或 Poetry 安裝。
Eclipse IDE
Eclipse[13] 是一款免費(fèi)的開(kāi)源 IDE,面向 Java 項(xiàng)目。Eclipse 可用于 Linux、macOS 和 Windows,包含廣泛的插件生態(tài)系統(tǒng),使用模塊化架構(gòu),包括代碼完成和檢查以及高級(jí)調(diào)試功能。
Eclipse 非常靈活,你可以使用插件和自定義設(shè)置來(lái)完美滿(mǎn)足你的需求。有適用于 Java Builder、代碼完成、Git 集成的插件等等。
但是 IDE 如何幫助你提高生產(chǎn)力呢?借助大量的插件庫(kù)和令人印象深刻的功能集,可以通過(guò)減少錯(cuò)誤和提高代碼的整體質(zhì)量來(lái)簡(jiǎn)化你的工作流程(從而簡(jiǎn)化和縮短調(diào)試過(guò)程)。
Continu
Continu[14] 是 GitHub Copilot 的開(kāi)源替代方案,并為 VS Code 和 JetBrains IDE 提供 AI 驅(qū)動(dòng)的代碼完成和內(nèi)聯(lián)幫助。使用 Continu,你可以連接任何你想要的 LLM,然后將其與 Chat 一起使用,從而簡(jiǎn)化向 AI 尋求幫助的過(guò)程,而無(wú)需離開(kāi)你的 IDE。
Continu 的自動(dòng)完成功能在你鍵入時(shí)提供內(nèi)聯(lián)代碼建議(類(lèi)似于 Gmail 等中的自動(dòng)建議)。還有編輯(一種無(wú)需離開(kāi)當(dāng)前打開(kāi)的文件即可修改代碼的方法)和操作(常用用例的快捷方式)。
Continu 具有用戶(hù)友好的 UI,可以從你的 IDE 插件市場(chǎng)免費(fèi)安裝。
Tabby
Tabby[15] 是一款自托管的 AI 編碼助手,可以作為 GitHub Copilot 的另一種替代方案。使用 Tabby,你可以在本地安裝和使用它,因此無(wú)需依賴(lài)第三方(這意味著更高的隱私),并支持消費(fèi)級(jí) GPU。
你可以使用以下命令在一分鐘內(nèi)將 Tabby 部署為 Docker 容器:
docker run -it –gpus all -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby serve –model StarCoder-1B –device cuda –chat-model Qwen2-1.5B-Instruct
Tabby 的功能包括代碼完成、上下文理解、AI 驅(qū)動(dòng)的建議和代碼分析,以減少開(kāi)發(fā)時(shí)間,提高代碼質(zhì)量并提高生產(chǎn)力。
Configu
Configu[16] 是一個(gè)開(kāi)源的配置即代碼平臺(tái),用于自動(dòng)化配置管理、防止錯(cuò)誤配置以及通過(guò)配置和自動(dòng)化不同環(huán)境中軟件應(yīng)用程序的部署來(lái)消除繁瑣的重復(fù)性任務(wù)。
使用 Configu,你的工程團(tuán)隊(duì)可以無(wú)縫地管理和協(xié)作處理任何環(huán)境中的環(huán)境變量、密鑰和功能標(biāo)志。此工具可以輕松集成到現(xiàn)有系統(tǒng)和工作流程中,并且可以從小到大、從簡(jiǎn)單到復(fù)雜以及從臨時(shí)到重復(fù)的任務(wù)進(jìn)行擴(kuò)展。
Configu 用于環(huán)境管理、配置自動(dòng)化和基礎(chǔ)設(shè)施編排。將 Configu 添加到你的工作流程中,你將享受到更高的速度和效率、改進(jìn)的一致性和簡(jiǎn)化的配置管理。
Configu 可以使用以下命令輕松安裝:
curl https://files.configu.com/cli/install.sh | sh
Tauri 2.0
Tauri[17] 是一款開(kāi)源工具,使開(kāi)發(fā)人員可以使用現(xiàn)代基于 Web 的技術(shù)(例如 React、Angular 或 Vue.js)創(chuàng)建桌面應(yīng)用程序。Tauri 提供類(lèi)似 Electron 的環(huán)境,其中包括窗口、菜單和文件對(duì)話(huà)框等功能。使用 Tauri,你可以為 Linux、macOS 和 Linux 創(chuàng)建外觀(guān)和感覺(jué)都很自然的應(yīng)用程序。因?yàn)?Tauri 使用流行的基于 Web 的框架和庫(kù),所以它有助于減少構(gòu)建桌面應(yīng)用程序所需的時(shí)間。
使用 Tauri,你的開(kāi)發(fā)人員將享受到更快的開(kāi)發(fā)時(shí)間、更輕松的應(yīng)用程序維護(hù)和改進(jìn)的跨平臺(tái)兼容性,這要?dú)w功于預(yù)構(gòu)建的 UI 組件、基于 Web 的配置文件和本機(jī)應(yīng)用程序性能優(yōu)化。
典型的 Tauri 工作流程如下所示:
1. 使用 React、Angular 或 Vue.js 構(gòu)建 Web 應(yīng)用程序。
2. 將網(wǎng)絡(luò)應(yīng)用程序轉(zhuǎn)換為具有原生行為的桌面應(yīng)用程序。
3. 在不同平臺(tái)上測(cè)試和改進(jìn)桌面應(yīng)用程序,然后再發(fā)布。
任何一個(gè)應(yīng)用程序都能幫助提高您的編碼效率。更好的是……總有更多開(kāi)源應(yīng)用程序可以幫助提高效率。
引用鏈接
[1] 10 Open Source Tools to Supercharge Your Coding Game:https://thenewstack.io/10-open-source-tools-to-supercharge-your-coding-game/
[2]IDE:https://thenewstack.io/best-open-source-ides/
[3]CI/CD:https://thenewstack.io/ci-cd/
[4]調(diào)試:https://thenewstack.io/how-generative-ai-is-revolutionizing-debugging/
[5]Visual Studio Code:https://code.visualstudio.com/
[6]GitHub:https://github.com/microsoft/vscode
[7]Git:https://git-scm.com/
[8]Docker:https://www.docker.com/
[9]Podman:https://podman.io/
[10]Jenkins:https://www.jenkins.io/
[11]GitHub:https://github.com/jenkinsci/jenkins
[12]GPT-工程師:https://github.com/AntonOsika/gpt-engineer
[13]Eclipse:https://eclipseide.org/
[14]Continu:https://www.continue.dev/
[15]Tabby:https://github.com/TabbyML/tabby
[16]Configu:https://configu.com/
[17]Tauri:https://tauri.app/